Skip to content

Commit 5d9de29

Browse files
committed
Add tests for related_views
Move catch-all URL pattern to bottom; it was actually shadowing all other patterns.
1 parent 20b28c6 commit 5d9de29

File tree

2 files changed

+53
-3
lines changed

2 files changed

+53
-3
lines changed

menu_generator/tests/test_menu.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from django.http import HttpRequest
33
from django.test import TestCase
44

5+
from .urls import testview
56
from .utils import TestUser, is_main_site, is_paid_user
67
from ..menu import MenuBase
78
from ..templatetags.menu_generator import get_menu
@@ -306,3 +307,48 @@ def test_generate_menu_selected_related_urls_submenu(self):
306307
self.assertEqual(nav[0]["selected"], True)
307308
self.assertEqual(nav[0]["submenu"][0]["selected"], True)
308309
self.assertEqual(nav[0]["submenu"][1]["selected"], False)
310+
311+
def test_generate_menu_selected_related_views_simple(self):
312+
self.request.user = TestUser(authenticated=True)
313+
self.request.path = "/known-view/"
314+
self.menu.save_user_state(self.request)
315+
list_dict = [
316+
{
317+
"name": "parent1",
318+
"url": "/user/account/",
319+
"related_views": [testview],
320+
}
321+
]
322+
nav = self.menu.generate_menu(list_dict)
323+
324+
self.assertEqual(len(nav), 1)
325+
self.assertEqual(nav[0]["selected"], True)
326+
327+
def test_generate_menu_selected_related_views_submenu(self):
328+
self.request.user = TestUser(authenticated=True)
329+
self.request.path = "/known-view/"
330+
self.menu.save_user_state(self.request)
331+
list_dict = [
332+
{
333+
"name": "parent1",
334+
"url": "/user/account/",
335+
"submenu": [
336+
{
337+
"name": "child1",
338+
"url": '/user/account/profile/',
339+
"related_views": [testview]
340+
},
341+
{
342+
"name": "child2",
343+
"url": 'named_url',
344+
"related_views": []
345+
},
346+
],
347+
}
348+
]
349+
nav = self.menu.generate_menu(list_dict)
350+
351+
self.assertEqual(len(nav), 1)
352+
self.assertEqual(nav[0]["selected"], True)
353+
self.assertEqual(nav[0]["submenu"][0]["selected"], True)
354+
self.assertEqual(nav[0]["submenu"][1]["selected"], False)

menu_generator/tests/urls.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
from django.conf.urls import url
22

3+
def testview(request):
4+
return 'foo'
5+
36
urlpatterns = [
4-
url('', lambda: 'foo'),
5-
url('named-url', lambda: 'foo', name='named_url'),
6-
url('named-with-params/(?P<pk>\d+)/', lambda: 'foo', name='named_with_params')
7+
url(r'named-url', lambda: 'foo', name='named_url'),
8+
url(r'named-with-params/(?P<pk>\d+)/', lambda: 'foo', name='named_with_params'),
9+
url(r'known-view', testview, name='known_view'),
10+
url(r'', lambda: 'foo'),
711
]

0 commit comments

Comments
 (0)