You've already forked oncall
mirror of
https://github.com/linkedin/oncall.git
synced 2025-11-27 23:18:38 +02:00
132 lines
5.2 KiB
Python
132 lines
5.2 KiB
Python
from testutils import prefix, api_v0
|
|
import requests
|
|
import time
|
|
|
|
|
|
@prefix('test_v0_fill_gap_new_user')
|
|
def test_api_v0_fill_gap_new_user(user, team, role, roster, event):
|
|
user_name = user.create()
|
|
user_name_2 = user.create()
|
|
user_name_3 = user.create()
|
|
user_name_4 = user.create()
|
|
user_name_5 = user.create()
|
|
team_name = team.create()
|
|
role_name = role.create()
|
|
roster_name = roster.create(team_name)
|
|
start = int(time.time()) + 100
|
|
user.add_to_roster(user_name, team_name, roster_name)
|
|
user.add_to_roster(user_name_2, team_name, roster_name)
|
|
user.add_to_roster(user_name_3, team_name, roster_name)
|
|
user.add_to_roster(user_name_4, team_name, roster_name)
|
|
user.add_to_roster(user_name_5, team_name, roster_name)
|
|
event.create({'start': start,
|
|
'end': start + 1000,
|
|
'user': user_name,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
event.create({'start': start + 1000,
|
|
'end': start + 2000,
|
|
'user': user_name_2,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
event.create({'start': start + 3000,
|
|
'end': start + 4000,
|
|
'user': user_name_3,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
event.create({'start': start + 4000,
|
|
'end': start + 5000,
|
|
'user': user_name_4,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
re = requests.get(api_v0('teams/%s/rosters/%s/%s/suggest?start=%s&end=%s' %
|
|
(team_name, roster_name, role_name, start + 2000, start + 3000)))
|
|
assert re.status_code == 200
|
|
assert re.json()['user'] == user_name_5
|
|
|
|
|
|
@prefix('test_v0_fill_gap')
|
|
def test_api_v0_fill_gap(user, team, role, roster, event):
|
|
user_name = user.create()
|
|
user_name_2 = user.create()
|
|
user_name_3 = user.create()
|
|
team_name = team.create()
|
|
role_name = role.create()
|
|
roster_name = roster.create(team_name)
|
|
start = int(time.time()) + 100
|
|
user.add_to_roster(user_name, team_name, roster_name)
|
|
user.add_to_roster(user_name_2, team_name, roster_name)
|
|
user.add_to_roster(user_name_3, team_name, roster_name)
|
|
event.create({'start': start,
|
|
'end': start + 1000,
|
|
'user': user_name,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
event.create({'start': start + 1000,
|
|
'end': start + 2000,
|
|
'user': user_name_2,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
event.create({'start': start + 3000,
|
|
'end': start + 4000,
|
|
'user': user_name_3,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
event.create({'start': start + 4000,
|
|
'end': start + 5000,
|
|
'user': user_name,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
re = requests.get(api_v0('teams/%s/rosters/%s/%s/suggest?start=%s&end=%s' %
|
|
(team_name, roster_name, role_name, start + 2000, start + 3000)))
|
|
assert re.status_code == 200
|
|
assert re.json()['user'] == user_name
|
|
|
|
@prefix('test_v0_fill_gap_skip_busy')
|
|
def test_api_v0_fill_gap_skip_busy(user, team, role, roster, event):
|
|
user_name = user.create()
|
|
user_name_2 = user.create()
|
|
user_name_3 = user.create()
|
|
user_name_4 = user.create()
|
|
team_name = team.create()
|
|
role_name = role.create()
|
|
role_name_2 = role.create()
|
|
roster_name = roster.create(team_name)
|
|
start = int(time.time()) + 1000
|
|
user.add_to_roster(user_name, team_name, roster_name)
|
|
user.add_to_roster(user_name_2, team_name, roster_name)
|
|
user.add_to_roster(user_name_3, team_name, roster_name)
|
|
user.add_to_roster(user_name_4, team_name, roster_name)
|
|
|
|
# Create events: user_name will be the expected user, with events far from
|
|
# the suggestion time (start + 2000). user_name_4 will be a busy user, who
|
|
# would otherwise be chosen.
|
|
event.create({'start': start,
|
|
'end': start + 1000,
|
|
'user': user_name,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
event.create({'start': start + 1000,
|
|
'end': start + 2000,
|
|
'user': user_name_2,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
event.create({'start': start + 3000,
|
|
'end': start + 4000,
|
|
'user': user_name_3,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
event.create({'start': start + 4000,
|
|
'end': start + 5000,
|
|
'user': user_name,
|
|
'team': team_name,
|
|
'role': role_name})
|
|
event.create({'start': start + 2500,
|
|
'end': start + 3000,
|
|
'user': user_name_4,
|
|
'team': team_name,
|
|
'role': role_name_2})
|
|
re = requests.get(api_v0('teams/%s/rosters/%s/%s/suggest?start=%s&end=%s' %
|
|
(team_name, roster_name, role_name, start + 2000, start + 3000)))
|
|
assert re.status_code == 200
|
|
assert re.json()['user'] == user_name |