freechat/json-api/client-tests/config.py
shockrah a79195076d * Changin public_url & public_ws_url to shorter url & wsurl respectively
There's also some miscellaneous changes  that don't fit anywhere in this patch (mostly dev qol of roadmap updates)
2021-05-09 23:08:55 -07:00

63 lines
1.7 KiB
Python

import subprocess
import os
import sys
import json
class Server:
def __init__(self, meta: dict):
self.url = meta.get('url')
self.wsurl = meta.get('wsurl')
self.serv_name = meta.get('name')
def __str__(self) -> str:
fields = {
'url': self.url,
'wsurl': self.wsurl,
'name': self.serv_name
}
return str(fields)
class Admin:
def __init__(self, user: dict, server: dict):
self.id = user.get('id')
self.name = user.get('name')
self.permissions = user.get('permissions')
self.secret = user.get('secret')
self.status = user.get('status')
self.jwt = None
self.server = Server(server)
def __str__(self) -> str:
acc = {
'id': self.id,
'name': self.name,
'permissions': self.permissions,
'secret': self.secret,
'jwt': self.jwt,
}
container = {'user': acc, 'server': str(self.server)}
return str(container)
def create_admin() -> Admin :
CARGO_BIN = os.getenv('CARGO_BIN')
proc = subprocess.run(
f'cargo run --release -- -c python-tester'.split(),
text=True, capture_output=True
)
try:
raw = json.loads(proc.stdout)
user = raw.get('user')
server = raw.get('server')
if user is None or server is None:
print(f'User/Server Data was not serializable => raw', file=sys.stderr)
return None
else:
return Admin(user, server)
except Exception as e:
print(f'[create_admin] General exception caught in parsing => {e}', file=sys.stderr)
return None