You've already forked oncall
mirror of
https://github.com/linkedin/oncall.git
synced 2025-11-26 23:10:47 +02:00
Allow users to pin teams to landing page. Persist data in db to keep view consistent across machines
66 lines
2.2 KiB
Python
66 lines
2.2 KiB
Python
import requests
|
|
from testutils import prefix, api_v0
|
|
|
|
|
|
@prefix('test_v0_pin_team')
|
|
def test_v0_pin_team(user, team):
|
|
user_name = user.create()
|
|
team_name = team.create()
|
|
team_name_2 = team.create()
|
|
|
|
# Test pinning teams
|
|
re = requests.post(api_v0('users/%s/pinned_teams' % user_name),
|
|
json={'team': team_name})
|
|
assert re.status_code == 201
|
|
re = requests.post(api_v0('users/%s/pinned_teams' % user_name),
|
|
json={'team': team_name_2})
|
|
assert re.status_code == 201
|
|
|
|
# Test getting pinned teams
|
|
re = requests.get(api_v0('users/%s/pinned_teams' % user_name))
|
|
assert re.status_code == 200
|
|
data = re.json()
|
|
assert len(data) == 2
|
|
assert team_name in data
|
|
assert team_name_2 in data
|
|
|
|
# Test deleting pinned teams
|
|
re = requests.delete(api_v0('users/%s/pinned_teams/%s' % (user_name, team_name)))
|
|
assert re.status_code == 200
|
|
|
|
re = requests.get(api_v0('users/%s/pinned_teams' % user_name))
|
|
assert re.status_code == 200
|
|
data = re.json()
|
|
assert len(data) == 1
|
|
assert team_name not in data
|
|
|
|
|
|
@prefix('test_v0_pin_invalid')
|
|
def test_api_v0_pin_invalid(user, team):
|
|
user_name = user.create()
|
|
team_name = team.create()
|
|
|
|
# Test pinning duplicate team
|
|
re = requests.post(api_v0('users/%s/pinned_teams' % user_name),
|
|
json={'team': team_name})
|
|
assert re.status_code == 201
|
|
re = requests.post(api_v0('users/%s/pinned_teams' % user_name),
|
|
json={'team': team_name})
|
|
assert re.status_code == 400
|
|
|
|
# Test pinning nonexistent team
|
|
re = requests.post(api_v0('users/%s/pinned_teams' % user_name),
|
|
json={'team': 'nonexistent-team-foobar'})
|
|
assert re.status_code == 422
|
|
|
|
# Test pinning team for nonexistent user
|
|
re = requests.post(api_v0('users/%s/pinned_teams' % 'nonexistent-user-foobar'),
|
|
json={'team': team_name})
|
|
assert re.status_code == 422
|
|
|
|
# Test deleting unpinned team
|
|
re = requests.delete(api_v0('users/%s/pinned_teams/%s' % (user_name, team_name)))
|
|
assert re.status_code == 200
|
|
re = requests.delete(api_v0('users/%s/pinned_teams/%s' % (user_name, team_name)))
|
|
assert re.status_code == 404
|