artcraft/_develop/tools/testing/curl/api_token_tests.py

62 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python3
import json
import re
import requests
import uuid
login_url = 'http://localhost:12345/login'
create_api_token_url = 'http://localhost:12345/api_tokens/create'
edit_api_token_url = 'http://localhost:12345/api_tokens/edit'
delete_api_token_url = 'http://localhost:12345/api_tokens/{}/delete'
payload = {
'username_or_email': 'echelon',
'password': 'testing',
}
r = requests.post(login_url, json=payload)
print("===== Login =====")
print('Status: {}'.format(r.status_code))
print(r.content)
for k, v in r.headers.items():
print(' {}: {}'.format(k, v))
raw_set_cookie_header = r.headers['set-cookie']
m = re.match(r'session=([^;\s]+);', raw_set_cookie_header)
session_cookie = m.group(1)
cookies = { 'session': session_cookie }
payload = {
'idempotency_token': str(uuid.uuid4()),
}
r = requests.post(create_api_token_url, cookies=cookies, json=payload)
print("===== Created API Token =====")
print('Status: {}'.format(r.status_code))
print(r.content)
api_token = json.loads(r.content)
payload = {
'api_token': api_token['api_token'],
'maybe_short_description': 'this describes my token',
}
r = requests.post(edit_api_token_url, cookies=cookies, json=payload)
print("===== Edited API Token =====")
print('Status: {}'.format(r.status_code))
print(r.content)
url = delete_api_token_url.format(api_token['api_token'])
r = requests.post(url, cookies=cookies)
print("===== Deleted API Token =====")
print('Status: {}'.format(r.status_code))
print(r.content)