test(access): Unit Model Tests for TenancyAbstractModel

ref: #770 #758 #767
This commit is contained in:
2025-05-24 00:24:53 +09:30
parent 3e6d9233ca
commit 85d8d74cbf
3 changed files with 140 additions and 1 deletions

View File

@ -78,7 +78,7 @@ class TenancyAbstractModel(
context: dict = {
'logger': None,
'request': None,
'user': None,
}
""" Model Context

View File

@ -0,0 +1,14 @@
import pytest
from access.models.tenancy_abstract import TenancyAbstractModel
@pytest.fixture( scope = 'class')
def model(request):
request.cls.model = TenancyAbstractModel
yield request.cls.model
del request.cls.model

View File

@ -0,0 +1,125 @@
# import inspect
import pytest
# import rest_framework
from django.db import models
# from django.core.exceptions import (
# ValidationError
# )
# from django.utils.timezone import now
from centurion.tests.unit_models import ModelTestCases
from access.models.tenancy_abstract import TenancyAbstractModel
@pytest.mark.models
class TenancyAbstractModelTestCases(
ModelTestCases
):
kwargs_create_item = {}
parameterized_class_attributes = {
'context': {
'type': dict,
'value': {
'logger': None,
'user': None,
}
}
}
parameterized_model_fields = {
'organization': {
'blank': False,
'default': models.fields.NOT_PROVIDED,
'field_type': models.ForeignKey,
'null': False,
'unique': False,
},
}
@pytest.fixture( scope = 'class', autouse = True)
def setup_organization(cls, request, model, organization_one):
request.cls.organization = organization_one
if request.cls.kwargs_create_item:
request.cls.kwargs_create_item.update({
'organization': organization_one,
})
else:
request.cls.kwargs_create_item = {
'organization': organization_one,
}
def test_class_inherits_tenancy_model(self, model):
""" Class Check
Ensure this model inherits from `TenancyAbstractModel`
"""
assert issubclass(model, TenancyAbstractModel)
def test_method_get_tenant_returns_tenant(self, mocker, model_instance):
"""Test Class Method
Ensure method `get_history_model_name` returns the value of the models
audit name `<Model Class name>AuditHistory`
"""
test_value = self.organization
model_instance.organization = test_value
assert model_instance.get_tenant() == test_value
class TenancyAbstractModelInheritedCases(
TenancyAbstractModelTestCases,
):
pass
class TenancyAbstractModelPyTest(
TenancyAbstractModelTestCases,
):
def test_model_is_abstract(self, model):
assert model._meta.abstract
def test_method_get_tenant_returns_tenant(self, mocker, model_instance):
"""Test Class Method
Ensure method `get_history_model_name` returns the value of the models
audit name `<Model Class name>AuditHistory`
"""
test_value = self.organization
model_instance.organization = test_value
assert model_instance.get_tenant() == test_value