diff --git a/tests/test_routers.py b/tests/test_routers.py index 351a0f61e..5d4bc692e 100644 --- a/tests/test_routers.py +++ b/tests/test_routers.py @@ -159,6 +159,26 @@ class TestSimpleRouter(TestCase): for method in methods_map: self.assertEqual(route.mapping[method], endpoint) + def test_route_nodes_path(self): + """ + Should return a full prefix for the given route_nodes. Duplicate parent + lookups should have a count appended. + """ + tree = RouteTree() + tree.set(NoteViewSet, [], 'first') + tree.set(NoteViewSet, ['first'], 'first') + tree.set(NoteViewSet, ['first', 'first'], 'last') + + self.assertEqual( + self.router.get_route_nodes_path(tree.get([], 'first')), + r'first') + self.assertEqual( + self.router.get_route_nodes_path(tree.get(['first'], 'first')), + r'first/(?P[^/.]+)/first') + self.assertEqual( + self.router.get_route_nodes_path(tree.get(['first', 'first'], 'last')), + r'first/(?P[^/.]+)/first/(?P[^/.]+)/last') + @override_settings(ROOT_URLCONF='tests.test_routers') class TestRootView(TestCase):