def test_read_secrets_shows_vault_vault_error(connect_m): ''' Test read_secrets() gracefully displays vault errors. ''' os.environ['VAULT_ADDR'] = 'https://test.vaultserver' connect_m.side_effect = VaultError('Boom!') error_message = 'Vault Error: Boom!' with pytest.raises(SystemExit, match=error_message): vault.read_secrets('test/vault/path')
def test_read_secrets_shows_vault_forbidden_error(connect_m): ''' Test read_secrets() gracefully displays vault errors. ''' os.environ['VAULT_ADDR'] = 'https://test.vaultserver' connect_m.side_effect = Forbidden('Boom!') error_message = ( 'Permission denied. ' + 'Make sure the token is authorized to access `test/vault/path`.*' ) with pytest.raises(SystemExit, match=error_message): vault.read_secrets('test/vault/path')
def test_read_secrets_with_no_data(connect_m): ''' Test read_secrets() still returns a dictionary (empty) for response with no data. ''' client = Mock() connect_m.return_value = client client.read.return_value = {'data': None} result = vault.read_secrets('') assert result is not None assert is_dict(result)
def test_read_secrets_with_no_response(connect_m): ''' Test read_secrets() still returns a dictionary (empty) for empty response. ''' client = Mock() connect_m.return_value = client client.read.return_value = None result = vault.read_secrets('') assert result is not None assert is_dict(result)
def test_read_secrets(connect_m): ''' Test read_secrets() returns the secrets loaded from vault. ''' client = Mock() connect_m.return_value = client client.read.return_value = { 'auth': None, 'data': { 'FOO': 'foo', 'BAR': 'bar' } } result = vault.read_secrets('test/vault/path') client.read.assert_called_with('test/vault/path') assert result['FOO'] == 'foo' assert result['BAR'] == 'bar'