def test_build_full_without_request(self): router = Router(None) router.add(Route(r'/hello', None, name='hello')) self.assertRaises(AttributeError, router.build, None, 'hello', (), dict(_full=True)) self.assertRaises(AttributeError, router.build, None, 'hello', (), dict(_scheme='https'))
def test_set_matcher(self): req = Request.blank('/') def custom_matcher(router, request): self.assertEqual(request, req) router = Router(None) router.set_matcher(custom_matcher) router.match(req)
def test_router_build_error(self): router = Router(None) router.add(Route('/<year:\d{4}>', None, name='year-page')) url = router.build(Request.blank('/'), 'year-page', (), dict(year='2010')) self.assertEqual(url, '/2010') self.assertRaises(KeyError, router.build, Request.blank('/'), 'i-dont-exist', (), dict(year='2010'))
def test_router_repr(self): router = Router(None) router.add(Route(r'/hello', None, name='hello', build_only=True)) router.add(Route(r'/world', None)) self.assertEqual( router.__repr__(), "<Router([<Route('/world', None, name=None, defaults={}, build_only=False)>, <Route('/hello', None, name='hello', defaults={}, build_only=True)>])>" )
def test_methods(self): route = Route(r'/', methods=['GET', 'POST']) router = Router([route]) req = Request.blank('/') req.method = 'GET' self.assertTrue(router.match(req) is not None) req.method = 'POST' self.assertTrue(router.match(req) is not None) req.method = 'PUT' self.assertRaises(webapp2.exc.HTTPMethodNotAllowed, router.match, req)
def test_methods(self): route = Route(r"/", methods=["GET", "POST"]) router = Router([route]) req = Request.blank("/") req.method = "GET" self.assertTrue(router.match(req) is not None) req.method = "POST" self.assertTrue(router.match(req) is not None) req.method = "PUT" self.assertRaises(webapp2.exc.HTTPMethodNotAllowed, router.match, req)
def test_set_builder(self): req = Request.blank('/') def custom_builder(router, request, name, args, kwargs): self.assertEqual(request, req) return 'http://www.google.com' router = Router(None) router.set_builder(custom_builder) res = router.build(req, '', (), {}) self.assertEqual(res, 'http://www.google.com')
def test_set_builder(self): def custom_builder(router, request, name, args, kwargs): self.assertEqual(request, req) return "http://www.google.com" req = Request.blank("/") router = Router(None) router.set_builder(custom_builder) res = router.build(req, "", (), {}) self.assertEqual(res, "http://www.google.com")
def test_router_repr(self): router = Router(None) router.add(Route(r"/hello", None, name="hello", build_only=True)) router.add(Route(r"/world", None)) self.assertEqual( router.__repr__(), """<Router([<Route('/world', None, """ """name=None, """ """defaults={}, """ """build_only=False)>, """ """<Route('/hello', None, """ """name='hello', """ """defaults={}, """ """build_only=True)>])>""")
def test_router_build_error(self): router = Router(None) router.add(Route(r"/<year:\d{4}>", None, name="year-page")) url = router.build(Request.blank("/"), "year-page", (), dict(year="2010")) self.assertEqual(url, "/2010") self.assertRaises( KeyError, router.build, Request.blank("/"), "i-dont-exist", (), dict(year="2010"), )
def test_no_variable(self): router = Router(None, [(r'/', 'my_handler')]) matched_route, args, kwargs = router.match(Request.blank('/')) self.assertEqual(args, ()) self.assertEqual(kwargs, {})
def test_simple_variables(self): router = Router(None, [(r'/(\d{4})/(\d{2})', 'my_handler')]) matched_route, args, kwargs = router.match(Request.blank('/2007/10')) self.assertEqual(args, ('2007', '10')) self.assertEqual(kwargs, {})
def test_build_only_without_name(self): router = Router(None) self.assertRaises(ValueError, router.add, Route(r'/<foo>', None, build_only=True))