diff options
| author | Tim Graham <timograham@gmail.com> | 2013-06-26 08:27:10 -0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2013-06-26 08:27:10 -0700 |
| commit | b6a87f5c93efa5192433be1e45fc4e79d54efdc7 (patch) | |
| tree | 8ae08ee22eed76b240c8a7ed701541a267a09b17 | |
| parent | 273dc550a4eccdad958541f456332312b3369504 (diff) | |
| parent | a9ea7d8c708c8265cccc17f23c62b2268d9e94f8 (diff) | |
Merge pull request #1308 from loic/ticket20462
Fixed #20462 - Replaced the str() cast introduced in 273dc55 by force_text()
| -rw-r--r-- | django/db/backends/sqlite3/base.py | 3 | ||||
| -rw-r--r-- | tests/lookup/tests.py | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py index b9caf8b99f..324adfd97b 100644 --- a/django/db/backends/sqlite3/base.py +++ b/django/db/backends/sqlite3/base.py @@ -19,6 +19,7 @@ from django.db.backends.sqlite3.introspection import DatabaseIntrospection from django.db.models import fields from django.db.models.sql import aggregates from django.utils.dateparse import parse_date, parse_datetime, parse_time +from django.utils.encoding import force_text from django.utils.functional import cached_property from django.utils.safestring import SafeBytes from django.utils import six @@ -522,4 +523,4 @@ def _sqlite_format_dtdelta(dt, conn, days, secs, usecs): return str(dt) def _sqlite_regexp(re_pattern, re_string): - return bool(re.search(re_pattern, str(re_string))) if re_string is not None else False + return bool(re.search(re_pattern, force_text(re_string))) if re_string is not None else False diff --git a/tests/lookup/tests.py b/tests/lookup/tests.py index fe8a5fac64..ee9c5afe1d 100644 --- a/tests/lookup/tests.py +++ b/tests/lookup/tests.py @@ -625,6 +625,13 @@ class LookupTests(TestCase): self.assertQuerysetEqual(Season.objects.filter(gt__regex=r'^444$'), ['<Season: 2013>']) + def test_regex_non_ascii(self): + """ + Ensure that a regex lookup does not trip on non-ascii characters. + """ + Player.objects.create(name='\u2660') + Player.objects.get(name__regex='\u2660') + def test_nonfield_lookups(self): """ Ensure that a lookup query containing non-fields raises the proper |
