diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/admin_changelist/tests.py | 4 | ||||
| -rw-r--r-- | tests/admin_checks/tests.py | 3 | ||||
| -rw-r--r-- | tests/admin_ordering/tests.py | 4 | ||||
| -rw-r--r-- | tests/admin_registration/tests.py | 42 | ||||
| -rw-r--r-- | tests/admin_views/test_autocomplete_view.py | 8 | ||||
| -rw-r--r-- | tests/gis_tests/geoadmin/tests.py | 10 | ||||
| -rw-r--r-- | tests/modeladmin/tests.py | 4 |
7 files changed, 46 insertions, 29 deletions
diff --git a/tests/admin_changelist/tests.py b/tests/admin_changelist/tests.py index 176b49c66c..8fdd343b18 100644 --- a/tests/admin_changelist/tests.py +++ b/tests/admin_changelist/tests.py @@ -878,7 +878,7 @@ class ChangeListTests(TestCase): user_parents = self._create_superuser("parents") # Test with user 'noparents' - m = custom_site._registry[Child] + m = custom_site.get_model_admin(Child) request = self._mocked_authenticated_request("/child/", user_noparents) response = m.changelist_view(request) self.assertNotContains(response, "Parent object") @@ -903,7 +903,7 @@ class ChangeListTests(TestCase): # Test default implementation custom_site.register(Child, ChildAdmin) - m = custom_site._registry[Child] + m = custom_site.get_model_admin(Child) request = self._mocked_authenticated_request("/child/", user_noparents) response = m.changelist_view(request) self.assertContains(response, "Parent object") diff --git a/tests/admin_checks/tests.py b/tests/admin_checks/tests.py index 417c8504ed..d2d1eb219e 100644 --- a/tests/admin_checks/tests.py +++ b/tests/admin_checks/tests.py @@ -276,8 +276,7 @@ class SystemChecksTestCase(SimpleTestCase): class MyBookAdmin(admin.ModelAdmin): def check(self, **kwargs): errors = super().check(**kwargs) - author_admin = self.admin_site._registry.get(Author) - if author_admin is None: + if not self.admin_site.is_registered(Author): errors.append("AuthorAdmin missing!") return errors diff --git a/tests/admin_ordering/tests.py b/tests/admin_ordering/tests.py index 486e222d01..57f8fc7c6f 100644 --- a/tests/admin_ordering/tests.py +++ b/tests/admin_ordering/tests.py @@ -152,10 +152,10 @@ class TestRelatedFieldsAdminOrdering(TestCase): site.unregister(Band) def check_ordering_of_field_choices(self, correct_ordering): - fk_field = site._registry[Song].formfield_for_foreignkey( + fk_field = site.get_model_admin(Song).formfield_for_foreignkey( Song.band.field, request=None ) - m2m_field = site._registry[Song].formfield_for_manytomany( + m2m_field = site.get_model_admin(Song).formfield_for_manytomany( Song.other_interpreters.field, request=None ) self.assertEqual(list(fk_field.queryset), correct_ordering) diff --git a/tests/admin_registration/tests.py b/tests/admin_registration/tests.py index 25f317d322..c8caf3f202 100644 --- a/tests/admin_registration/tests.py +++ b/tests/admin_registration/tests.py @@ -22,13 +22,13 @@ class TestRegistration(SimpleTestCase): def test_bare_registration(self): self.site.register(Person) - self.assertIsInstance(self.site._registry[Person], admin.ModelAdmin) + self.assertIsInstance(self.site.get_model_admin(Person), admin.ModelAdmin) self.site.unregister(Person) self.assertEqual(self.site._registry, {}) def test_registration_with_model_admin(self): self.site.register(Person, NameAdmin) - self.assertIsInstance(self.site._registry[Person], NameAdmin) + self.assertIsInstance(self.site.get_model_admin(Person), NameAdmin) self.site.unregister(Person) self.assertEqual(self.site._registry, {}) @@ -57,22 +57,28 @@ class TestRegistration(SimpleTestCase): def test_registration_with_star_star_options(self): self.site.register(Person, search_fields=["name"]) - self.assertEqual(self.site._registry[Person].search_fields, ["name"]) + self.assertEqual(self.site.get_model_admin(Person).search_fields, ["name"]) + + def test_get_model_admin_unregister_model(self): + msg = "The model Person is not registered." + with self.assertRaisesMessage(admin.sites.NotRegistered, msg): + self.site.get_model_admin(Person) def test_star_star_overrides(self): self.site.register( Person, NameAdmin, search_fields=["name"], list_display=["__str__"] ) - self.assertEqual(self.site._registry[Person].search_fields, ["name"]) - self.assertEqual(self.site._registry[Person].list_display, ["__str__"]) - self.assertTrue(self.site._registry[Person].save_on_top) + person_admin = self.site.get_model_admin(Person) + self.assertEqual(person_admin.search_fields, ["name"]) + self.assertEqual(person_admin.list_display, ["__str__"]) + self.assertIs(person_admin.save_on_top, True) def test_iterable_registration(self): self.site.register([Person, Place], search_fields=["name"]) - self.assertIsInstance(self.site._registry[Person], admin.ModelAdmin) - self.assertEqual(self.site._registry[Person].search_fields, ["name"]) - self.assertIsInstance(self.site._registry[Place], admin.ModelAdmin) - self.assertEqual(self.site._registry[Place].search_fields, ["name"]) + self.assertIsInstance(self.site.get_model_admin(Person), admin.ModelAdmin) + self.assertEqual(self.site.get_model_admin(Person).search_fields, ["name"]) + self.assertIsInstance(self.site.get_model_admin(Place), admin.ModelAdmin) + self.assertEqual(self.site.get_model_admin(Place).search_fields, ["name"]) self.site.unregister([Person, Place]) self.assertEqual(self.site._registry, {}) @@ -116,18 +122,26 @@ class TestRegistrationDecorator(SimpleTestCase): def test_basic_registration(self): register(Person)(NameAdmin) - self.assertIsInstance(self.default_site._registry[Person], admin.ModelAdmin) + self.assertIsInstance( + self.default_site.get_model_admin(Person), admin.ModelAdmin + ) self.default_site.unregister(Person) def test_custom_site_registration(self): register(Person, site=self.custom_site)(NameAdmin) - self.assertIsInstance(self.custom_site._registry[Person], admin.ModelAdmin) + self.assertIsInstance( + self.custom_site.get_model_admin(Person), admin.ModelAdmin + ) def test_multiple_registration(self): register(Traveler, Place)(NameAdmin) - self.assertIsInstance(self.default_site._registry[Traveler], admin.ModelAdmin) + self.assertIsInstance( + self.default_site.get_model_admin(Traveler), admin.ModelAdmin + ) self.default_site.unregister(Traveler) - self.assertIsInstance(self.default_site._registry[Place], admin.ModelAdmin) + self.assertIsInstance( + self.default_site.get_model_admin(Place), admin.ModelAdmin + ) self.default_site.unregister(Place) def test_wrapped_class_not_a_model_admin(self): diff --git a/tests/admin_views/test_autocomplete_view.py b/tests/admin_views/test_autocomplete_view.py index 90533ea5b0..f8ab32717a 100644 --- a/tests/admin_views/test_autocomplete_view.py +++ b/tests/admin_views/test_autocomplete_view.py @@ -3,6 +3,7 @@ import json from contextlib import contextmanager from django.contrib import admin +from django.contrib.admin.sites import NotRegistered from django.contrib.admin.tests import AdminSeleniumTestCase from django.contrib.admin.views.autocomplete import AutocompleteJsonView from django.contrib.auth.models import Permission, User @@ -61,8 +62,11 @@ site.register(Toy, autocomplete_fields=["child"]) @contextmanager def model_admin(model, model_admin, admin_site=site): - org_admin = admin_site._registry.get(model) - if org_admin: + try: + org_admin = admin_site.get_model_admin(model) + except NotRegistered: + org_admin = None + else: admin_site.unregister(model) admin_site.register(model, model_admin) try: diff --git a/tests/gis_tests/geoadmin/tests.py b/tests/gis_tests/geoadmin/tests.py index a7e5700b49..869307328e 100644 --- a/tests/gis_tests/geoadmin/tests.py +++ b/tests/gis_tests/geoadmin/tests.py @@ -9,7 +9,7 @@ class GeoAdminTest(SimpleTestCase): admin_site = site # ModelAdmin def test_widget_empty_string(self): - geoadmin = self.admin_site._registry[City] + geoadmin = self.admin_site.get_model_admin(City) form = geoadmin.get_changelist_form(None)({"point": ""}) with self.assertRaisesMessage(AssertionError, "no logs"): with self.assertLogs("django.contrib.gis", "ERROR"): @@ -21,7 +21,7 @@ class GeoAdminTest(SimpleTestCase): ) def test_widget_invalid_string(self): - geoadmin = self.admin_site._registry[City] + geoadmin = self.admin_site.get_model_admin(City) form = geoadmin.get_changelist_form(None)({"point": "INVALID()"}) with self.assertLogs("django.contrib.gis", "ERROR") as cm: output = str(form["point"]) @@ -38,7 +38,7 @@ class GeoAdminTest(SimpleTestCase): ) def test_widget_has_changed(self): - geoadmin = self.admin_site._registry[City] + geoadmin = self.admin_site.get_model_admin(City) form = geoadmin.get_changelist_form(None)() has_changed = form.fields["point"].has_changed @@ -59,7 +59,7 @@ class GISAdminTests(GeoAdminTest): admin_site = site_gis # GISModelAdmin def test_default_gis_widget_kwargs(self): - geoadmin = self.admin_site._registry[City] + geoadmin = self.admin_site.get_model_admin(City) form = geoadmin.get_changelist_form(None)() widget = form["point"].field.widget self.assertEqual(widget.attrs["default_lat"], 47) @@ -67,7 +67,7 @@ class GISAdminTests(GeoAdminTest): self.assertEqual(widget.attrs["default_zoom"], 12) def test_custom_gis_widget_kwargs(self): - geoadmin = site_gis_custom._registry[City] + geoadmin = site_gis_custom.get_model_admin(City) form = geoadmin.get_changelist_form(None)() widget = form["point"].field.widget self.assertEqual(widget.attrs["default_lat"], 55) diff --git a/tests/modeladmin/tests.py b/tests/modeladmin/tests.py index 627029c9cf..f2763ecc0f 100644 --- a/tests/modeladmin/tests.py +++ b/tests/modeladmin/tests.py @@ -871,7 +871,7 @@ class ModelAdminTests(TestCase): username="bob", email="bob@test.com", password="test" ) self.site.register(Band, ModelAdmin) - ma = self.site._registry[Band] + ma = self.site.get_model_admin(Band) ( deletable_objects, model_count, @@ -898,7 +898,7 @@ class ModelAdminTests(TestCase): return False self.site.register(Band, TestModelAdmin) - ma = self.site._registry[Band] + ma = self.site.get_model_admin(Band) ( deletable_objects, model_count, |
