#!/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)