test(config_management): Completed ConfigGroupSoftware Model Tests

ref: #804 #794
This commit is contained in:
2025-06-07 15:43:19 +09:30
parent 8c4e5d5c1d
commit dc56ced765
4 changed files with 139 additions and 32 deletions

View File

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

View File

@ -9,56 +9,56 @@ from core.tests.unit.centurion_abstract.test_unit_centurion_abstract_model impor
class Old:
# class Old:
model = ConfigGroupSoftware
# model = ConfigGroupSoftware
@classmethod
def setUpTestData(self):
""" Setup Test
# @classmethod
# def setUpTestData(self):
# """ Setup Test
"""
# """
self.organization = Organization.objects.create(name='test_org')
# self.organization = Organization.objects.create(name='test_org')
self.parent_item = ConfigGroups.objects.create(
organization = self.organization,
name = 'group_one'
)
# self.parent_item = ConfigGroups.objects.create(
# organization = self.organization,
# name = 'group_one'
# )
self.software_item = Software.objects.create(
organization = self.organization,
name = 'softwareone',
)
# self.software_item = Software.objects.create(
# organization = self.organization,
# name = 'softwareone',
# )
self.kwargs_item_create = {
'software': self.software_item,
'config_group': self.parent_item,
'action': DeviceSoftware.Actions.INSTALL
}
# self.kwargs_item_create = {
# 'software': self.software_item,
# 'config_group': self.parent_item,
# 'action': DeviceSoftware.Actions.INSTALL
# }
super().setUpTestData()
# super().setUpTestData()
def test_model_has_property_parent_object(self):
""" Check if model contains 'parent_object'
# def test_model_has_property_parent_object(self):
# """ Check if model contains 'parent_object'
This is a required property for all models that have a parent
"""
# This is a required property for all models that have a parent
# """
assert hasattr(self.model, 'parent_object')
# assert hasattr(self.model, 'parent_object')
def test_model_property_parent_object_returns_object(self):
""" Check if model contains 'parent_object'
# def test_model_property_parent_object_returns_object(self):
# """ Check if model contains 'parent_object'
This is a required property for all models that have a parent
"""
# This is a required property for all models that have a parent
# """
assert self.item.parent_object == self.parent_item
# assert self.item.parent_object == self.parent_item
@ -71,7 +71,12 @@ class ConfigGroupSoftwareModelTestCases(
@property
def parameterized_class_attributes(self):
return {}
return {
'model_tag': {
'type': models.NOT_PROVIDED,
'value': models.NOT_PROVIDED,
},
}
parameterized_model_fields = {
@ -113,6 +118,25 @@ class ConfigGroupSoftwareModelTestCases(
}
@pytest.mark.xfail( reason = 'not required for this model' )
def test_method_value_not_default___str__(self):
pass
@pytest.mark.xfail( reason = 'not required for this model' )
def test_model_tag_defined(self):
pass
def test_method_get_url_kwargs(self, mocker, model_instance, model_kwargs, settings):
"""Test Class Method
Ensure method `get_url_kwargs` returns the correct value.
"""
url = model_instance.get_url_kwargs()
assert model_instance.get_url_kwargs() == { 'config_group_id': model_kwargs['config_group'].id, 'pk': model_instance.id }
class ConfigGroupSoftwareModelInheritedCases(
ConfigGroupSoftwareModelTestCases,

View File

@ -49,6 +49,11 @@ from .model_configgrouphost import (
model_configgrouphost,
)
from .model_configgroupsoftware import (
kwargs_configgroupsoftware,
model_configgroupsoftware,
)
from .model_contenttype import (
model_contenttype,
)

View File

@ -0,0 +1,59 @@
import datetime
import pytest
from config_management.models.groups import ConfigGroupSoftware
from itam.models.device import DeviceSoftware
@pytest.fixture( scope = 'class')
def model_configgroupsoftware():
yield ConfigGroupSoftware
@pytest.fixture( scope = 'class')
def kwargs_configgroupsoftware(django_db_blocker,
kwargs_software, model_software,
kwargs_centurionmodel, model_configgroup, kwargs_configgroup,
):
with django_db_blocker.unblock():
centurion_kwargs = kwargs_centurionmodel.copy()
random_str = str(datetime.datetime.now(tz=datetime.timezone.utc))
software_kwargs = kwargs_software.copy()
software_kwargs.update({
'name': 'cgs' + str(random_str),
'organization': centurion_kwargs['organization']
})
software = model_software.objects.create( **software_kwargs )
group_kwargs = kwargs_configgroup.copy()
group_kwargs.update({
'name': 'cgg' + random_str,
'organization': centurion_kwargs['organization']
})
group = model_configgroup.objects.create( **group_kwargs )
kwargs = {
**centurion_kwargs,
'software': software,
'config_group': group,
'action': DeviceSoftware.Actions.INSTALL,
'modified': '2024-06-07T23:00:01Z',
}
yield kwargs.copy()
with django_db_blocker.unblock():
software.delete()
group.delete()