1
0
mirror of https://github.com/linkedin/oncall.git synced 2025-12-02 23:58:38 +02:00
Files
oncall/e2e/test_users.py

80 lines
2.5 KiB
Python

# Copyright (c) LinkedIn Corporation. All rights reserved. Licensed under the BSD-2 Clause license.
# See LICENSE in the project root for license information.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
import json
from testutils import prefix, api_v0
def test_api_v0_users():
user_name = 'test_v0_users_user'
def clean_up():
requests.delete(api_v0('users/'+user_name))
clean_up()
# test adding user
re = requests.post(api_v0('users'), json={'name': user_name})
assert re.status_code == 201
re = requests.get(api_v0('users/'+user_name))
assert re.status_code == 200
response = json.loads(re.text)
assert 'contacts' in response
assert response['full_name'] != 'John Doe'
# test updating user
re = requests.put(api_v0('users/'+user_name), json={'full_name': 'John Doe', 'time_zone': 'PDT'})
assert re.status_code == 204
# test updating user contacts
re = requests.put(api_v0('users/'+user_name), json={'full_name': 'John Doe', 'contacts': {'call': '+1 333-333-3339'}})
assert re.status_code == 204
# make sure update has gone through, test get
re = requests.get(api_v0('users/'+user_name))
assert re.status_code == 200
response = re.json()
assert response['full_name'] == 'John Doe'
user_id = response['id']
re = requests.get(api_v0('users?id=%s' % user_id))
assert re.status_code == 200
response = re.json()
assert response[0]['full_name'] == 'John Doe'
re = requests.get(api_v0('users'), params={'name': user_name, 'fields': ['full_name', 'time_zone', 'contacts']})
assert re.status_code == 200
response = json.loads(re.text)
assert response[0]['full_name'] == 'John Doe'
assert response[0]['time_zone'] == 'PDT'
assert response[0]['contacts']['call'] == '+1 333-333-3339'
clean_up()
@prefix('test_v0_user_teams')
def test_api_v0_user_teams(team, user):
team_name = team.create()
user_name = user.create()
# should get an empty team list
re = requests.get(api_v0('users/%s/teams' % user_name))
assert re.status_code == 200
assert re.json() == []
# should not get an empty team list
re = requests.post(api_v0('teams/%s/users' % team_name), json={'name': user_name})
assert re.status_code == 201
re = requests.get(api_v0('users/%s/teams' % user_name))
assert re.status_code == 200
assert team_name in re.json()
# should get 404 on invalid user
re = requests.get(api_v0('users/invalid_user_foobar-123/teams'))
assert re.status_code == 404