diff --git a/app/config_management/models/groups.py b/app/config_management/models/groups.py index caf94b29..cdf377af 100644 --- a/app/config_management/models/groups.py +++ b/app/config_management/models/groups.py @@ -372,6 +372,7 @@ class ConfigGroupHosts( modified = AutoLastModifiedField() + @property def parent_object(self): """ Fetch the parent object """ @@ -379,6 +380,10 @@ class ConfigGroupHosts( return self.group + page_layout: list = [] + table_fields: list = [] + + class ConfigGroupSoftware( CenturionModel, diff --git a/app/config_management/tests/unit/config_group_hosts/conftest.py b/app/config_management/tests/unit/config_group_hosts/conftest.py new file mode 100644 index 00000000..5151fbb7 --- /dev/null +++ b/app/config_management/tests/unit/config_group_hosts/conftest.py @@ -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 diff --git a/app/config_management/tests/unit/config_group_hosts/test_unit_config_group_hosts_model.py b/app/config_management/tests/unit/config_group_hosts/test_unit_config_group_hosts_model.py index 62e77154..f7c69635 100644 --- a/app/config_management/tests/unit/config_group_hosts/test_unit_config_group_hosts_model.py +++ b/app/config_management/tests/unit/config_group_hosts/test_unit_config_group_hosts_model.py @@ -12,7 +12,7 @@ from core.tests.unit.centurion_abstract.test_unit_centurion_abstract_model impor @pytest.mark.model_config_group_hosts -class ConfigGroupSoftwareModelTestCases( +class ConfigGroupHostModelTestCases( CenturionAbstractModelInheritedCases ): @@ -20,7 +20,12 @@ class ConfigGroupSoftwareModelTestCases( @property def parameterized_class_attributes(self): - return {} + return { + 'model_tag': { + 'type': models.NOT_PROVIDED, + 'value': models.NOT_PROVIDED, + }, + } 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( - ConfigGroupSoftwareModelTestCases, + @pytest.mark.xfail( reason = 'not required for this model' ) + def test_model_tag_defined(self): + pass + + + +class ConfigGroupHostModelInheritedCases( + ConfigGroupHostModelTestCases, ): pass -class ConfigGroupSoftwareModelPyTest( - ConfigGroupSoftwareModelTestCases, +class ConfigGroupHostModelPyTest( + ConfigGroupHostModelTestCases, ): pass diff --git a/app/tests/fixtures/__init__.py b/app/tests/fixtures/__init__.py index be29f28f..9c679f8e 100644 --- a/app/tests/fixtures/__init__.py +++ b/app/tests/fixtures/__init__.py @@ -39,10 +39,25 @@ from .model_centurionsubmodel import ( model_centurionsubmodel, ) +from .model_configgroup import ( + kwargs_configgroup, + model_configgroup, +) + +from .model_configgrouphost import ( + kwargs_configgrouphost, + model_configgrouphost, +) + from .model_contenttype import ( model_contenttype, ) +from .model_device import ( + kwargs_device, + model_device, +) + from .model_featureflag import ( kwargs_featureflag, model_featureflag, diff --git a/app/tests/fixtures/model_configgroup.py b/app/tests/fixtures/model_configgroup.py new file mode 100644 index 00000000..f514a7ba --- /dev/null +++ b/app/tests/fixtures/model_configgroup.py @@ -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() diff --git a/app/tests/fixtures/model_configgrouphost.py b/app/tests/fixtures/model_configgrouphost.py new file mode 100644 index 00000000..d70a25b7 --- /dev/null +++ b/app/tests/fixtures/model_configgrouphost.py @@ -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() diff --git a/app/tests/fixtures/model_device.py b/app/tests/fixtures/model_device.py new file mode 100644 index 00000000..e1c06ff7 --- /dev/null +++ b/app/tests/fixtures/model_device.py @@ -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()