Skip to content

Commit c66fb94

Browse files
authored
Merge pull request #102 from oslokommune/296-update-team
T#296 Add methods for updating teams
2 parents d721eef + e34f3de commit c66fb94

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
* New parameter `include` added to `TeamClient.get_teams`.
44
* New method `TeamClient.get_team_members` for getting the members of a team.
5+
* New methods `TeamClient.update_team_name` and
6+
`TeamClient.update_team_attribute`.
57

68
## 2.1.0
79

okdata/sdk/team/client.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,18 @@ def get_team_members(self, team_id):
5050
url = "{}/teams/{}/members".format(self.api_url, quote(team_id))
5151
log.info(f"SDK:Getting team members from: {url}")
5252
return self.get(url).json()
53+
54+
def update_team_name(self, team_id, team_name):
55+
"""Update the name of team with ID `team_id` to `team_name`."""
56+
url = "{}/teams/{}".format(self.api_url, quote(team_id))
57+
log.info(f"SDK:Updating team name on: {url}")
58+
return self.patch(url, {"name": team_name}).json()
59+
60+
def update_team_attribute(self, team_id, attribute, value):
61+
"""Update `attribute` of team with ID `team_id` to `value`.
62+
63+
Supplying a falsy `value` removes the attribute.
64+
"""
65+
url = "{}/teams/{}".format(self.api_url, quote(team_id))
66+
log.info(f"SDK:Updating team attribute on: {url}")
67+
return self.patch(url, {"attributes": {attribute: [value]}}).json()

tests/team/test_client.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,28 @@ def test_get_team_members(requests_mock):
5252
status_code=200,
5353
)
5454
assert TeamClient().get_team_members(team_id) == members
55+
56+
57+
def test_update_team_name(requests_mock):
58+
team_id = "abc"
59+
team_name = "Foo"
60+
team = {"team_id": team_id, "name": team_name}
61+
requests_mock.register_uri(
62+
"PATCH",
63+
re.compile(f"teams/{team_id}"),
64+
text=json.dumps(team),
65+
status_code=200,
66+
)
67+
assert TeamClient().update_team_name(team_id, team_name) == team
68+
69+
70+
def test_update_team_attribute(requests_mock):
71+
team_id = "abc"
72+
team = {"team_id": team_id, "name": "Foo", "attributes": {"a": ["b"]}}
73+
requests_mock.register_uri(
74+
"PATCH",
75+
re.compile(f"teams/{team_id}"),
76+
text=json.dumps(team),
77+
status_code=200,
78+
)
79+
assert TeamClient().update_team_attribute(team_id, "a", "b") == team

0 commit comments

Comments
 (0)