diff options
| author | Chris Beaven <smileychris@gmail.com> | 2012-01-03 22:49:13 +0000 |
|---|---|---|
| committer | Chris Beaven <smileychris@gmail.com> | 2012-01-03 22:49:13 +0000 |
| commit | e52c52ea13be6002ebfa14b7e17ff3004faaf737 (patch) | |
| tree | 1bb8ee0289d410754b74fc8b3498e1bc78dd1b92 /tests/regressiontests/utils | |
| parent | e5719b203c5a1ee799cd8cb6100342940e260fd7 (diff) | |
Fixed #17492 -- Allow reversal of named backreferences. Thanks nate_b
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17336 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/utils')
| -rw-r--r-- | tests/regressiontests/utils/regex_helper.py | 48 | ||||
| -rw-r--r-- | tests/regressiontests/utils/tests.py | 1 |
2 files changed, 49 insertions, 0 deletions
diff --git a/tests/regressiontests/utils/regex_helper.py b/tests/regressiontests/utils/regex_helper.py new file mode 100644 index 0000000000..8dc712f5b9 --- /dev/null +++ b/tests/regressiontests/utils/regex_helper.py @@ -0,0 +1,48 @@ +from django.utils import regex_helper +from django.utils import unittest + + +class NormalizeTests(unittest.TestCase): + def test_empty(self): + pattern = r"" + expected = [(u'', [])] + result = regex_helper.normalize(pattern) + self.assertEqual(result, expected) + + def test_escape(self): + pattern = r"\\\^\$\.\|\?\*\+\(\)\[" + expected = [(u'\\^$.|?*+()[', [])] + result = regex_helper.normalize(pattern) + self.assertEqual(result, expected) + + def test_group_positional(self): + pattern = r"(.*)-(.+)" + expected = [(u'%(_0)s-%(_1)s', ['_0', '_1'])] + result = regex_helper.normalize(pattern) + self.assertEqual(result, expected) + + def test_group_ignored(self): + pattern = r"(?i)(?L)(?m)(?s)(?u)(?#)" + expected = [(u'', [])] + result = regex_helper.normalize(pattern) + self.assertEqual(result, expected) + + def test_group_noncapturing(self): + pattern = r"(?:non-capturing)" + expected = [(u'non-capturing', [])] + result = regex_helper.normalize(pattern) + self.assertEqual(result, expected) + + def test_group_named(self): + pattern = r"(?P<first_group_name>.*)-(?P<second_group_name>.*)" + expected = [(u'%(first_group_name)s-%(second_group_name)s', + ['first_group_name', 'second_group_name'])] + result = regex_helper.normalize(pattern) + self.assertEqual(result, expected) + + def test_group_backreference(self): + pattern = r"(?P<first_group_name>.*)-(?P=first_group_name)" + expected = [(u'%(first_group_name)s-%(first_group_name)s', + ['first_group_name'])] + result = regex_helper.normalize(pattern) + self.assertEqual(result, expected) diff --git a/tests/regressiontests/utils/tests.py b/tests/regressiontests/utils/tests.py index f48a4adfee..f5ca06ef1e 100644 --- a/tests/regressiontests/utils/tests.py +++ b/tests/regressiontests/utils/tests.py @@ -25,3 +25,4 @@ from .ipv6 import TestUtilsIPv6 from .timezone import TimezoneTests from .crypto import TestUtilsCryptoPBKDF2 from .archive import TestZip, TestTar, TestGzipTar, TestBzip2Tar +from .regex_helper import NormalizeTests |
