summaryrefslogtreecommitdiff
path: root/tests/utils_tests/test_regex_helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/utils_tests/test_regex_helper.py')
-rw-r--r--tests/utils_tests/test_regex_helper.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/utils_tests/test_regex_helper.py b/tests/utils_tests/test_regex_helper.py
new file mode 100644
index 0000000000..41f4a4f85d
--- /dev/null
+++ b/tests/utils_tests/test_regex_helper.py
@@ -0,0 +1,50 @@
+from __future__ import unicode_literals
+
+from django.utils import regex_helper
+from django.utils import unittest
+
+
+class NormalizeTests(unittest.TestCase):
+ def test_empty(self):
+ pattern = r""
+ expected = [('', [])]
+ result = regex_helper.normalize(pattern)
+ self.assertEqual(result, expected)
+
+ def test_escape(self):
+ pattern = r"\\\^\$\.\|\?\*\+\(\)\["
+ expected = [('\\^$.|?*+()[', [])]
+ result = regex_helper.normalize(pattern)
+ self.assertEqual(result, expected)
+
+ def test_group_positional(self):
+ pattern = r"(.*)-(.+)"
+ expected = [('%(_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 = [('', [])]
+ result = regex_helper.normalize(pattern)
+ self.assertEqual(result, expected)
+
+ def test_group_noncapturing(self):
+ pattern = r"(?:non-capturing)"
+ expected = [('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 = [('%(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 = [('%(first_group_name)s-%(first_group_name)s',
+ ['first_group_name'])]
+ result = regex_helper.normalize(pattern)
+ self.assertEqual(result, expected)