From d24ba1be7a53a113d19e2860c03aff9922efec24 Mon Sep 17 00:00:00 2001 From: Tom Carrick Date: Wed, 6 May 2020 10:29:51 +0200 Subject: Fixed #31034 -- Added a navigation sidebar to the admin. Co-authored-by: elky Co-authored-by: Goetz --- tests/admin_inlines/tests.py | 4 +- tests/admin_views/test_nav_sidebar.py | 103 ++++++++++++++++++++++++++++++++++ tests/admin_views/tests.py | 6 +- 3 files changed, 109 insertions(+), 4 deletions(-) create mode 100644 tests/admin_views/test_nav_sidebar.py (limited to 'tests') diff --git a/tests/admin_inlines/tests.py b/tests/admin_inlines/tests.py index 79bd77fef1..91bb9465a8 100644 --- a/tests/admin_inlines/tests.py +++ b/tests/admin_inlines/tests.py @@ -1331,7 +1331,9 @@ class SeleniumTests(AdminSeleniumTestCase): hide_links = self.selenium.find_elements_by_link_text('HIDE') self.assertEqual(len(hide_links), 2) for hide_index, field_name in enumerate(test_fields): - hide_links[hide_index].click() + hide_link = hide_links[hide_index] + self.selenium.execute_script('window.scrollTo(0, %s);' % hide_link.location['y']) + hide_link.click() self.wait_until_invisible(field_name) self.selenium.find_element_by_xpath('//input[@value="Save"]').click() self.assertEqual( diff --git a/tests/admin_views/test_nav_sidebar.py b/tests/admin_views/test_nav_sidebar.py new file mode 100644 index 0000000000..2225376cd5 --- /dev/null +++ b/tests/admin_views/test_nav_sidebar.py @@ -0,0 +1,103 @@ +from django.contrib import admin +from django.contrib.admin.tests import AdminSeleniumTestCase +from django.contrib.auth.models import User +from django.test import TestCase, override_settings +from django.urls import path, reverse + + +class AdminSiteWithSidebar(admin.AdminSite): + pass + + +class AdminSiteWithoutSidebar(admin.AdminSite): + enable_nav_sidebar = False + + +site_with_sidebar = AdminSiteWithSidebar(name='test_with_sidebar') +site_without_sidebar = AdminSiteWithoutSidebar(name='test_without_sidebar') + +site_with_sidebar.register(User) + +urlpatterns = [ + path('test_sidebar/admin/', site_with_sidebar.urls), + path('test_wihout_sidebar/admin/', site_without_sidebar.urls), +] + + +@override_settings(ROOT_URLCONF='admin_views.test_nav_sidebar') +class AdminSidebarTests(TestCase): + @classmethod + def setUpTestData(cls): + cls.superuser = User.objects.create_superuser( + username='super', + password='secret', + email='super@example.com', + ) + + def setUp(self): + self.client.force_login(self.superuser) + + def test_sidebar_not_on_index(self): + response = self.client.get(reverse('test_with_sidebar:index')) + self.assertNotContains(response, '