def test_build_extra_keyword(self): route = Route(r"/<year:\d{4}>", None) url = route.build(Request.blank("/"), (), dict(year="2010", foo="bar")) self.assertEqual(url, "/2010?foo=bar") # Arguments are sorted. url = route.build(Request.blank("/"), (), dict(year="2010", foo="bar", baz="ding")) self.assertEqual(url, "/2010?baz=ding&foo=bar")
def test_build_extra_keyword(self): route = Route(r'/<year:\d{4}>', None) url = route.build(Request.blank('/'), (), dict(year='2010', foo='bar')) self.assertEqual(url, '/2010?foo=bar') # Arguments are sorted. url = route.build(Request.blank('/'), (), dict(year='2010', foo='bar', baz='ding')) self.assertEqual(url, '/2010?baz=ding&foo=bar')
def test_build_extra_keyword(self): route = Route(r'/<year:\d{4}>', None) url = route.build(Request.blank('/'), (), dict(year='2010', foo='bar')) self.assertEqual(url, '/2010?foo=bar') # Arguments are sorted. url = route.build(Request.blank('/'), (), dict(year='2010', foo='bar', baz='ding')) self.assertEqual(url, '/2010?baz=ding&foo=bar')
def test_build_with_unnamed_variable(self): route = Route(r"/<:\d{4}>/<month:\d{2}>", None) url = route.build(Request.blank("/"), (2010,), dict(month=10)) self.assertEqual(url, "/2010/10") url = route.build(Request.blank("/"), ("1999",), dict(month="07")) self.assertEqual(url, "/1999/07")
def test_build_with_unnamed_variable(self): route = Route(r'/<:\d{4}>/<month:\d{2}>', None) url = route.build(Request.blank('/'), (2010, ), dict(month=10)) self.assertEqual(url, '/2010/10') url = route.build(Request.blank('/'), ('1999', ), dict(month='07')) self.assertEqual(url, '/1999/07')
def test_build_with_unnamed_variable(self): route = Route(r"/<:\d{4}>/<month:\d{2}>", None) url = route.build(Request.blank("/"), (2010,), dict(month=10)) self.assertEqual(url, "/2010/10") url = route.build(Request.blank("/"), ("1999",), dict(month="07")) self.assertEqual(url, "/1999/07")
def test_build_extra_positional_keyword(self): route = Route(r'/<year:\d{4}>/<:\d{2}>', None) url = route.build(Request.blank('/'), ('08', 'i-should-be-ignored', 'me-too'), dict(year='2010', foo='bar')) self.assertEqual(url, '/2010/08?foo=bar') url = route.build(Request.blank('/'), ('08', 'i-should-be-ignored', 'me-too'), dict(year='2010', foo='bar', baz='ding')) self.assertEqual(url, '/2010/08?baz=ding&foo=bar')
def test_build_default_keyword(self): route = Route(r"/<year:\d{4}>/<month:\d{2}>", None, defaults={"month": 10}) url = route.build(Request.blank("/"), (), dict(year="2010")) self.assertEqual(url, "/2010/10") route = Route(r"/<year:\d{4}>/<month:\d{2}>", None, defaults={"year": 1900}) url = route.build(Request.blank("/"), (), dict(month="07")) self.assertEqual(url, "/1900/07")
def test_build_extra_positional_keyword(self): route = Route(r'/<year:\d{4}>/<:\d{2}>', None) url = route.build(Request.blank('/'), ('08', 'i-should-be-ignored', 'me-too'), dict(year='2010', foo='bar')) self.assertEqual(url, '/2010/08?foo=bar') url = route.build(Request.blank('/'), ('08', 'i-should-be-ignored', 'me-too'), dict(year='2010', foo='bar', baz='ding')) self.assertEqual(url, '/2010/08?baz=ding&foo=bar')
def test_build_with_unnamed_variable(self): route = Route(r'/<:\d{4}>/<month:\d{2}>', None) url = route.build(Request.blank('/'), (2010,), dict(month=10)) self.assertEqual(url, '/2010/10') url = route.build(Request.blank('/'), ('1999',), dict(month='07')) self.assertEqual(url, '/1999/07')
def test_build_default_keyword(self): route = Route(r"/<year:\d{4}>/<month:\d{2}>", None, defaults={"month": 10}) r = Request.blank("/") url = route.build(r, (), dict(year="2010")) self.assertEqual(url, "/2010/10") route = Route(r"/<year:\d{4}>/<month:\d{2}>", None, defaults={"year": 1900}) url = route.build(Request.blank("/"), (), dict(month="07")) self.assertEqual(url, "/1900/07")
def test_build_extra_positional_keyword(self): route = Route(r"/<year:\d{4}>/<:\d{2}>", None) url = route.build(Request.blank("/"), ("08", "i-should-be-ignored", "me-too"), dict(year="2010", foo="bar")) self.assertEqual(url, "/2010/08?foo=bar") url = route.build( Request.blank("/"), ("08", "i-should-be-ignored", "me-too"), dict(year="2010", foo="bar", baz="ding") ) self.assertEqual(url, "/2010/08?baz=ding&foo=bar")
def test_build_default_keyword(self): route = Route(r'/<year:\d{4}>/<month:\d{2}>', None, defaults={'month': 10}) url = route.build(Request.blank('/'), (), dict(year='2010')) self.assertEqual(url, '/2010/10') route = Route(r'/<year:\d{4}>/<month:\d{2}>', None, defaults={'year': 1900}) url = route.build(Request.blank('/'), (), dict(month='07')) self.assertEqual(url, '/1900/07')
def test_build_default_keyword(self): route = Route(r'/<year:\d{4}>/<month:\d{2}>', None, defaults={'month': 10}) url = route.build(Request.blank('/'), (), dict(year='2010')) self.assertEqual(url, '/2010/10') route = Route(r'/<year:\d{4}>/<month:\d{2}>', None, defaults={'year': 1900}) url = route.build(Request.blank('/'), (), dict(month='07')) self.assertEqual(url, '/1900/07')
def test_build_extra_keyword(self): route = Route(r"/<year:\d{4}>", None) r = Request.blank("/") url = route.build(r, (), dict(year="2010", foo="bar")) self.assertEqual(url, "/2010?foo=bar") # Arguments are sorted. url = route.build( Request.blank("/"), (), dict(year="2010", foo="bar", baz="ding") ) self.assertEqual(url, "/2010?baz=ding&foo=bar")
def test_no_variable(self): route = Route(r'/hello', None) handler, args, kwargs = route.match(Request.blank('/hello')) self.assertEqual(kwargs, {}) url = route.build(Request.blank('/'), (), {}) self.assertEqual(url, '/hello') route = Route(r'/hello/world/', None) handler, args, kwargs = route.match(Request.blank('/hello/world/')) self.assertEqual(kwargs, {}) url = route.build(Request.blank('/'), (), {}) self.assertEqual(url, '/hello/world/')
def test_no_variable(self): route = Route(r"/hello", None) route, args, kwargs = route.match(Request.blank("/hello")) self.assertEqual(kwargs, {}) url = route.build(Request.blank("/"), (), {}) self.assertEqual(url, "/hello") route = Route(r"/hello/world/", None) route, args, kwargs = route.match(Request.blank("/hello/world/")) self.assertEqual(kwargs, {}) url = route.build(Request.blank("/"), (), {}) self.assertEqual(url, "/hello/world/")
def test_no_variable(self): route = Route(r"/hello", None) handler, args, kwargs = route.match(Request.blank("/hello")) self.assertEqual(kwargs, {}) url = route.build(Request.blank("/"), (), {}) self.assertEqual(url, "/hello") route = Route(r"/hello/world/", None) handler, args, kwargs = route.match(Request.blank("/hello/world/")) self.assertEqual(kwargs, {}) url = route.build(Request.blank("/"), (), {}) self.assertEqual(url, "/hello/world/")
def test_no_variable(self): route = Route(r'/hello', None) route, args, kwargs = route.match(Request.blank('/hello')) self.assertEqual(kwargs, {}) url = route.build(Request.blank('/'), (), {}) self.assertEqual(url, '/hello') route = Route(r'/hello/world/', None) route, args, kwargs = route.match(Request.blank('/hello/world/')) self.assertEqual(kwargs, {}) url = route.build(Request.blank('/'), (), {}) self.assertEqual(url, '/hello/world/')
def test_expr_variable(self): route = Route(r'/<year:\d{4}>', None) self.assertEqual(route.match(Request.blank('/bar')), None) self.assertEqual(route.match(Request.blank('/2010')), (route, (), {'year': '2010'})) self.assertEqual(route.match(Request.blank('/1900')), (route, (), {'year': '1900'})) url = route.build(Request.blank('/'), (), dict(year='2010')) self.assertEqual(url, '/2010')
def test_simple_variable(self): route = Route(r"/<foo>", None) self.assertEqual( route.match(Request.blank("/bar")), (route, (), {"foo": "bar"}) ) url = route.build(Request.blank("/"), (), dict(foo="baz")) self.assertEqual(url, "/baz")
def test_expr_variable(self): route = Route(r'/<year:\d{4}>', None) self.assertEqual(route.match(Request.blank('/bar')), None) self.assertEqual(route.match(Request.blank('/2010')), (None, (), {'year': '2010'})) self.assertEqual(route.match(Request.blank('/1900')), (None, (), {'year': '1900'})) url = route.build(Request.blank('/'), (), dict(year='2010')) self.assertEqual(url, '/2010')
def test_build_extra_positional_keyword(self): route = Route(r"/<year:\d{4}>/<:\d{2}>", None) url = route.build( Request.blank("/"), ("08", "i-should-be-ignored", "me-too"), dict(year="2010", foo="bar"), ) self.assertEqual(url, "/2010/08?foo=bar") url = route.build( Request.blank("/"), ("08", "i-should-be-ignored", "me-too"), dict(year="2010", foo="bar", baz="ding"), ) self.assertEqual(url, "/2010/08?baz=ding&foo=bar")
def test_simple_variable(self): route = Route(r'/<foo>', None) self.assertEqual(route.match(Request.blank('/bar')), (route, (), { 'foo': 'bar' })) url = route.build(Request.blank('/'), (), dict(foo='baz')) self.assertEqual(url, '/baz')
def test_expr_variable(self): route = Route(r"/<year:\d{4}>", None) self.assertEqual(route.match(Request.blank("/bar")), None) self.assertEqual(route.match(Request.blank("/2010")), (None, (), {"year": "2010"})) self.assertEqual(route.match(Request.blank("/1900")), (None, (), {"year": "1900"})) url = route.build(Request.blank("/"), (), dict(year="2010")) self.assertEqual(url, "/2010")
def test_simple_variable(self): route = Route(r'/<foo>', None) self.assertEqual( route.match(Request.blank('/bar')), (route, (), {'foo': 'bar'}) ) url = route.build(Request.blank('/'), (), dict(foo='baz')) self.assertEqual(url, '/baz')
def test_positions(self): template = r"/<:\d+>" * 98 args = tuple(str(i) for i in range(98)) url_res = "/" + "/".join(args) route = Route(template, None) self.assertEqual(route.match(Request.blank(url_res)), (route, args, {})) url = route.build(Request.blank("/"), args, {}) self.assertEqual(url_res, url) args = [str(i) for i in range(1000)] random.shuffle(args) args = tuple(args[:98]) url_res = "/" + "/".join(args) self.assertEqual(route.match(Request.blank(url_res)), (route, args, {})) url = route.build(Request.blank("/"), args, {}) self.assertEqual(url_res, url)
def test_positions(self): template = '/<:\d+>' * 98 args = tuple(str(i) for i in range(98)) url_res = '/' + '/'.join(args) route = Route(template, None) self.assertEqual(route.match(Request.blank(url_res)), (None, args, {})) url = route.build(Request.blank('/'), args, {}) self.assertEqual(url_res, url) args = [str(i) for i in range(1000)] random.shuffle(args) args = tuple(args[:98]) url_res = '/' + '/'.join(args) self.assertEqual(route.match(Request.blank(url_res)), (None, args, {})) url = route.build(Request.blank('/'), args, {}) self.assertEqual(url_res, url)
def test_expr_variable(self): route = Route(r"/<year:\d{4}>", None) self.assertEqual(route.match(Request.blank("/bar")), None) self.assertEqual( route.match(Request.blank("/2010")), (route, (), {"year": "2010"}) ) self.assertEqual( route.match(Request.blank("/1900")), (route, (), {"year": "1900"}) ) url = route.build(Request.blank("/"), (), dict(year="2010")) self.assertEqual(url, "/2010")
def test_expr_variable2(self): route = Route(r'/<year:\d{4}>/foo/', None) url = route.build(Request.blank('/'), (), dict(year='2010')) self.assertEqual(url, '/2010/foo/')
def test_build_int_keyword(self): route = Route(r"/<year:\d{4}>", None) url = route.build(Request.blank("/"), (), dict(year=2010)) self.assertEqual(url, "/2010")
def test_build_int_variable(self): route = Route(r"/<:\d{4}>", None) url = route.build(Request.blank("/"), (2010,), {}) self.assertEqual(url, "/2010")
def test_build_int_variable(self): route = Route(r'/<:\d{4}>', None) url = route.build(Request.blank('/'), (2010, ), {}) self.assertEqual(url, '/2010')
def test_build_int_keyword(self): route = Route(r'/<year:\d{4}>', None) url = route.build(Request.blank('/'), (), dict(year=2010)) self.assertEqual(url, '/2010')
def test_simple_variable(self): route = Route(r"/<foo>", None) self.assertEqual(route.match(Request.blank("/bar")), (None, (), {"foo": "bar"})) url = route.build(Request.blank("/"), (), dict(foo="baz")) self.assertEqual(url, "/baz")
def test_expr_variable2(self): route = Route(r"/<year:\d{4}>/foo/", None) url = route.build(Request.blank("/"), (), dict(year="2010")) self.assertEqual(url, "/2010/foo/")
def test_expr_variable2(self): route = Route(r'/<year:\d{4}>/foo/', None) url = route.build(Request.blank('/'), (), dict(year='2010')) self.assertEqual(url, '/2010/foo/')
def test_build_int_keyword(self): route = Route(r"/<year:\d{4}>", None) url = route.build(Request.blank("/"), (), dict(year=2010)) self.assertEqual(url, "/2010")
def test_build_int_variable(self): route = Route(r'/<:\d{4}>', None) url = route.build(Request.blank('/'), (2010,), {}) self.assertEqual(url, '/2010')
def test_build_int_keyword(self): route = Route(r'/<year:\d{4}>', None) url = route.build(Request.blank('/'), (), dict(year=2010)) self.assertEqual(url, '/2010')
def test_build_int_variable(self): route = Route(r"/<:\d{4}>", None) url = route.build(Request.blank("/"), (2010,), {}) self.assertEqual(url, "/2010")
def test_expr_variable2(self): route = Route(r"/<year:\d{4}>/foo/", None) url = route.build(Request.blank("/"), (), dict(year="2010")) self.assertEqual(url, "/2010/foo/")