Beispiel #1
0
    def test_matching(self):
        request = Request('POST', 'bar', host='example.com', protocol='http')

        route_one = Route('foo/{something}',
                          'hello',
                          methods=('GET', ),
                          requirements={'something': '\d+'})
        route_two = Route('bar',
                          'world',
                          methods=('POST', ),
                          host='(.+\.|)example.com')
        routes = (
            route_one,
            route_two,
        )

        router = Router(routes)
        self.assertTrue(router.match_request(request))

        request = Request('POST',
                          '/foo/bar/test',
                          host='example.com',
                          protocol='http')
        self.assertFalse(router.match_request(request))

        request = Request('GET',
                          '/foo/bar',
                          host='example.com',
                          protocol='http')
        self.assertFalse(router.match_request(request))

        request = Request('POST', 'foo', host='example.com', protocol='http')
        self.assertFalse(router.match_request(request))
Beispiel #2
0
 def test_requirements(self):
     route = Route('foo/{hello}', 'bar')
     route.set_requirements({'hello': '\d+'})
     self.assertEqual({'hello': '(\d+)'}, route.requirements)
     route = Route('foo/{hello}', 'bar')
     route.set_requirements({})
     self.assertEqual({}, route.requirements)
Beispiel #3
0
 def test_defaults(self):
     route = Route('foo', 'hello')
     self.assertEqual(route.action, 'action')
     self.assertEqual(route.methods, Route.ALLOWED_METHODS)
     self.assertEqual(route.requirements, {})
     self.assertEqual(route.protocols, ('http', 'https'))
     self.assertEqual(route.host, '.*')
Beispiel #4
0
    def test_complex_path_matching(self):
        request = Request('POST',
                          'hello/felix/barcelona/12345678/world',
                          host='example.com',
                          protocol='http')

        route_one = Route('foo', 'hello', methods=('GET', ))
        route_two = Route('hello/{name}/{city}/{phone}/world',
                          'something',
                          methods=('POST', ))
        routes = (
            route_one,
            route_two,
        )

        router = Router(routes)
        self.assertTrue(router.match_request(request))
Beispiel #5
0
    def test_methods(self):
        route = Route('foo', 'bar', methods=('GeT', ))
        self.assertEqual(('GET', ), route.methods)

        route = Route('foo', 'bar', methods=('GET', 'pOsT', 'put'))
        self.assertEqual(('GET', 'POST', 'PUT'), route.methods)

        route.set_methods(('GET', ))
        self.assertEqual(('GET', ), route.methods)

        route.set_methods(('GET', 'POST'))
        self.assertEqual(('GET', 'POST'), route.methods)
Beispiel #6
0
 def test_requirements(self):
     route = Route('foo/{hello}', 'bar')
     route.set_requirements({'hello': '\d+'})
     self.assertEqual({'hello': '(\d+)'}, route.requirements)
     route = Route('foo/{hello}', 'bar')
     route.set_requirements({})
     self.assertEqual({}, route.requirements)
Beispiel #7
0
    def test_methods(self):
        route = Route('foo', 'bar', methods=('GeT',))
        self.assertEqual(('GET',), route.methods)

        route = Route('foo', 'bar', methods=('GET', 'pOsT', 'put'))
        self.assertEqual(('GET', 'POST', 'PUT'), route.methods)

        route.set_methods(('GET',))
        self.assertEqual(('GET',), route.methods)

        route.set_methods(('GET', 'POST'))
        self.assertEqual(('GET', 'POST'), route.methods)
Beispiel #8
0
 def test_host(self):
     route = Route('foo', 'bar')
     route.set_host('www.example.com')
     self.assertEqual('www.example.com', route.host)
Beispiel #9
0
 def test_protocols(self):
     route = Route('foo', 'bar')
     route.set_protocols(('http', ))
     self.assertEqual(route.protocols, ('http', ))
Beispiel #10
0
 def test_invalid_requirements(self):
     route = Route('foo/{hello}', 'bar')
     self.assertRaises(Exception, route.set_requirements,
                       ['this is a bad format'])
Beispiel #11
0
 def test_action(self):
     route = Route('foo', 'bar')
     route.set_action('world_action')
     self.assertEqual('world_action', route.action)
     route.set_action('hello')
     self.assertEqual('hello', route.action)
Beispiel #12
0
 def test_path(self):
     route = Route('/', 'bar')
     self.assertEqual(route.path, '/')
Beispiel #13
0
 def test_host(self):
     route = Route('foo', 'bar')
     route.set_host('www.example.com')
     self.assertEqual('www.example.com', route.host)
Beispiel #14
0
 def test_protocols(self):
     route = Route('foo', 'bar')
     route.set_protocols(('http',))
     self.assertEqual(route.protocols, ('http',))
Beispiel #15
0
 def test_action(self):
     route = Route('foo', 'bar')
     route.set_action('world_action')
     self.assertEqual('world_action', route.action)
     route.set_action('hello')
     self.assertEqual('hello', route.action)