62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
|
#!/usr/bin/env python3
|
||
|
#
|
||
|
# Quick script to test endpoints of kalkutago
|
||
|
|
||
|
from requests import get, post, put, patch
|
||
|
from time import gmtime as utc
|
||
|
|
||
|
credentials = {"name": "testuser", "password": "testpass"}
|
||
|
track = {"name": "test", "description": "test track", "icon": "❓", "enabled": 1}
|
||
|
|
||
|
def test_auth(method):
|
||
|
res = method(f'http://kalkutago/api/v1/auth', json=credentials)
|
||
|
assert 'user' in res.cookies.iterkeys(), \
|
||
|
f'no user cookie found. Cookies: {res.cookies.get_dict()}; body: ' + \
|
||
|
res.text
|
||
|
return res.cookies['user']
|
||
|
|
||
|
def test_create_user():
|
||
|
return test_auth(post)
|
||
|
|
||
|
def test_login():
|
||
|
return test_auth(put)
|
||
|
|
||
|
def test_track_creation(auth_cookie):
|
||
|
res = post('http://kalkutago/api/v1/tracks', json=track,
|
||
|
cookies={'user': auth_cookie})
|
||
|
print(res.text)
|
||
|
res.raise_for_status()
|
||
|
return res.json()
|
||
|
|
||
|
def test_get_track(auth_cookie, track):
|
||
|
res = get(f'http://kalkutago/api/v1/tracks/{track["id"]}',
|
||
|
cookies={'user': auth_cookie})
|
||
|
print(res.text)
|
||
|
res.raise_for_status()
|
||
|
retrieved = res.json()
|
||
|
assert track == retrieved, f'expected {track!r} to equal {retrieved!r}'
|
||
|
return retrieved
|
||
|
|
||
|
def test_tick(auth_cookie, track):
|
||
|
res = patch(f'http://kalkutago/api/v1/tracks/{track["id"]}/ticked',
|
||
|
cookies={'user': auth_cookie})
|
||
|
print(res.text)
|
||
|
res.raise_for_status()
|
||
|
retrieved = res.json()
|
||
|
# result:
|
||
|
# {"id":1,"track_id":6,"year":2023,"month":8,"day":10,"hour":13,"minute":7,"second":41,"has_time_info":1}
|
||
|
now = utc()
|
||
|
assert retrieved['track_id'] == track['id']
|
||
|
assert retrieved['year'] == now.tm_year
|
||
|
assert retrieved['month'] == now.tm_mon
|
||
|
assert retrieved['day'] == now.tm_mday
|
||
|
return retrieved
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
login_cookie = test_create_user()
|
||
|
test_login()
|
||
|
track = test_track_creation(login_cookie)
|
||
|
retrieved = test_get_track(login_cookie, track)
|
||
|
tick = test_tick(login_cookie, track)
|