def setUp(self):
        self.site = BlockAdminSite(name='block_admin')
        self.site.register(HTML)

        self.page_admin = PageAdmin(Page, AdminSite())

        User = get_user_model()
        # Superuser
        self.super_user = User.objects.create_superuser('test', '*****@*****.**', 'test')
        self.super_user_client = Client()
        self.super_user_client.login(username='******', password='******')

        # Normal user
        self.normal_user = User.objects.create_user('name', '*****@*****.**', 'psw')
        self.normal_user_client = Client()
        self.normal_user_client.login(username='******', password='******')
class TestBlockAdminSite(TestCase):
    def setUp(self):
        self.site = BlockAdminSite(name='block_admin')
        self.site.register(HTML)

        self.page_admin = PageAdmin(Page, AdminSite())

        User = get_user_model()
        # Superuser
        self.super_user = User.objects.create_superuser('test', '*****@*****.**', 'test')
        self.super_user_client = Client()
        self.super_user_client.login(username='******', password='******')

        # Normal user
        self.normal_user = User.objects.create_user('name', '*****@*****.**', 'psw')
        self.normal_user_client = Client()
        self.normal_user_client.login(username='******', password='******')

    def test_register_with_admin_class(self):
        self.site.unregister(HTML)
        self.site.register(HTML, BlockAdmin)

    def test_register_block(self):
        self.site.register_block(HTML, 'Common')

        # Run again whe `Common` is added in self.block_list
        self.site.register_block(HTML, 'Common')

    def test_get_urls(self):
        with self.settings(DEBUG=True):
            self.site.get_urls()
        self.site.get_urls()

    def test_admin_view(self):
        # Cacheble
        jsi18n_url = reverse('block_admin:jsi18n')
        response = self.super_user_client.get(jsi18n_url)
        self.assertEqual(response.status_code, 200)

        # Not cacheble
        jsi18n_url = reverse('block_admin:jsi18n')
        response = self.super_user_client.get(jsi18n_url, {'cacheable': False})
        self.assertEqual(response.status_code, 200)

        response = self.normal_user_client.get(jsi18n_url)
        self.assertEqual(response.status_code, 403)