def test_regex_path_with_type(self): view = View() view.bind('/users/<id:int>') expected_path = re.compile('^/users/(?P<id>.*?)$') self.assertEqual(view, views._regex_pathes[expected_path]) self.assertEqual(1, len(views._regex_pathes[expected_path]._path_params)) self.assertEqual(int, views._regex_pathes[expected_path]._path_params['id'])
def test_from_path_args(self): # set up def foo(a, b): return str(int(a) + int(b)) foo = View(foo) foo._path_params = {'a': int} # basic test fields = foo._parse_args({'b': '2'}, {'a': '1'}) self.assertEqual({'a': 1, 'b': '2'}, fields)
def test_raise_response(self): def foo(): raise RedirectResponse('/redirect') foo.__module__ = 'views.user' foo = View(foo) request = { 'cookies': {}, 'fields': {}, 'headers': {}, 'path': Path('/test'), } with self.assertRaises(RedirectResponse): foo.render(request)
def test_return_response(self): def foo(): return RedirectResponse('/redirect') foo.__module__ = 'views.user' foo = View(foo) request = { 'cookies': {}, 'fields': {}, 'headers': {}, 'path': Path('/test'), } resp = foo.render(request) self.assertIsInstance(resp, RedirectResponse)
def test_absolute_path(self): view = View() view.bind('/users') self.assertEqual(view, views._abs_pathes['/users'])