fix: clean up mock model from django apps

ref: #804
This commit is contained in:
2025-06-07 16:08:11 +09:30
parent a3b9815891
commit 520008acff
2 changed files with 21 additions and 11 deletions

View File

@ -94,13 +94,17 @@ class ModelTestCases(
@pytest.fixture( scope = 'function', autouse = True) @pytest.fixture( scope = 'function', autouse = True)
def model_instance(cls, request, model, model_kwargs): def model_instance(cls, request, model, model_kwargs):
if model._meta.abstract: class MockModel(model):
class Meta:
app_label = 'core'
verbose_name = 'mock instance'
managed = False
class MockModel(model): if 'mockmodel' in apps.all_models['core']:
class Meta:
app_label = 'core' del apps.all_models['core']['mockmodel']
verbose_name = 'mock instance'
managed = False if model._meta.abstract:
instance = MockModel() instance = MockModel()
@ -110,16 +114,16 @@ class ModelTestCases(
yield instance yield instance
if instance.id: if 'mockmodel' in apps.all_models['core']:
del apps.all_models['core']['mockmodel']
if instance.id and type(instance) is not MockModel:
instance.delete() instance.delete()
del instance del instance
if 'mockmodel' in apps.all_models['core']:
del apps.all_models['core']['mockmodel']
@pytest.fixture( scope = 'class', autouse = True) @pytest.fixture( scope = 'class', autouse = True)

View File

@ -43,6 +43,12 @@ def model_instance(django_db_blocker, model_user, model, model_kwargs):
obj = MockModel() obj = MockModel()
if 'mockmodel' in apps.all_models['core']:
del apps.all_models['core']['mockmodel']
else: else:
new_kwargs = model_kwargs.copy() new_kwargs = model_kwargs.copy()