Remove `post_migrate` signal handler and multi db test.
parent
d62593e01b
commit
60649ac4e6
|
|
@ -1,5 +1,4 @@
|
|||
from django.apps import AppConfig
|
||||
from django.db.models.signals import post_migrate
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
|
|
@ -10,9 +9,6 @@ class AdminInterfaceConfig(AppConfig):
|
|||
default_auto_field = "django.db.models.AutoField"
|
||||
|
||||
def ready(self):
|
||||
|
||||
from admin_interface import settings
|
||||
from admin_interface.models import Theme
|
||||
|
||||
settings.check_installed_apps()
|
||||
post_migrate.connect(Theme.post_migrate_handler, sender=self)
|
||||
|
|
|
|||
|
|
@ -9,41 +9,30 @@ from .cache import del_cached_active_theme
|
|||
|
||||
|
||||
class Theme(models.Model):
|
||||
@staticmethod
|
||||
def post_migrate_handler(**kwargs):
|
||||
del_cached_active_theme()
|
||||
db = kwargs["using"]
|
||||
Theme.get_active_theme(database=db)
|
||||
|
||||
@staticmethod
|
||||
def post_delete_handler(**kwargs):
|
||||
del_cached_active_theme()
|
||||
db = kwargs["using"]
|
||||
Theme.get_active_theme(database=db)
|
||||
Theme.get_active_theme()
|
||||
|
||||
@staticmethod
|
||||
def post_save_handler(instance, **kwargs):
|
||||
del_cached_active_theme()
|
||||
db = kwargs["using"]
|
||||
if instance.active:
|
||||
Theme.objects.using(db).exclude(pk=instance.pk).update(active=False)
|
||||
Theme.get_active_theme(database=db)
|
||||
Theme.objects.exclude(pk=instance.pk).update(active=False)
|
||||
Theme.get_active_theme()
|
||||
|
||||
@staticmethod
|
||||
def pre_save_handler(instance, **kwargs):
|
||||
if instance.pk is None:
|
||||
db = kwargs["using"]
|
||||
try:
|
||||
obj = Theme.objects.using(db).get(name=instance.name)
|
||||
obj = Theme.objects.get(name=instance.name)
|
||||
instance.pk = obj.pk
|
||||
except Theme.DoesNotExist:
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def get_active_theme(database=None):
|
||||
objs_manager = (
|
||||
Theme.objects if database is None else Theme.objects.using(database)
|
||||
)
|
||||
def get_active_theme():
|
||||
objs_manager = Theme.objects
|
||||
objs_active_qs = objs_manager.filter(active=True)
|
||||
objs_active_ls = list(objs_active_qs)
|
||||
objs_active_count = len(objs_active_ls)
|
||||
|
|
|
|||
|
|
@ -92,26 +92,26 @@ class AdminInterfaceModelsTestCase(TestCase):
|
|||
self.assertEqual("{0}".format(theme), "Django")
|
||||
|
||||
|
||||
class AdminInterfaceModelsMultiDBTestCase(TestCase):
|
||||
databases = ["default", "replica"]
|
||||
# class AdminInterfaceModelsMultiDBTestCase(TestCase):
|
||||
# databases = ["default", "replica"]
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
Theme.objects.create(name="Change Active", active=True)
|
||||
# @classmethod
|
||||
# def setUpTestData(cls):
|
||||
# Theme.objects.create(name="Change Active", active=True)
|
||||
|
||||
def test_get_theme_from_default_db(self):
|
||||
de_theme = Theme.get_active_theme()
|
||||
assert de_theme.name == "Change Active"
|
||||
# def test_get_theme_from_default_db(self):
|
||||
# de_theme = Theme.get_active_theme()
|
||||
# assert de_theme.name == "Change Active"
|
||||
|
||||
def test_get_theme_from_replica_db(self):
|
||||
replica_theme = Theme.get_active_theme(database="replica")
|
||||
assert replica_theme.name == "Django"
|
||||
# def test_get_theme_from_replica_db(self):
|
||||
# replica_theme = Theme.get_active_theme(database="replica")
|
||||
# assert replica_theme.name == "Django"
|
||||
|
||||
def test_db_are_isolated(self):
|
||||
default_theme = Theme.get_active_theme()
|
||||
replica_theme = Theme.get_active_theme(database="replica")
|
||||
assert default_theme.name != replica_theme.name
|
||||
# def test_db_are_isolated(self):
|
||||
# default_theme = Theme.get_active_theme()
|
||||
# replica_theme = Theme.get_active_theme(database="replica")
|
||||
# assert default_theme.name != replica_theme.name
|
||||
|
||||
@expectedFailure
|
||||
def test_fail_for_wrong_db_defined_in_kwargs(self):
|
||||
Theme.get_active_theme(database="other")
|
||||
# @expectedFailure
|
||||
# def test_fail_for_wrong_db_defined_in_kwargs(self):
|
||||
# Theme.get_active_theme(database="other")
|
||||
|
|
|
|||
Loading…
Reference in New Issue