Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

test_nav.py 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from django.test import TestCase
  2. from django.urls import reverse
  3. from oscar.apps.dashboard.menu import get_nodes
  4. from oscar.apps.dashboard.nav import default_access_fn
  5. from oscar.test.factories import UserFactory
  6. class DashboardAccessFunctionTestCase(TestCase):
  7. def setUp(self):
  8. self.staff_user = UserFactory(is_staff=True)
  9. self.non_staff_user = UserFactory()
  10. def test_default_access_fn_no_url_name(self):
  11. self.assertTrue(default_access_fn(self.staff_user, None))
  12. def test_default_access_fn_staff(self):
  13. self.assertTrue(default_access_fn(self.staff_user, 'dashboard:index'))
  14. def test_default_access_fn_non_staff_user(self):
  15. self.assertFalse(default_access_fn(self.non_staff_user, 'dashboard:index'))
  16. def test_default_access_fn_invalid_url_name(self):
  17. self.assertFalse(default_access_fn(self.staff_user, 'invalid_module:index'))
  18. def test_default_access_non_dashboard_url_name(self):
  19. assert reverse('search:search')
  20. self.assertFalse(default_access_fn(self.staff_user, 'search:search'))
  21. class DashboardNavTestCase(TestCase):
  22. def test_staff_user_has_menu(self):
  23. menu = get_nodes(UserFactory(is_staff=True))
  24. self.assertTrue(menu)
  25. def test_non_staff_user_has_empty_menu(self):
  26. menu = get_nodes(UserFactory())
  27. self.assertEqual(menu, [])