2019-10-19 12:44:41 +03:00

82 lines
2.5 KiB
Python

from django.apps import apps
from django.contrib import admin
from django.contrib.admin.checks import check_admin_app
from django.db import models
from django.test import TestCase
from localized_fields.admin import LocalizedFieldsAdminMixin
from localized_fields.fields import LocalizedField
from tests.fake_model import get_fake_model
class LocalizedFieldsAdminMixinTestCase(TestCase):
"""Tests the :see:LocalizedFieldsAdminMixin class."""
TestModel = None
TestRelModel = None
@classmethod
def setUpClass(cls):
"""Creates the test model in the database."""
super(LocalizedFieldsAdminMixinTestCase, cls).setUpClass()
cls.TestRelModel = get_fake_model({"description": LocalizedField()})
cls.TestModel = get_fake_model(
{
"title": LocalizedField(),
"rel": models.ForeignKey(
cls.TestRelModel, on_delete=models.CASCADE
),
}
)
def tearDown(self):
if admin.site.is_registered(self.TestModel):
admin.site.unregister(self.TestModel)
if admin.site.is_registered(self.TestRelModel):
admin.site.unregister(self.TestRelModel)
@classmethod
def test_model_admin(cls):
"""Tests whether :see:LocalizedFieldsAdminMixin mixin are works with
admin.ModelAdmin."""
@admin.register(cls.TestModel)
class TestModelAdmin(LocalizedFieldsAdminMixin, admin.ModelAdmin):
pass
assert len(check_admin_app(apps.get_app_configs())) == 0
@classmethod
def test_stackedmodel_admin(cls):
"""Tests whether :see:LocalizedFieldsAdminMixin mixin are works with
admin.StackedInline."""
class TestModelStackedInline(
LocalizedFieldsAdminMixin, admin.StackedInline
):
model = cls.TestModel
@admin.register(cls.TestRelModel)
class TestRelModelAdmin(admin.ModelAdmin):
inlines = [TestModelStackedInline]
assert len(check_admin_app(apps.get_app_configs())) == 0
@classmethod
def test_tabularmodel_admin(cls):
"""Tests whether :see:LocalizedFieldsAdminMixin mixin are works with
admin.TabularInline."""
class TestModelTabularInline(
LocalizedFieldsAdminMixin, admin.TabularInline
):
model = cls.TestModel
@admin.register(cls.TestRelModel)
class TestRelModelAdmin(admin.ModelAdmin):
inlines = [TestModelTabularInline]
assert len(check_admin_app(apps.get_app_configs())) == 0