Skip to content

Commit

Permalink
Delete Secret functionality in Client and Identity (#61)
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Lum committed Feb 28, 2017
1 parent c6f1917 commit 3a73341
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 3 deletions.
17 changes: 17 additions & 0 deletions src/main/python/covata/delta/client.py
Expand Up @@ -254,6 +254,15 @@ def share_secret(self, identity_id, recipient_id, secret_id):

return self.get_secret(recipient.id, response["id"])

def delete_secret(self, identity_id, secret_id):
"""
Deletes the secret with the given secret id.
:param identity_id: the authenticating identity id
:param secret_id: the secret id
"""
self.api_client.delete_secret(identity_id, secret_id)


class Identity:
"""
Expand Down Expand Up @@ -344,6 +353,14 @@ def create_secret(self, content):
"""
return self.parent.create_secret(self.id, content)

def delete_secret(self, secret_id):
"""
Deletes the secret with the given secret id.
:param secret_id: the secret id
"""
self.parent.delete_secret(self.id, secret_id)

def __repr__(self):
return "{cls}(id={id})" \
.format(cls=self.__class__.__name__,
Expand Down
7 changes: 7 additions & 0 deletions src/test/python/test_client.py
Expand Up @@ -273,3 +273,10 @@ def test_share_secret(client, api_client, key_store, private_key, mock_crypto):
assert secret.encryption_details.initialisation_vector == mock_crypto["iv"]
assert secret.encryption_details.symmetric_key == mock_crypto["key"]
assert secret.base_secret_id == secret_id


@pytest.mark.parametrize("identity_id", [None, str(uuid.uuid4())])
@pytest.mark.parametrize("secret_id", [None, str(uuid.uuid4())])
def test_delete_secret(client, api_client, identity_id, secret_id):
client.delete_secret(identity_id, secret_id)
api_client.delete_secret.assert_called_with(identity_id, secret_id)
14 changes: 11 additions & 3 deletions src/test/python/test_identity.py
Expand Up @@ -13,6 +13,7 @@
# limitations under the License.

import pytest
import uuid
from covata.delta import Identity


Expand Down Expand Up @@ -55,9 +56,16 @@ def test_get_identities_by_metadata(identity_a, metadata, page, page_size,
identity_a.id, metadata, page, page_size)


def test_create_secret(identity_a, client):
identity_a.create_secret("my secret")
client.create_secret.assert_called_with(identity_a.id, "my secret")
@pytest.mark.parametrize("content", [None, "my secret", b"my secret"])
def test_create_secret(identity_a, client, content):
identity_a.create_secret(content)
client.create_secret.assert_called_with(identity_a.id, content)


@pytest.mark.parametrize("secret_id", [None, str(uuid.uuid4())])
def test_delete_secret(identity_a, client, secret_id):
identity_a.delete_secret(secret_id)
client.delete_secret.assert_called_with(identity_a.id, secret_id)


def test_repr(identity_a, identity_b):
Expand Down

0 comments on commit 3a73341

Please sign in to comment.