refactor(assistance): Refactor KnowledgeBaseCategory Unit model tests

ref: #783 #786 #735
This commit is contained in:
2025-06-04 09:59:20 +09:30
parent b76bc5a416
commit 2509743597
5 changed files with 148 additions and 13 deletions

View File

@ -0,0 +1,51 @@
# Generated by Django 5.1.9 on 2025-06-04 00:23
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("access", "0010_company_alter_entity_entity_type_alter_person_dob_and_more"),
("assistance", "0011_knowledgebase_model_notes"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AlterField(
model_name="knowledgebasecategory",
name="parent_category",
field=models.ForeignKey(
blank=True,
help_text="Category this category belongs to",
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="assistance.knowledgebasecategory",
verbose_name="Parent Category",
),
),
migrations.AlterField(
model_name="knowledgebasecategory",
name="target_team",
field=models.ManyToManyField(
blank=True,
help_text="Team(s) to grant access to the article",
to="access.team",
verbose_name="Target Team(s)",
),
),
migrations.AlterField(
model_name="knowledgebasecategory",
name="target_user",
field=models.ForeignKey(
blank=True,
help_text="User(s) to grant access to the article",
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to=settings.AUTH_USER_MODEL,
verbose_name="Target Users(s)",
),
),
]

View File

@ -14,6 +14,8 @@ class KnowledgeBaseCategory(
CenturionModel
):
model_tag = 'kb_category'
class Meta:
@ -29,7 +31,6 @@ class KnowledgeBaseCategory(
parent_category = models.ForeignKey(
'self',
blank = True,
default = None,
help_text = 'Category this category belongs to',
null = True,
on_delete = models.SET_NULL,
@ -48,7 +49,6 @@ class KnowledgeBaseCategory(
target_team = models.ManyToManyField(
Team,
blank = True,
default = None,
help_text = 'Team(s) to grant access to the article',
verbose_name = 'Target Team(s)',
)
@ -57,7 +57,6 @@ class KnowledgeBaseCategory(
target_user = models.ForeignKey(
User,
blank = True,
default = None,
help_text = 'User(s) to grant access to the article',
null = True,
on_delete = models.SET_NULL,

View File

@ -0,0 +1,19 @@
import pytest
@pytest.fixture( scope = 'class')
def model(model_knowledgebasecategory):
yield model_knowledgebasecategory
@pytest.fixture( scope = 'class', autouse = True)
def model_kwargs(request, kwargs_knowledgebasecategory):
request.cls.kwargs_create_item = kwargs_knowledgebasecategory.copy()
yield kwargs_knowledgebasecategory.copy()
if hasattr(request.cls, 'kwargs_create_item'):
del request.cls.kwargs_create_item

View File

@ -1,16 +1,80 @@
from centurion.tests.unit.test_unit_models import (
TenancyObjectInheritedCases
import pytest
from django.db import models
from core.tests.unit.centurion_abstract.test_unit_centurion_abstract_model import (
CenturionAbstractModelInheritedCases
)
from django.test import TestCase
from assistance.models.knowledge_base_category import KnowledgeBaseCategory
class KnowledgeBaseModel(
TenancyObjectInheritedCases,
TestCase,
@pytest.mark.model_knowledge_base_category
class KnowledgeBaseCategoryModelTestCases(
CenturionAbstractModelInheritedCases
):
model = KnowledgeBaseCategory
@property
def parameterized_class_attributes(self):
return {
'model_tag': {
'type': str,
'value': 'kb_category'
},
}
parameterized_model_fields = {
'parent_category': {
'blank': True,
'default': models.fields.NOT_PROVIDED,
'field_type': models.ForeignKey,
'null': True,
'unique': False,
},
'name': {
'blank': False,
'default': models.fields.NOT_PROVIDED,
'field_type': models.CharField,
'max_length': 50,
'null': False,
'unique': False,
},
'target_team': {
'blank': True,
'default': models.fields.NOT_PROVIDED,
'field_type': models.ManyToManyField,
'null': False,
'unique': False,
},
'target_user': {
'blank': True,
'default': models.fields.NOT_PROVIDED,
'field_type': models.ForeignKey,
'null': True,
'unique': False,
},
'modified': {
'blank': False,
'default': models.fields.NOT_PROVIDED,
'field_type': models.DateTimeField,
'null': False,
'unique': False,
},
}
class KnowledgeBaseCategoryModelInheritedCases(
KnowledgeBaseCategoryModelTestCases,
):
pass
class KnowledgeBaseCategoryModelPyTest(
KnowledgeBaseCategoryModelTestCases,
):
pass

View File

@ -1073,6 +1073,8 @@ markers = [
"meta_models: Selects Meta models",
"model_featureflag: Feature Flag Model",
"model_gitgroup: Selects tests for model `git group`",
"model_knowledge_base: Selects Knowledge base tests.",
"model_knowledge_base_category: Selects Knowledge base category tests.",
"models: Selects all models tests.",
"note_models: Selects all centurion model note models",
"permissions: selects all permission related tests.",