diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-07-07 08:06:01 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-07 08:06:01 +0200 |
| commit | f64fd47a7627ed6ffe2df2a32ded6ee528a784eb (patch) | |
| tree | 1abf1f8f945e9b72a72d31ec00f356e1088c4538 /tests/admin_registration | |
| parent | d569c1dcfeb26ca9ee391e5dfeadedf2b5ed4253 (diff) | |
Fixed #9602 -- Added AdminSite.get_model_admin().
This allows retrieving an admin class for the given model class without
using internal attributes.
Diffstat (limited to 'tests/admin_registration')
| -rw-r--r-- | tests/admin_registration/tests.py | 42 |
1 files changed, 28 insertions, 14 deletions
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): |
