def test_it_must_contain_something_property_can_not_be_found(self, *args): step = MockedStep() step.context.stash = MockedTerraformPropertyList() step.sentence = 'Then it must contain' with self.assertRaises(AssertionError) as err: it_condition_contain_something(step, 'non_existent_property_value', MockedTerraformPropertyList) self.assertEqual(str(err.exception), 'non_existent_property_value property in test_name can not be found in ' 'test_resource_name (test_resource_type). It is set to test_value instead')
def test_it_condition_must_something_property_is_found(self): step = MockedStep() step.context.stash = MockedTerraformResourceList() it_condition_contain_something( step=step, condition='must', something='something', resourcelist=MockedTerraformResourceList) self.assertEqual(step.context.stash.__class__, MockedTerraformPropertyList)
def test_it_condition_should_something_property_stash_is_dict_found(self): step = MockedStep() step.context.stash = {} with self.assertRaises(AssertionError) as err: it_condition_contain_something( step=step, condition='must', something='something', resourcelist=MockedTerraformResourceList) self.assertEqual(str(err.exception), 'something does not exist.')
def test_it_condition_must_something_property_can_not_be_found(self): step = MockedStep() step.context.stash = MockedTerraformResourceList() with self.assertRaises(Exception) as err: it_condition_contain_something( step=step, condition='must', something=None, resourcelist=MockedTerraformResourceList) self.assertEqual(str(err.exception), 'should_have_properties hit')
def test_it_condition_must_something_property_is_found(self): step = MockedStep() step.context.stash = MockedTerraformResourceList() step.sentence = 'Then it must ..' it_condition_contain_something( step_obj=step, something='something', resourcelist=MockedTerraformResourceList) self.assertEqual(step.context.stash[0].__class__, MockedTerraformPropertyList)
def test_it_condition_must_something_property_can_not_be_found(self): step = MockedStep() step.context.stash = MockedTerraformResourceList() step.sentence = 'Then it must ..' with self.assertRaises(Exception) as err: it_condition_contain_something(step_obj=step, something=None, resourcelist=MockedTerraformResourceList) self.assertEqual(str(err.exception), 'should_have_properties hit') step.sentence = 'When it contains' it_condition_contain_something(step_obj=step, something=None, resourcelist=MockedTerraformResourceList) self.assertEqual(step.state, 'skipped')
def test_it_condition_should_something_property_stash_is_dict_found(self): step = MockedStep() step.context.stash = {} step.sentence = 'Then it must contain' with self.assertRaises(AssertionError) as err: it_condition_contain_something(step_obj=step, something='something', resourcelist=MockedTerraformResourceList) self.assertEqual(str(err.exception), 'something does not exist.') step.sentence = 'When it contains' step.context.stash = {} it_condition_contain_something(step_obj=step, something='something', resourcelist=MockedTerraformResourceList) self.assertEqual(step.state, 'skipped')
def test_it_condition_contain_something_resource_value_is_list_but_invalid( self): step = MockedStep() step.context_sensitive_sentence = 'it contains something' step.context.type = 'resource' step.context.stash = [{ 'address': 'some_address', 'type': 'resource', 'values': ['something'] }] with self.assertRaises(TerraformComplianceInternalFailure): it_condition_contain_something(step, 'something')
def test_it_condition_contain_something_resource_is_not_dict_failure(self): step = MockedStep() step.context_sensitive_sentence = 'it must contain something' step.context.type = 'resource' step.context.stash = ['some_resource'] with self.assertRaises(Failure): self.assertIsNone(it_condition_contain_something(step, 'something'))
def test_it_condition_must_something_property_stash_is_dict_found(self): step = MockedStep() step.context.stash = {'something': 'something else'} self.assertIsNone( it_condition_contain_something( step_obj=step, something='something', resourcelist=MockedTerraformResourceList))
def test_it_condition_contain_something_resource_found(self, *args): step = MockedStep() step.context_sensitive_sentence = 'it contains something' step.context.type = 'resource' step.context.stash = [{ 'address': 'some_address', 'type': 'resource', 'values': { 'something': True } }] self.assertTrue(it_condition_contain_something(step, 'something'))
def test_find_keys_that_has_kv_structure(self, *args): step = MockedStep() step.context.stash = [{ 'address': 'some_resource.id', 'type': 'some_resource_type', 'name': 'some_name', 'values': [{ 'key': 'some_other_key', 'value': 'some_other_value' }, { 'key': 'some_key', 'value': 'some_value' }] }] step.context.type = 'resource' step.context.name = 'some_name' step.context.property_name = 'tags' step.context_sensitive_sentence = 'must' it_condition_contain_something(step, 'some_key') self.assertEqual(step.context.stash[0]['values'], 'some_value')
def test_it_condition_contain_something_resource_value_is_list(self): step = MockedStep() step.context_sensitive_sentence = 'it contains something' step.context.type = 'resource' step.context.stash = [{ 'address': 'some_address', 'type': 'resource', 'values': [{ 'key': 'something', 'value': 'some_value' }] }] self.assertTrue(it_condition_contain_something(step, 'something'))
def test_it_condition_contain_something_resource_not_found(self, *args): step = MockedStep() step.context_sensitive_sentence = 'it must contain something' step.context.type = 'resource' step.context.stash = [{ 'address': 'some_address', 'type': 'resource', 'values': { 'something': True } }] with self.assertRaises(Failure) as err: self.assertIsNone( it_condition_contain_something(step, 'something else')) self.assertEqual( str(err.exception), '{} ({}) does not have {} property.'.format( 'some_address', 'resource', 'something else'))
def test_it_condition_contain_something_provider_found(self, *args): step = MockedStep() step.context.type = 'provider' step.context.stash = [{'name': 'test'}] self.assertTrue(it_condition_contain_something(step, 'something'))
def test_it_condition_contain_something_provider_not_found(self, *args): step = MockedStep() step.context.type = 'provider' step.context.stash = [] self.assertIsNone(it_condition_contain_something(step, 'something'))
def test_it_condition_contain_something_resource_list(self): step = MockedStep() step.context.stash.resource_list = None self.assertIsNone( it_condition_contain_something(step, 'should', 'not_important'))