def test_encrypt_all_to_encrypt(kms_stub): obj = EnvironmentDict( TREEHUGGER_APP='foo', TREEHUGGER_STAGE='bar', baz=ToEncrypt('qux'), ) kms_stub.add_response('encrypt', expected_params={ 'KeyId': 'alias/treehugger', 'Plaintext': b'qux', 'EncryptionContext': { 'treehugger_app': 'foo', 'treehugger_key': 'baz', 'treehugger_stage': 'bar', } }, service_response={ 'KeyId': 'treehugger', 'CiphertextBlob': b'quux', }) assert obj.encrypt_all_to_encrypt() == EnvironmentDict( TREEHUGGER_APP='foo', TREEHUGGER_STAGE='bar', baz=Encrypted(base64.b64encode(b'quux').decode('utf-8')), )
def test_decrypt_all_encrypted_plain(self, kms_stub): obj = EnvironmentDict( TREEHUGGER_APP='foo', TREEHUGGER_STAGE='bar', baz=Encrypted(base64.b64encode(b'qux').decode('utf-8')), corge=ToEncrypt('grault'), ) kms_stub.add_response( 'decrypt', expected_params={ 'CiphertextBlob': b'qux', 'EncryptionContext': { 'treehugger_app': 'foo', 'treehugger_key': 'baz', 'treehugger_stage': 'bar', } }, service_response={ 'KeyId': 'treehugger', 'Plaintext': b'quux', } ) assert obj.decrypt_all_encrypted(plain=True) == EnvironmentDict( TREEHUGGER_APP='foo', TREEHUGGER_STAGE='bar', baz='quux', corge='grault', )
def test_remove_all_encrypted_plain(self): obj = EnvironmentDict( TREEHUGGER_APP='foo', TREEHUGGER_STAGE='bar', baz=ToEncrypt('qux'), corge=Encrypted('grault'), ) assert obj.remove_all_encrypted(plain=True) == EnvironmentDict( TREEHUGGER_APP='foo', TREEHUGGER_STAGE='bar', baz='qux', )
def test_to_yaml_dict_fail_unknown_type(self): with pytest.raises(ValueError): EnvironmentDict(foo=1).to_yaml_dict()
def test_to_yaml_dict_success_encrypted(self): obj = EnvironmentDict(foo=Encrypted('bar')) assert obj.to_yaml_dict() == {'foo': {'encrypted': 'bar'}}
def test_to_yaml_dict_success_to_encrypt(self): obj = EnvironmentDict(foo=ToEncrypt('bar')) assert obj.to_yaml_dict() == {'foo': {'to_encrypt': 'bar'}}
def test_to_yaml_dict_success_plain(self): obj = EnvironmentDict(foo='bar') assert obj.to_yaml_dict() == {'foo': 'bar'}
def test_from_yaml_dict_fail_value_unknown(self): with pytest.raises(ValueError): EnvironmentDict.from_yaml_dict({'key': ['list']})
def test_from_yaml_dict_fail_key_not_string(self): with pytest.raises(AssertionError): EnvironmentDict.from_yaml_dict({1: 'not string key'})
def test_from_yaml_dict_fail_bad_type(self): with pytest.raises(AssertionError): EnvironmentDict.from_yaml_dict('not a dict')
def test_from_yaml_dict_success_encrypted(self): obj = EnvironmentDict.from_yaml_dict({'foo': {'encrypted': 'foo'}}) assert obj == EnvironmentDict({'foo': Encrypted('foo')})
def test_from_yaml_dict_success_to_encrypt(self): obj = EnvironmentDict.from_yaml_dict({'foo': {'to_encrypt': 'foo'}}) assert obj == EnvironmentDict({'foo': ToEncrypt('foo')})
def test_from_yaml_dict_success_plain(self): obj = EnvironmentDict.from_yaml_dict({'foo': 'bar'}) assert obj == EnvironmentDict({'foo': 'bar'})