def setupScenario(self): """Import some parametrized puppet classes. This is required to make sure that we have smart class variable available. Read all available smart class parameters for imported puppet class to be able to work with unique entity for each specific test. """ self.puppet_modules = [{ 'author': 'robottelo', 'name': 'api_test_classparameters' }] self.org = entities.Organization().create() cv = publish_puppet_module(self.puppet_modules, CUSTOM_PUPPET_REPO, self.org) self.env = (entities.Environment().search( query={'search': 'content_view="{0}"'.format(cv.name)})[0].read()) self.puppet_class = entities.PuppetClass().search( query={ 'search': 'name = "{0}" and environment = "{1}"'.format( self.puppet_modules[0]['name'], self.env.name) })[0] self.sc_params_list = entities.SmartClassParameters().search( query={ 'search': 'puppetclass="{0}"'.format(self.puppet_class.name), 'per_page': 1000 }) scenario_ents = { self.__class__.__name__: { 'puppet_class': self.puppet_class.name } } create_dict(scenario_ents)
def setUpClass(cls): """Import some parametrized puppet classes. This is required to make sure that we have smart class parameter available. Read all available smart class parameters for imported puppet class to be able to work with unique entity for each specific test. """ super(SmartClassParametersTestCase, cls).setUpClass() cls.pm_name = 'ui_test_classparameters' cls.puppet_modules = [ {'author': 'robottelo', 'name': cls.pm_name}, ] cv = publish_puppet_module( cls.puppet_modules, CUSTOM_PUPPET_REPO, cls.session_org) cls.env = entities.Environment().search( query={'search': u'content_view="{0}"'.format(cv.name)} )[0].read() cls.puppet_class = entities.PuppetClass().search(query={ 'search': u'name = "{0}" and environment = "{1}"'.format( cls.puppet_modules[0]['name'], cls.env.name) })[0] cls.sc_params_list = entities.SmartClassParameters().search( query={ 'search': 'puppetclass="{0}"'.format(cls.puppet_class.name), 'per_page': 1000 }) cls.host = entities.Host(organization=cls.session_org).create() cls.host.environment = cls.env cls.host.update(['environment']) cls.host.add_puppetclass(data={'puppetclass_id': cls.puppet_class.id}) cls.domain_name = entities.Domain(id=cls.host.domain.id).read().name
def test_pre_puppet_class_parameter_data_and_type(self): """Puppet Class parameters with different data type are created :steps: 1. In Preupgrade Satellite, Import a puppet module having parameters 2. Update existing class parameters with different value and type :expectedresults: The parameters are updated with different data types """ self.setupScenario() for count in range(1, 10): with self.subTest(count): data = _valid_sc_parameters_data()[count - 1] sc_param = entities.SmartClassParameters().search( query={ 'search': 'parameter="api_classparameters_scp_00{}"'.format( count) })[0] sc_param.override = True sc_param.parameter_type = data['sc_type'] sc_param.default_value = data['value'] sc_param.update( ['override', 'parameter_type', 'default_value']) sc_param = sc_param.read() self.assertEqual(sc_param.parameter_type, data['sc_type']) self._validate_value(data, sc_param)
def test_pre_puppet_class_parameter_data_and_type(self, count, _setup_scenario): """Puppet Class parameters with different data type are created :id: preupgrade-08012f39-240b-40df-b893-2ee767129737 :parametrized: yes :steps: 1. In Preupgrade Satellite, Import a puppet module having parameters 2. Update existing class parameters with different value and type :expectedresults: The parameters are updated with different data types """ data = _valid_sc_parameters_data()[count - 1] sc_param = entities.SmartClassParameters().search( query={'search': f'parameter="api_classparameters_scp_00{count}"' })[0] sc_param.override = True sc_param.parameter_type = data['sc_type'] sc_param.default_value = data['value'] sc_param.update(['override', 'parameter_type', 'default_value']) sc_param = sc_param.read() assert sc_param.parameter_type == data['sc_type'] self._validate_value(data, sc_param)
def setUpClass(cls): """Import some parametrized puppet classes. This is required to make sure that we have smart class variable available. Read all available smart class parameters for imported puppet class to be able to work with unique entity for each specific test. """ super(SmartClassParametersTestCase, cls).setUpClass() cls.puppet_modules = [ {'author': 'robottelo', 'name': 'api_test_classparameters'}, ] cls.org = entities.Organization().create() cv = publish_puppet_module( cls.puppet_modules, CUSTOM_PUPPET_REPO, cls.org) cls.env = entities.Environment().search( query={'search': u'content_view="{0}"'.format(cv.name)} )[0].read() cls.puppet_class = entities.PuppetClass().search(query={ 'search': u'name = "{0}" and environment = "{1}"'.format( cls.puppet_modules[0]['name'], cls.env.name) })[0] cls.sc_params_list = entities.SmartClassParameters().search( query={ 'search': 'puppetclass="{0}"'.format(cls.puppet_class.name), 'per_page': 1000 })
def module_puppet(): puppet_modules = [{'author': 'robottelo', 'name': 'api_test_classparameters'}] org = entities.Organization().create() cv = publish_puppet_module(puppet_modules, CUSTOM_PUPPET_REPO, org) env = entities.Environment().search(query={'search': f'content_view="{cv.name}"'})[0].read() puppet_class = entities.PuppetClass().search( query={'search': f'name = "{puppet_modules[0]["name"]}" and environment = "{env.name}"'} )[0] sc_params_list = entities.SmartClassParameters().search( query={'search': f'puppetclass="{puppet_class.name}"', 'per_page': '1000'} ) yield {'env': env, 'class': puppet_class, 'sc_params': sc_params_list} delete_puppet_class(puppet_class.name)
def module_puppet(default_sat): puppet_class = 'api_test_classparameters' env_name = default_sat.create_custom_environment(repo=puppet_class) puppet_class = entities.PuppetClass().search( query={ 'search': f'name = "{puppet_class}" and environment = "{env_name}"' })[0] sc_params_list = entities.SmartClassParameters().search(query={ 'search': f'puppetclass="{puppet_class.name}"', 'per_page': '1000' }) env = entities.Environment().search( query={'search': f'name="{env_name}"'})[0].read() yield {'env': env, 'class': puppet_class, 'sc_params': sc_params_list} delete_puppet_class(puppet_class.name)
def test_post_puppet_class_parameter_data_and_type(self): """Puppet Class Parameters value and type is intact post upgrade :steps: Postupgrade, Verify the value and type of updated parameters :expectedresults: The puppet class parameters data and type should be intact post upgrade """ for count in range(1, 10): with self.subTest(count): data = _valid_sc_parameters_data()[count-1] sc_param = entities.SmartClassParameters().search(query={ 'search': 'parameter="api_classparameters_scp_00{}"'.format( count)})[0] self.assertEqual(sc_param.parameter_type, data['sc_type']) self._validate_value(data, sc_param) puppet_class = get_entity_data(self.__class__.__name__)['puppet_class'] delete_puppet_class(puppet_class)
def test_post_puppet_class_parameter_data_and_type(self, count, _clean_scenario): """Puppet Class Parameters value and type is intact post upgrade :parametrized: yes :steps: Postupgrade, Verify the value and type of updated parameters :expectedresults: The puppet class parameters data and type should be intact post upgrade """ data = _valid_sc_parameters_data()[count - 1] sc_param = entities.SmartClassParameters().search( query={'search': f'parameter="api_classparameters_scp_00{count}"' })[0] assert sc_param.parameter_type == data['sc_type'] self._validate_value(data, sc_param)
def _setup_scenario(self, default_sat): """Import some parametrized puppet classes. This is required to make sure that we have smart class variable available. Read all available smart class parameters for imported puppet class to be able to work with unique entity for each specific test. """ self.org = entities.Organization().create() repo = 'api_test_classparameters' env_name = default_sat.create_custom_environment(repo=repo) self.puppet_class = entities.PuppetClass().search( query={ 'search': f'name = "{repo}" and environment = "{env_name}"' })[0] self.sc_params_list = entities.SmartClassParameters().search( query={ 'search': f'puppetclass="{self.puppet_class.name}"', 'per_page': 1000 }) scenario_ents = { self.__class__.__name__: { 'puppet_class': self.puppet_class.name } } create_dict(scenario_ents)
def sc_params_list(puppet_class): return entities.SmartClassParameters().search( query={ 'search': 'puppetclass="{0}"'.format(puppet_class.name), 'per_page': 1000 })
def sc_params_list(puppet_class): return entities.SmartClassParameters().search( query={'search': f'puppetclass="{puppet_class.name}"', 'per_page': '1000'} )