More URLPattern unit tests

This commit is contained in:
Miguel Grinberg
2024-02-20 23:09:24 +00:00
parent 38262c56d3
commit f6cba2c0f7

View File

@@ -14,6 +14,7 @@ class TestURLPattern(unittest.TestCase):
self.assertEqual(p.match('/foo/bar'), {}) self.assertEqual(p.match('/foo/bar'), {})
self.assertIsNone(p.match('/foo')) self.assertIsNone(p.match('/foo'))
self.assertIsNone(p.match('/foo/bar/')) self.assertIsNone(p.match('/foo/bar/'))
self.assertIsNone(p.match('/foo/bar/baz'))
p = URLPattern('/foo//bar/baz/') p = URLPattern('/foo//bar/baz/')
self.assertEqual(p.match('/foo//bar/baz/'), {}) self.assertEqual(p.match('/foo//bar/baz/'), {})
@@ -28,27 +29,37 @@ class TestURLPattern(unittest.TestCase):
self.assertIsNone(p.match('')) self.assertIsNone(p.match(''))
self.assertIsNone(p.match('foo/')) self.assertIsNone(p.match('foo/'))
self.assertIsNone(p.match('/foo/')) self.assertIsNone(p.match('/foo/'))
self.assertIsNone(p.match('/foo/bar'))
p = URLPattern('/<arg>/') p = URLPattern('/<arg>/')
self.assertEqual(p.match('/foo/'), {'arg': 'foo'}) self.assertEqual(p.match('/foo/'), {'arg': 'foo'})
self.assertIsNone(p.match('/')) self.assertIsNone(p.match('/'))
self.assertIsNone(p.match('/foo')) self.assertIsNone(p.match('/foo'))
self.assertIsNone(p.match('/foo/bar'))
self.assertIsNone(p.match('/foo/bar/'))
p = URLPattern('/<string:arg>') p = URLPattern('/<string:arg>')
self.assertEqual(p.match('/foo'), {'arg': 'foo'}) self.assertEqual(p.match('/foo'), {'arg': 'foo'})
self.assertIsNone(p.match('/')) self.assertIsNone(p.match('/'))
self.assertIsNone(p.match('/foo/')) self.assertIsNone(p.match('/foo/'))
self.assertIsNone(p.match('/foo/bar'))
self.assertIsNone(p.match('/foo/bar/'))
p = URLPattern('/<string:arg>/') p = URLPattern('/<string:arg>/')
self.assertEqual(p.match('/foo/'), {'arg': 'foo'}) self.assertEqual(p.match('/foo/'), {'arg': 'foo'})
self.assertIsNone(p.match('/')) self.assertIsNone(p.match('/'))
self.assertIsNone(p.match('/foo')) self.assertIsNone(p.match('/foo'))
self.assertIsNone(p.match('/foo/bar'))
self.assertIsNone(p.match('/foo/bar/'))
p = URLPattern('/foo/<arg1>/bar/<arg2>') p = URLPattern('/foo/<arg1>/bar/<arg2>')
self.assertEqual(p.match('/foo/one/bar/two'), self.assertEqual(p.match('/foo/one/bar/two'),
{'arg1': 'one', 'arg2': 'two'}) {'arg1': 'one', 'arg2': 'two'})
self.assertIsNone(p.match('/')) self.assertIsNone(p.match('/'))
self.assertIsNone(p.match('/foo/')) self.assertIsNone(p.match('/foo/'))
self.assertIsNone(p.match('/foo/bar'))
self.assertIsNone(p.match('/foo//bar/'))
self.assertIsNone(p.match('/foo//bar//'))
def test_int_argument(self): def test_int_argument(self):
p = URLPattern('/users/<int:id>') p = URLPattern('/users/<int:id>')