def test_its_key_is_not_value_dict_key_multi_success(self, *args): step = MockedStep() step.context.stash = [{ 'type': 'aws_db_instance', 'some_key': 'some_value', 'values': { 'tags': { 'tag_key_one': 'tag_value_one', 'tag_key_two': 'tag_value_two' } } }, { 'type': 'aws_db_instance', 'some_key': 'some_other_value', 'values': { 'tags': { 'tag_key_one': 'tag_value_one', 'tag_key_three': 'tag_value_three' } } }] its_key_is_not_value(step, 'tags', 'tag_key_four') self.assertTrue(type(step.context.stash) is list) self.assertEqual(len(step.context.stash), 2) self.assertEqual(step.context.stash[0]['some_key'], 'some_value') self.assertEqual(step.context.stash[1]['some_key'], 'some_other_value')
def test_its_key_is_not_value(self, test_case): step = MockedStep() step.context.stash = test_case.stash with patch('terraform_compliance.extensions.ext_radish_bdd.world', return_value=MockedWorld()): its_key_is_not_value(step, *test_case.args) def collect_ids(val): if isinstance(val, dict): for k, v in val.items(): if k == 'id': yield v else: yield from collect_ids(v) elif isinstance(val, list): for child in val: yield from collect_ids(child) all_ids = set(collect_ids(test_case.stash)) expected_ids = all_ids - test_case.expected_ids assert step.state == ('passed' if expected_ids else 'skipped') if expected_ids: actual_ids = set(o['id'] for o in step.context.stash) assert actual_ids == expected_ids
def test_its_key_is_not_value_dict_kv_failure(self, *args): step = MockedStep() step.context.stash = [ { 'type': 'aws_db_instance', 'some_key': 'some_value', 'values': { 'tags': { 'tag_key_one': 'tag_value_one', 'tag_key_two': 'tag_value_two' } } }, { 'type': 'aws_db_instance', 'some_key': 'some_other_value', 'values': { 'tags': { 'tag_key_one': 'tag_value_one', 'tag_key_three': 'tag_value_three' } } } ] its_key_is_not_value(step, 'tags', 'tag_key_one', 'tag_value_one') self.assertEqual(step.state, 'skipped')
def test_its_key_is_not_value_not_existent(self, *args): step = MockedStep() step.context.stash = [{ 'type': 'aws_db_instance', 'some_key': 'some_value', 'values': { 'storage_encrypted': True } }, { 'type': 'aws_db_instance', 'some_key': 'some_other_value', 'values': { 'storage_encrypted': False } }] its_key_is_not_value(step, 'something_else', 'some_value') self.assertEqual(step.state, 'skipped')
def test_its_key_is_not_value_exist_in_values_int(self): step = MockedStep() step.context.stash = [{ 'type': 'aws_db_instance', 'some_key': 'some_value[0]', 'values': { 'storage_encrypted': 1 } }, { 'type': 'aws_db_instance', 'some_key': 'some_other_value', 'values': { 'storage_encrypted': 2 } }] its_key_is_not_value(step, 'storage_encrypted', 1) self.assertTrue(type(step.context.stash) is list) self.assertEqual(step.context.stash[0]['some_key'], 'some_other_value')