def test_set_value_sets_value(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('foo.bar.BAZ') self.assertEqual(p.value, None) p.value = 'foo' self.assertEqual(p.value, 'foo')
def test_set_name_sets_prefix(self): from_aws = Mock() with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', from_aws) p = UnboundParameter('BAZ') p.name = 'foo.bar.BARNEY' self.assertEqual(p.prefix, 'foo.bar.')
def test_set_prefix_accepts_empty_prefixes(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('foo.bar.BAZ') p.prefix = '' self.assertEqual(p.prefix, '') self.assertEqual(p.name, 'BAZ')
def test_set_key_sets_key(self): from_aws = Mock() with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', from_aws) p = UnboundParameter('BAZ') p.key = 'BARNEY' self.assertEqual(p.key, 'BARNEY')
def test_set_prefix_converts_None_to_empty_string(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('foo.bar.BAZ') p.prefix = None self.assertEqual(p.prefix, '') self.assertEqual(p.name, 'BAZ')
def test_set_key_reloads_aws_object(self): from_aws = Mock() with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', from_aws) p = UnboundParameter('BAZ') p.key = 'BARNEY' compare(from_aws.mock_calls, [call(), call()])
def test__render_read(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('foo.bar.BAZ') compare(p._render_read(), { 'Names': ['foo.bar.BAZ'], 'WithDecryption': True })
def test_set_key_sets_key_without_changing_prefix(self): from_aws = Mock() with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', from_aws) p = UnboundParameter('foo.bar.BAZ') p.key = 'BARNEY' self.assertEqual(p.key, 'BARNEY') self.assertEqual(p.prefix, 'foo.bar.')
def test_set_key_refuses_empty_keys(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('BAZ') with self.assertRaises(ValueError): p.key = '' with self.assertRaises(ValueError): p.key = None
def test_save_throws_ValueError_if_aws_object_and_not_overwrite(self): fake_boto3_session, put_parameter = self.get_mock_boto3_session( response={'Parameters': [{ 'Type': 'String' }]}) with Replacer() as r: r.replace('deployfish.aws.systems_manager.get_boto3_session', fake_boto3_session) p = UnboundParameter('foo.bar.BAZ', kms_key_id='my_key') p.value = 'foobar' with self.assertRaises(ValueError): p.save() put_parameter.assert_not_called()
def test__render_write_no_encryption(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('foo.bar.BAZ') p.value = 'my_value' compare( p._render_write(), { 'Name': 'foo.bar.BAZ', 'Value': 'my_value', 'Overwrite': True, 'Type': 'String' })
def test_get_value_returns_aws_value_if_aws_object_and_no_user_set_value( self): with Replacer() as r: r.replace('deployfish.aws.systems_manager.get_boto3_session', self.fake_boto3_session) p = UnboundParameter('foo.bar.BAZ') self.assertEqual(p.value, 'my_aws_value')
def test_get_key_returns_correct_key_even_if_no_prefix(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('BAZ') self.assertEqual(p.key, 'BAZ')
def test_get_name_returns_correct_name(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('foo.bar.BAZ') self.assertEqual(p.name, 'foo.bar.BAZ')
def test_get_prefix_returns_empty_string_if_no_prefix(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('BAZ') self.assertEqual(p.prefix, '')
def test__is_secure_key_but_no_aws_object_returns_True(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('foo.bar.BAZ', kms_key_id='my_key') self.assertTrue(p.is_secure)
def test_save_saves_if_no_aws_object(self): fake_boto3_session, put_parameter = self.get_mock_boto3_session() with Replacer() as r: r.replace('deployfish.aws.systems_manager.get_boto3_session', fake_boto3_session) p = UnboundParameter('foo.bar.BAZ', kms_key_id='my_key') p.value = 'foobar' p.save() put_parameter.assert_called_once() compare( put_parameter.call_args, call(Name='foo.bar.BAZ', Value='foobar', Overwrite=True, Type='SecureString', KeyId='my_key'))
def test_get_value_returns_None_if_no_aws_object_and_no_user_set_value( self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.UnboundParameter._from_aws', Mock()) p = UnboundParameter('foo.bar.BAZ') self.assertEqual(p.value, None)
def test_get_exists_returns_True_if_aws_object(self): with Replacer() as r: r.replace( 'deployfish.aws.systems_manager.get_boto3_session', self.get_mock_boto3_session( response={'Parameters': [{ 'Type': 'String' }]})) p = UnboundParameter('foo.bar.BAZ') self.assertTrue(p.exists)
def test__is_secure_no_key_with_secure_aws_object_returns_True(self): with Replacer() as r: r.replace('deployfish.aws.systems_manager.get_boto3_session', self.get_mock_boto3_session('SecureString')) p = UnboundParameter('foo.bar.BAZ') self.assertTrue(p.is_secure)
def test_get_exists_returns_False_if_no_aws_object(self): with Replacer() as r: r.replace('deployfish.aws.systems_manager.get_boto3_session', self.get_mock_boto3_session()) p = UnboundParameter('foo.bar.BAZ') self.assertFalse(p.exists)