test(config_management): Completed ConfigGroupHost Model Tests

ref: #804 #793
This commit is contained in:
2025-06-07 15:42:08 +09:30
parent 4fda640832
commit 0e604228aa
7 changed files with 166 additions and 6 deletions

View File

@ -372,6 +372,7 @@ class ConfigGroupHosts(
modified = AutoLastModifiedField() modified = AutoLastModifiedField()
@property @property
def parent_object(self): def parent_object(self):
""" Fetch the parent object """ """ Fetch the parent object """
@ -379,6 +380,10 @@ class ConfigGroupHosts(
return self.group return self.group
page_layout: list = []
table_fields: list = []
class ConfigGroupSoftware( class ConfigGroupSoftware(
CenturionModel, CenturionModel,

View File

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

View File

@ -12,7 +12,7 @@ from core.tests.unit.centurion_abstract.test_unit_centurion_abstract_model impor
@pytest.mark.model_config_group_hosts @pytest.mark.model_config_group_hosts
class ConfigGroupSoftwareModelTestCases( class ConfigGroupHostModelTestCases(
CenturionAbstractModelInheritedCases CenturionAbstractModelInheritedCases
): ):
@ -20,7 +20,12 @@ class ConfigGroupSoftwareModelTestCases(
@property @property
def parameterized_class_attributes(self): def parameterized_class_attributes(self):
return {} return {
'model_tag': {
'type': models.NOT_PROVIDED,
'value': models.NOT_PROVIDED,
},
}
parameterized_model_fields = { parameterized_model_fields = {
@ -48,15 +53,24 @@ class ConfigGroupSoftwareModelTestCases(
} }
@pytest.mark.xfail( reason = 'not required for this model' )
def test_method_value_not_default___str__(self):
pass
class ConfigGroupSoftwareModelInheritedCases( @pytest.mark.xfail( reason = 'not required for this model' )
ConfigGroupSoftwareModelTestCases, def test_model_tag_defined(self):
pass
class ConfigGroupHostModelInheritedCases(
ConfigGroupHostModelTestCases,
): ):
pass pass
class ConfigGroupSoftwareModelPyTest( class ConfigGroupHostModelPyTest(
ConfigGroupSoftwareModelTestCases, ConfigGroupHostModelTestCases,
): ):
pass pass

View File

@ -39,10 +39,25 @@ from .model_centurionsubmodel import (
model_centurionsubmodel, model_centurionsubmodel,
) )
from .model_configgroup import (
kwargs_configgroup,
model_configgroup,
)
from .model_configgrouphost import (
kwargs_configgrouphost,
model_configgrouphost,
)
from .model_contenttype import ( from .model_contenttype import (
model_contenttype, model_contenttype,
) )
from .model_device import (
kwargs_device,
model_device,
)
from .model_featureflag import ( from .model_featureflag import (
kwargs_featureflag, kwargs_featureflag,
model_featureflag, model_featureflag,

27
app/tests/fixtures/model_configgroup.py vendored Normal file
View File

@ -0,0 +1,27 @@
import datetime
import pytest
from config_management.models.groups import ConfigGroups
@pytest.fixture( scope = 'class')
def model_configgroup():
yield ConfigGroups
@pytest.fixture( scope = 'class')
def kwargs_configgroup(django_db_blocker,
kwargs_centurionmodel
):
random_str = str(datetime.datetime.now(tz=datetime.timezone.utc))
kwargs = {
**kwargs_centurionmodel.copy(),
'name': 'cg' + random_str,
'config': {"key": "one", "existing": "dont_over_write"},
'modified': '2024-06-03T23:00:00Z',
}
yield kwargs.copy()

View File

@ -0,0 +1,56 @@
import datetime
import pytest
from config_management.models.groups import ConfigGroupHosts
@pytest.fixture( scope = 'class')
def model_configgrouphost():
yield ConfigGroupHosts
@pytest.fixture( scope = 'class')
def kwargs_configgrouphost(django_db_blocker,
kwargs_device, model_device,
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))
host_kwargs = kwargs_device.copy()
host_kwargs.update({
'name': 'cgh' + str(random_str).replace(' ', '').replace(':', '').replace('+', '').replace('.', ''),
'organization': centurion_kwargs['organization']
})
host = model_device.objects.create( **host_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,
'host': host,
'group': group,
'modified': '2024-06-07T23:00:00Z',
}
yield kwargs.copy()
with django_db_blocker.unblock():
host.delete()
group.delete()

24
app/tests/fixtures/model_device.py vendored Normal file
View File

@ -0,0 +1,24 @@
import datetime
import pytest
from itam.models.device import Device
@pytest.fixture( scope = 'class')
def model_device():
yield Device
@pytest.fixture( scope = 'class')
def kwargs_device(kwargs_centurionmodel):
random_str = str(datetime.datetime.now(tz=datetime.timezone.utc))
kwargs = {
**kwargs_centurionmodel.copy(),
'name': 'dev' + str(random_str).replace(' ', '').replace(':', '').replace('+', '').replace('.', ''),
}
yield kwargs.copy()