def test_iterate_input_variables(self): variable1 = spec.Variable(name='testvariable1', value='a') variable2 = spec.Variable(name='testvariable2', value='b') variable3 = spec.Variable(name='testvariable3', generator='debug') variables = spec.Variables(variable1, variable2, variable3) input_variables = list(variables.iterate_input_variables()) self.assertEqual(input_variables, [variable1, variable2])
def test_values_as_dict(self): variable1 = spec.Variable(name='testvariable1', value='a') variable2 = spec.Variable(name='testvariable2', value='b') variables = spec.Variables(variable1, variable2) self.assertEqual(variables.values_as_dict(), { 'testvariable1': 'a', 'testvariable2': 'b' })
def test_add_variables(self): variable1 = spec.Variable(name='testvariable1') variable2 = spec.Variable(name='testvariable2') variables = spec.Variables() variables.add_variables(variable1, variable2) self.assertEqual(len(variables._variables), 2) self.assertEqual(variables._variables['testvariable1'], variable1) self.assertEqual(variables._variables['testvariable2'], variable2)
def test_set_variable_values(self): variables = spec.Variables() variables._variables['testvariable1'] = spec.Variable( name='testvariable') variables._variables['testvariable2'] = spec.Variable( name='testvariable') self.assertEqual(variables._variables['testvariable1'].value, None) self.assertEqual(variables._variables['testvariable2'].value, None) variables.set_variable_values(testvariable1='a', testvariable2='b') self.assertEqual(variables._variables['testvariable1'].value, 'a') self.assertEqual(variables._variables['testvariable2'].value, 'b')
def test_get_content_from_template(self): snippet = spec.Snippet(base_directory=self.enviroment_directory, template='a = {{{ a }}}', variables=spec.Variables( spec.Variable(name='a', value=10))) self.assertEqual(snippet.render(), 'a = 10')
def test_validate_value_valid(self): variables = spec.Variables() variable = spec.Variable(variables=variables, name='testname', validators=spec.ValueValidators( {'one_letter': {}})) variable.validate_value(value='x')
def test_get_value_has_default(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname', default=spec.Default( variables=mock.MagicMock(), value='defaultvalue')) self.assertEqual(variable.get_value(), 'defaultvalue')
def test_deserialize_empty_data(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname') variable.deserialize(data={}) self.assertEqual(variable.name, 'testname') self.assertEqual(variable.default, None) self.assertEqual(len(variable.validators), 0) self.assertEqual(variable.help_text, None) self.assertEqual(variable.generator, None) self.assertEqual(variable.arguments, None)
def test_validate_value_invalid(self): variables = spec.Variables() variable = spec.Variable(variables=variables, name='testname', validators=spec.ValueValidators( {'one_letter': {}})) with self.assertRaisesRegex(exceptions.ValueValidationError, 'Must be exactly one letter'): variable.validate_value(value='xx')
def test_validate_spec_arguments_without_generator(self): variables = spec.Variables() variable = spec.Variable(variables=variables, name='testname', arguments={'a': 10}) with self.assertRaisesRegex( exceptions.SpecValidationError, 'Can not use "arguments" without a "generator".'): variable.validate_spec(path='test')
def test_validate_spec_invalid_generator(self): variables = spec.Variables() variable = spec.Variable(variables=variables, name='testname', generator='invalidgenerator') with self.assertRaisesRegex( exceptions.SpecValidationError, "Invalid generator: 'invalidgenerator'. Must be one of:"): variable.validate_spec(path='test')
def test_validate_spec_both_generator_and_default(self): variables = spec.Variables() variable = spec.Variable( variables=variables, name='testname', generator='debug', default=spec.Default(variables=mock.MagicMock())) with self.assertRaisesRegex( exceptions.SpecValidationError, 'Can not provide both "default" and "generator".'): variable.validate_spec(path='test')
def test_is_required_has_default_false(self): variable = spec.Variable( variables=mock.MagicMock(), name='testname', default=spec.Default(variables=mock.MagicMock())) self.assertFalse(variable.is_required())
def test_deserialize_arguments(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname') variable.deserialize(data={'arguments': {'length': 10}}) self.assertEqual(variable.arguments, {'length': 10})
def test_has_variable_true(self): variables = spec.Variables() variables._variables['testvariable'] = spec.Variable( name='testvariable', value='test') self.assertTrue(variables.has_variable('testvariable'))
def test_get_value_has_generator_with_arguments(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname', generator='debug', arguments={'suffix': 'xx'}) self.assertEqual(variable.get_value(), 'DEBUGxx')
def test_get_value_has_value(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname', value='testvalue') self.assertEqual(variable.get_value(), 'testvalue')
def test_takes_input_no_generator_true(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname') self.assertTrue(variable.takes_input())
def test_get_value_variable(self): variables = spec.Variables( spec.Variable(name='testvariable', value='variablevalue')) default = spec.Default(variables=variables, variable='testvariable') self.assertEqual(default.get_value(), 'variablevalue')
def test_is_required_no_default_true(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname') self.assertTrue(variable.is_required())
def test_takes_input_has_generator_false(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname', generator='random_alphanumeric_string') self.assertFalse(variable.takes_input())
def test_validate_value_no_validators(self): variables = spec.Variables() variable = spec.Variable(variables=variables, name='testname') variable.validate_value(value='x')
def test_set_value(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname') variable.set_value('testvalue') self.assertEqual(variable.value, 'testvalue')
def test_deserialize_default(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname') variable.deserialize(data={'default': {'value': 'the default'}}) self.assertEqual(variable.default.value, 'the default')
def test_get_variable_value(self): variables = spec.Variables() variables._variables['testvariable'] = spec.Variable( name='testvariable', value='test') self.assertEqual(variables.get_variable_value('testvariable'), 'test')
def test_deserialize_help_text(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname') variable.deserialize(data={'help_text': 'some help'}) self.assertEqual(variable.help_text, 'some help')
def test_get_value_has_generator(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname', generator='debug') self.assertEqual(variable.get_value(), 'DEBUG')
def test_deserialize_generator(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname') variable.deserialize(data={'generator': 'random_alphanumeric_string'}) self.assertEqual(variable.generator, 'random_alphanumeric_string')
def test_deserialize_validators(self): variable = spec.Variable(variables=mock.MagicMock(), name='testname') variable.deserialize(data={'validators': {'email': {}}}) self.assertEqual(len(variable.validators), 1)
def test_add_variable(self): variable = spec.Variable(name='testvariable') variables = spec.Variables() variables.add_variable(variable) self.assertEqual(variables._variables['testvariable'], variable)