test(config_management): Completed ConfigGroupSoftware Model Tests
ref: #804 #794
This commit is contained in:
@ -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
|
@ -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
|
# @classmethod
|
||||||
def setUpTestData(self):
|
# def setUpTestData(self):
|
||||||
""" Setup Test
|
# """ Setup Test
|
||||||
|
|
||||||
"""
|
# """
|
||||||
|
|
||||||
self.organization = Organization.objects.create(name='test_org')
|
# self.organization = Organization.objects.create(name='test_org')
|
||||||
|
|
||||||
|
|
||||||
self.parent_item = ConfigGroups.objects.create(
|
# self.parent_item = ConfigGroups.objects.create(
|
||||||
organization = self.organization,
|
# organization = self.organization,
|
||||||
name = 'group_one'
|
# name = 'group_one'
|
||||||
)
|
# )
|
||||||
|
|
||||||
self.software_item = Software.objects.create(
|
# self.software_item = Software.objects.create(
|
||||||
organization = self.organization,
|
# organization = self.organization,
|
||||||
name = 'softwareone',
|
# name = 'softwareone',
|
||||||
)
|
# )
|
||||||
|
|
||||||
self.kwargs_item_create = {
|
# self.kwargs_item_create = {
|
||||||
'software': self.software_item,
|
# 'software': self.software_item,
|
||||||
'config_group': self.parent_item,
|
# 'config_group': self.parent_item,
|
||||||
'action': DeviceSoftware.Actions.INSTALL
|
# 'action': DeviceSoftware.Actions.INSTALL
|
||||||
}
|
# }
|
||||||
|
|
||||||
super().setUpTestData()
|
# super().setUpTestData()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_model_has_property_parent_object(self):
|
# def test_model_has_property_parent_object(self):
|
||||||
""" Check if model contains 'parent_object'
|
# """ 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):
|
# def test_model_property_parent_object_returns_object(self):
|
||||||
""" Check if model contains 'parent_object'
|
# """ 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
|
@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 = {
|
||||||
@ -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(
|
class ConfigGroupSoftwareModelInheritedCases(
|
||||||
ConfigGroupSoftwareModelTestCases,
|
ConfigGroupSoftwareModelTestCases,
|
||||||
|
5
app/tests/fixtures/__init__.py
vendored
5
app/tests/fixtures/__init__.py
vendored
@ -49,6 +49,11 @@ from .model_configgrouphost import (
|
|||||||
model_configgrouphost,
|
model_configgrouphost,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from .model_configgroupsoftware import (
|
||||||
|
kwargs_configgroupsoftware,
|
||||||
|
model_configgroupsoftware,
|
||||||
|
)
|
||||||
|
|
||||||
from .model_contenttype import (
|
from .model_contenttype import (
|
||||||
model_contenttype,
|
model_contenttype,
|
||||||
)
|
)
|
||||||
|
59
app/tests/fixtures/model_configgroupsoftware.py
vendored
Normal file
59
app/tests/fixtures/model_configgroupsoftware.py
vendored
Normal 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()
|
Reference in New Issue
Block a user