1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from django.test import TestCase
- from django.urls import reverse
- from django.urls.exceptions import NoReverseMatch
-
- from oscar.apps.dashboard.menu import get_nodes
- from oscar.apps.dashboard.nav import default_access_fn
- from oscar.test.factories import UserFactory
-
-
- class DashboardAccessFunctionTestCase(TestCase):
- def setUp(self):
- self.staff_user = UserFactory(is_staff=True)
- self.non_staff_user = UserFactory()
-
- def test_default_access_fn_no_url_name(self):
- self.assertTrue(default_access_fn(self.staff_user, None))
-
- def test_default_access_fn_staff(self):
- self.assertTrue(default_access_fn(self.staff_user, "dashboard:index"))
-
- def test_default_access_fn_non_staff_user(self):
- self.assertFalse(default_access_fn(self.non_staff_user, "dashboard:index"))
-
- def test_default_access_fn_invalid_url_name(self):
- with self.assertRaises(NoReverseMatch):
- default_access_fn(self.staff_user, "invalid_module:index")
-
- def test_default_access_non_dashboard_url_name(self):
- assert reverse("search:search")
- with self.assertRaises(KeyError):
- default_access_fn(self.staff_user, "search:search")
-
-
- class DashboardNavTestCase(TestCase):
- def test_staff_user_has_menu(self):
- menu = get_nodes(UserFactory(is_staff=True))
- self.assertTrue(menu)
-
- def test_non_staff_user_has_empty_menu(self):
- menu = get_nodes(UserFactory())
- self.assertEqual(menu, [])
|