aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/routers.py
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework/tests/routers.py')
-rw-r--r--rest_framework/tests/routers.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/rest_framework/tests/routers.py b/rest_framework/tests/routers.py
index 138d13d7..4e4765cb 100644
--- a/rest_framework/tests/routers.py
+++ b/rest_framework/tests/routers.py
@@ -38,9 +38,18 @@ class TestSimpleRouter(TestCase):
def test_link_and_action_decorator(self):
routes = self.router.get_routes(BasicViewSet)
- # Should be 2 by default, and then four from the @action and @link combined
- #self.assertEqual(len(routes), 6)
- #
decorator_routes = routes[2:]
- for i, method in enumerate(['action1', 'action2', 'link1', 'link2']):
- self.assertEqual(decorator_routes[i].mapping.values()[0], method)
+ # Make sure all these endpoints exist and none have been clobbered
+ for i, endpoint in enumerate(['action1', 'action2', 'link1', 'link2']):
+ route = decorator_routes[i]
+ # check url listing
+ self.assertEqual(route.url,
+ '^{{prefix}}/{{lookup}}/{0}/$'.format(endpoint))
+ # check method to function mapping
+ if endpoint.startswith('action'):
+ method_map = 'post'
+ else:
+ method_map = 'get'
+ self.assertEqual(route.mapping[method_map], endpoint)
+
+