Skip to content

Commit 7151b7b

Browse files
committed
update tests to work for new vault object types
1 parent bd99a0e commit 7151b7b

File tree

4 files changed

+42
-43
lines changed

4 files changed

+42
-43
lines changed

tests/test_vault.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
from tests.utils.fixtures.mock_vault_object import (
33
MockVaultObject,
44
MockObjectVersion,
5-
MockDataKey,
6-
MockDataKeyPair,
5+
MockObjectDigest,
6+
MockObjectMetadata,
77
)
88
from tests.utils.list_resource import list_response_of
99
from tests.utils.syncify import syncify
@@ -23,6 +23,14 @@ def mock_vault_object(self):
2323
"vault_01234567890abcdef", "test-secret", "secret-value"
2424
).dict()
2525

26+
@pytest.fixture
27+
def mock_object_digest(self):
28+
return MockObjectDigest("vault_01234567890abcdef", "test-secret").dict()
29+
30+
@pytest.fixture
31+
def mock_object_metadata(self):
32+
return MockObjectMetadata("vault_01234567890abcdef").dict()
33+
2634
@pytest.fixture
2735
def mock_vault_object_no_value(self):
2836
mock_obj = MockVaultObject("vault_01234567890abcdef", "test-secret")
@@ -32,8 +40,7 @@ def mock_vault_object_no_value(self):
3240
@pytest.fixture
3341
def mock_vault_objects_list(self):
3442
vault_objects = [
35-
MockVaultObject(f"vault_{i}", f"secret-{i}", f"value-{i}").dict()
36-
for i in range(5)
43+
MockObjectDigest(f"vault_{i}", f"secret-{i}").dict() for i in range(5)
3744
]
3845
return {
3946
"data": vault_objects,
@@ -44,8 +51,7 @@ def mock_vault_objects_list(self):
4451
@pytest.fixture
4552
def mock_vault_objects_multiple_pages(self):
4653
vault_objects = [
47-
MockVaultObject(f"vault_{i}", f"secret-{i}", f"value-{i}").dict()
48-
for i in range(25)
54+
MockObjectDigest(f"vault_{i}", f"secret-{i}").dict() for i in range(25)
4955
]
5056
return list_response_of(data=vault_objects)
5157

@@ -176,13 +182,13 @@ def test_list_object_versions_empty_data(
176182
assert len(versions) == 0
177183

178184
def test_create_object_success(
179-
self, mock_vault_object, capture_and_mock_http_client_request
185+
self, mock_object_metadata, capture_and_mock_http_client_request
180186
):
181187
request_kwargs = capture_and_mock_http_client_request(
182-
self.http_client, mock_vault_object, 200
188+
self.http_client, mock_object_metadata, 200
183189
)
184190

185-
vault_object = self.vault.create_object(
191+
object_metadata = self.vault.create_object(
186192
name="test-secret",
187193
value="secret-value",
188194
key_context=KeyContext({"key": "test-key"}),
@@ -192,10 +198,8 @@ def test_create_object_success(
192198
assert request_kwargs["url"].endswith("/vault/v1/kv")
193199
assert request_kwargs["json"]["name"] == "test-secret"
194200
assert request_kwargs["json"]["value"] == "secret-value"
195-
assert request_kwargs["json"]["context"] == KeyContext({"key": "test-key"})
196-
assert vault_object.id == "vault_01234567890abcdef"
197-
assert vault_object.name == "test-secret"
198-
assert vault_object.value == "secret-value"
201+
assert request_kwargs["json"]["key_context"] == KeyContext({"key": "test-key"})
202+
assert object_metadata.id == "vault_01234567890abcdef"
199203

200204
def test_create_object_missing_name(self):
201205
with pytest.raises(

tests/utils/fixtures/mock_vault_object.py

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from workos.types.vault import (
44
VaultObject,
5+
ObjectDigest,
56
ObjectMetadata,
67
ObjectUpdateBy,
78
ObjectVersion,
@@ -37,38 +38,31 @@ def __init__(
3738
)
3839

3940

40-
class MockObjectVersion(ObjectVersion):
41-
def __init__(self, id="version_01234567890abcdef", current_version=True):
41+
class MockObjectDigest(ObjectDigest):
42+
def __init__(self, id="vault_01234567890abcdef", name="test-secret"):
4243
now = datetime.datetime.now().isoformat()
43-
super().__init__(
44-
id=id,
45-
created_at=now,
46-
current_version=current_version,
47-
)
44+
super().__init__(id=id, name=name, updated_at=now)
4845

4946

50-
class MockDataKey(DataKey):
51-
def __init__(
52-
self,
53-
id="key_01234567890abcdef",
54-
key="MDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWY=",
55-
):
47+
class MockObjectMetadata(ObjectMetadata):
48+
def __init__(self, id="vault_01234567890abcdef"):
49+
now = datetime.datetime.now().isoformat()
5650
super().__init__(
51+
context=KeyContext(key="test-key"),
52+
environment_id="env_01234567890abcdef",
5753
id=id,
58-
key=key,
54+
key_id="key_01234567890abcdef",
55+
updated_at=now,
56+
updated_by=ObjectUpdateBy(id="user_01234567890abcdef", name="Test User"),
57+
version_id="version_01234567890abcdef",
5958
)
6059

6160

62-
class MockDataKeyPair(DataKeyPair):
63-
def __init__(
64-
self, context=None, data_key=None, encrypted_keys="ZW5jcnlwdGVkX2tleXNfZGF0YQ=="
65-
):
66-
if context is None:
67-
context = VaultKeyContext({"key": "test-key"})
68-
if data_key is None:
69-
data_key = MockDataKey()
61+
class MockObjectVersion(ObjectVersion):
62+
def __init__(self, id="version_01234567890abcdef", current_version=True):
63+
now = datetime.datetime.now().isoformat()
7064
super().__init__(
71-
context=context,
72-
data_key=data_key,
73-
encrypted_keys=encrypted_keys,
65+
id=id,
66+
created_at=now,
67+
current_version=current_version,
7468
)

workos/types/list_resource.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
from workos.types.organizations import Organization
3434
from workos.types.sso import ConnectionWithDomains
3535
from workos.types.user_management import Invitation, OrganizationMembership, User
36-
from workos.types.vault import VaultObject
36+
from workos.types.vault import ObjectDigest
3737
from workos.types.workos_model import WorkOSModel
3838
from workos.utils.request_helper import DEFAULT_LIST_RESPONSE_LIMIT
3939

@@ -52,7 +52,7 @@
5252
AuthorizationResource,
5353
AuthorizationResourceType,
5454
User,
55-
VaultObject,
55+
ObjectDigest,
5656
Warrant,
5757
WarrantQueryResult,
5858
)

workos/vault.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,13 +246,14 @@ def list_objects(
246246
)
247247

248248
# Ensure object field is present
249-
if "object" not in response:
250-
response["object"] = "list"
249+
response_dict = dict(response)
250+
if "object" not in response_dict:
251+
response_dict["object"] = "list"
251252

252253
return VaultObjectList(
253254
list_method=self.list_objects,
254255
list_args=list_params,
255-
**ListPage[ObjectDigest](**response).model_dump(),
256+
**ListPage[ObjectDigest](**response_dict).model_dump(),
256257
)
257258

258259
def list_object_versions(

0 commit comments

Comments
 (0)