Michael Merickel
2018-10-26 035f6cf8238211d097c991677fde6b5bc046a57b
tests/test_urldispatch.py
@@ -26,8 +26,8 @@
        self.assertEqual(route.path, ':path')
        self.assertEqual(route.name, 'name')
        self.assertEqual(route.factory, 'factory')
        self.assertTrue(route.generate.__class__ is types.FunctionType)
        self.assertTrue(route.match.__class__ is types.FunctionType)
        self.assertIsInstance(route.generate, types.FunctionType)
        self.assertIsInstance(route.match, types.FunctionType)
    def test_ctor_defaults(self):
        import types
@@ -37,8 +37,8 @@
        self.assertEqual(route.path, ':path')
        self.assertEqual(route.name, 'name')
        self.assertEqual(route.factory, None)
        self.assertTrue(route.generate.__class__ is types.FunctionType)
        self.assertTrue(route.match.__class__ is types.FunctionType)
        self.assertIsInstance(route.generate, types.FunctionType)
        self.assertIsInstance(route.match, types.FunctionType)
    def test_match(self):
        route = self._makeOne('name', ':path')
@@ -346,7 +346,9 @@
        self.assertEqual(generator({'baz': 1, 'buz': 2}), '/foo/1/biz/2/bar')
    def test_custom_regex(self):
        matcher, generator = self._callFUT('foo/{baz}/biz/{buz:[^/\.]+}.{bar}')
        matcher, generator = self._callFUT(
            'foo/{baz}/biz/{buz:[^/\\.]+}.{bar}'
        )
        self.assertEqual(
            matcher('/foo/baz/biz/buz.bar'),
            {'baz': 'baz', 'buz': 'buz', 'bar': 'bar'},
@@ -358,7 +360,7 @@
    def test_custom_regex_with_colons(self):
        matcher, generator = self._callFUT(
            'foo/{baz}/biz/{buz:(?:[^/\.]+)}.{bar}'
            'foo/{baz}/biz/{buz:(?:[^/\\.]+)}.{bar}'
        )
        self.assertEqual(
            matcher('/foo/baz/biz/buz.bar'),
@@ -379,13 +381,13 @@
        self.assertEqual(generator({'baz': 1, 'buz': 2}), '/foo/1/biz/2/bar')
    def test_custom_regex_with_embedded_squigglies(self):
        matcher, generator = self._callFUT('/{buz:\d{4}}')
        matcher, generator = self._callFUT('/{buz:\\d{4}}')
        self.assertEqual(matcher('/2001'), {'buz': '2001'})
        self.assertEqual(matcher('/200'), None)
        self.assertEqual(generator({'buz': 2001}), '/2001')
    def test_custom_regex_with_embedded_squigglies2(self):
        matcher, generator = self._callFUT('/{buz:\d{3,4}}')
        matcher, generator = self._callFUT('/{buz:\\d{3,4}}')
        self.assertEqual(matcher('/2001'), {'buz': '2001'})
        self.assertEqual(matcher('/200'), {'buz': '200'})
        self.assertEqual(matcher('/20'), None)
@@ -393,7 +395,7 @@
    def test_custom_regex_with_embedded_squigglies3(self):
        matcher, generator = self._callFUT(
            '/{buz:(\d{2}|\d{4})-[a-zA-Z]{3,4}-\d{2}}'
            '/{buz:(\\d{2}|\\d{4})-[a-zA-Z]{3,4}-\\d{2}}'
        )
        self.assertEqual(matcher('/2001-Nov-15'), {'buz': '2001-Nov-15'})
        self.assertEqual(matcher('/99-June-10'), {'buz': '99-June-10'})
@@ -501,7 +503,7 @@
        )
        self.matches('*traverse', '/zzz/abc', {'traverse': ('zzz', 'abc')})
        self.matches('*traverse', '/zzz/ abc', {'traverse': ('zzz', ' abc')})
        #'/La%20Pe%C3%B1a'
        # '/La%20Pe%C3%B1a'
        self.matches(
            '{x}',
            text_(b'/La Pe\xc3\xb1a', 'utf-8'),
@@ -544,7 +546,7 @@
        )
        self.matches('*traverse', '/zzz/abc', {'traverse': ('zzz', 'abc')})
        self.matches('*traverse', '/zzz/ abc', {'traverse': ('zzz', ' abc')})
        #'/La%20Pe%C3%B1a'
        # '/La%20Pe%C3%B1a'
        # pattern, path, expected
        self.matches(
            ':x',