62 lines
1.5 KiB
Python
Executable File
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)
|
|
|