1. from django.contrib import admin
    
  2. from django.contrib.admin import sites
    
  3. from django.test import SimpleTestCase, override_settings
    
  4. 
    
  5. from .sites import CustomAdminSite
    
  6. 
    
  7. 
    
  8. @override_settings(
    
  9.     INSTALLED_APPS=[
    
  10.         "admin_default_site.apps.MyCustomAdminConfig",
    
  11.         "django.contrib.auth",
    
  12.         "django.contrib.contenttypes",
    
  13.         "django.contrib.sessions",
    
  14.         "django.contrib.messages",
    
  15.         "django.contrib.staticfiles",
    
  16.     ]
    
  17. )
    
  18. class CustomAdminSiteTests(SimpleTestCase):
    
  19.     def setUp(self):
    
  20.         # Reset admin.site since it may have already been instantiated by
    
  21.         # another test app.
    
  22.         self._old_site = admin.site
    
  23.         admin.site = sites.site = sites.DefaultAdminSite()
    
  24. 
    
  25.     def tearDown(self):
    
  26.         admin.site = sites.site = self._old_site
    
  27. 
    
  28.     def test_use_custom_admin_site(self):
    
  29.         self.assertEqual(admin.site.__class__.__name__, "CustomAdminSite")
    
  30. 
    
  31. 
    
  32. class DefaultAdminSiteTests(SimpleTestCase):
    
  33.     def test_use_default_admin_site(self):
    
  34.         self.assertEqual(admin.site.__class__.__name__, "AdminSite")
    
  35. 
    
  36.     def test_repr(self):
    
  37.         self.assertEqual(str(admin.site), "AdminSite(name='admin')")
    
  38.         self.assertEqual(repr(admin.site), "AdminSite(name='admin')")
    
  39. 
    
  40. 
    
  41. class AdminSiteTests(SimpleTestCase):
    
  42.     def test_repr(self):
    
  43.         admin_site = CustomAdminSite(name="other")
    
  44.         self.assertEqual(repr(admin_site), "CustomAdminSite(name='other')")