Skip to content

Commit f3bdc13

Browse files
committed
fixes(orgs-v3) add default None value for 'suspended' update parameter
Closes #261
1 parent 356e0e2 commit f3bdc13

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

cloudfoundry_client/v3/organizations.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,20 @@ def update(
2020
self,
2121
guid: str,
2222
name: str,
23-
suspended: Optional[bool],
23+
suspended: Optional[bool] = None,
2424
meta_labels: Optional[dict] = None,
2525
meta_annotations: Optional[dict] = None,
2626
) -> Entity:
27-
data = {"name": name, "suspended": suspended, "metadata": {"labels": meta_labels, "annotations": meta_annotations}}
27+
data = {"name": name}
28+
if suspended is not None:
29+
data["suspended"] = suspended
30+
metadata = {}
31+
if meta_labels is not None:
32+
metadata["labels"] = meta_labels
33+
if meta_annotations is not None:
34+
metadata["annotations"] = meta_annotations
35+
if len(metadata) > 0:
36+
data["metadata"] = metadata
2837
return super(OrganizationManager, self)._update(guid, data)
2938

3039
def remove(self, guid: str, asynchronous: bool = True) -> Optional[str]:

tests/v3/test_organizations.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,25 @@ def test_get(self):
3535
self.assertEqual("my-organization", organization["name"])
3636
self.assertIsInstance(organization, Entity)
3737

38-
def test_update(self):
38+
def test_update_without_optional_parameters(self):
3939
self.client.patch.return_value = self.mock_response(
4040
"/v3/organizations/organization_id", HTTPStatus.OK, None, "v3", "organizations", "PATCH_{id}_response.json"
4141
)
42-
result = self.client.v3.organizations.update("organization_id", "my-organization", suspended=True)
42+
result = self.client.v3.organizations.update("organization_id", "my-organization")
4343
self.client.patch.assert_called_with(
4444
self.client.patch.return_value.url,
45-
json={"suspended": True, "name": "my-organization", "metadata": {"labels": None, "annotations": None}},
45+
json={"name": "my-organization"},
46+
)
47+
self.assertIsNotNone(result)
48+
49+
def test_update_with_optional_parameters(self):
50+
self.client.patch.return_value = self.mock_response(
51+
"/v3/organizations/organization_id", HTTPStatus.OK, None, "v3", "organizations", "PATCH_{id}_response.json"
52+
)
53+
result = self.client.v3.organizations.update("organization_id", "my-organization", suspended=True, meta_labels={"label_name": "label_value"}, meta_annotations={"annotation_name": "annotation_value"})
54+
self.client.patch.assert_called_with(
55+
self.client.patch.return_value.url,
56+
json={"suspended": True, "name": "my-organization", "metadata": {"labels": {"label_name": "label_value"}, "annotations": {"annotation_name": "annotation_value"}}},
4657
)
4758
self.assertIsNotNone(result)
4859

0 commit comments

Comments
 (0)