示例#1
0
 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")
示例#2
0
 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')
示例#3
0
 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')
示例#4
0
    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")
示例#5
0
    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")
示例#7
0
    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')
示例#8
0
    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")
示例#9
0
    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')
示例#10
0
    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')
示例#11
0
    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")
示例#12
0
    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")
示例#13
0
    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')
示例#14
0
    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')
示例#15
0
 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")
示例#16
0
    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/')
示例#17
0
    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/")
示例#18
0
    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/")
示例#19
0
    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/')
示例#20
0
 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')
示例#21
0
 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")
示例#22
0
 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')
示例#23
0
    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")
示例#24
0
 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')
示例#25
0
 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")
示例#26
0
 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')
示例#27
0
    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)
示例#28
0
    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)
示例#29
0
 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")
示例#30
0
 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/')
示例#31
0
 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")
示例#32
0
 def test_build_int_variable(self):
     route = Route(r"/<:\d{4}>", None)
     url = route.build(Request.blank("/"), (2010,), {})
     self.assertEqual(url, "/2010")
示例#33
0
 def test_build_int_variable(self):
     route = Route(r'/<:\d{4}>', None)
     url = route.build(Request.blank('/'), (2010, ), {})
     self.assertEqual(url, '/2010')
示例#34
0
 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')
示例#35
0
 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")
示例#36
0
 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/")
示例#37
0
 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/')
示例#38
0
 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")
示例#39
0
 def test_build_int_variable(self):
     route = Route(r'/<:\d{4}>', None)
     url = route.build(Request.blank('/'), (2010,), {})
     self.assertEqual(url, '/2010')
示例#40
0
 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')
示例#41
0
 def test_build_int_variable(self):
     route = Route(r"/<:\d{4}>", None)
     url = route.build(Request.blank("/"), (2010,), {})
     self.assertEqual(url, "/2010")
示例#42
0
 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/")