import os from time import sleep os.chdir(os.path.dirname(__file__)) import sys sys.path.append("..") sys.path.append("..\\Sources") from Sources.Modules.Inventory.inventory import * #altered import Sources.main as main_func import Sources.Model.model_manager as model_manager import requests from werkzeug.security import generate_password_hash import Sources.View.view_manager as view item_id_to_delete = 0 import threading import pytest from requests.auth import AuthBase class TokenAuth(AuthBase): """Implements a custom authentication scheme.""" def __init__(self, token): self.token = token def __call__(self, r): """Attach an API token to a custom auth header.""" r.headers['x-Auth-Token'] = f'{self.token}' # Python 3.6+ return r @pytest.fixture(autouse=True,scope='session') def fixture2(): def run() : main_func.init() persistence.wipeout_database() persistence.init() model_manager.init() main_func.main() t1 = threading.Thread(target=run) t1.start() while(not main_func.isRunning()) : sleep(1) yield main_func.stop() t1.join() # Perform cleanup on the data when the test function exits import json def test_api() : sleep(2) print("login") r = requests.post("http://127.0.0.1:8000/api/login",json={'username' : 'admin','password': 'aseqzdwxc'}) print(r.__dict__) assert r.status_code == 200 data = json.loads(r.content) token = data["token"] assert token is not None print("CREATE") r = requests.post("http://127.0.0.1:8000/api/inventory/item",json={"assign_date_epoch": 5000, "assigned": True, "brand": "Mikrotik", "name": "RB2011", "note": "saline 2 RT 2, chez ashvin", "owned": True, "serial_number": "12345678", "tags": "#router #mikrotik #saline", "type": "router", "wear_score": 100} ,auth=TokenAuth(token)) print(r.__dict__) assert r.status_code == 200 print("CREATE") r = requests.post("http://127.0.0.1:8000/api/inventory/item",json={"assign_date_epoch": 10000, "assigned": True, "brand": "Mikrotik", "name": "HEX S 1", "note": "saline 2 RT 3, chez ashvin", "owned": True, "serial_number": "12345678", "tags": "#router #mikrotik #saline", "type": "router", "wear_score": 100} ,auth=TokenAuth(token)) print(r.__dict__) assert r.status_code == 200 print("CREATE") r = requests.post("http://127.0.0.1:8000/api/inventory/item",json={"assign_date_epoch": 10000, "assigned": True, "brand": "Mikrotik", "name": "HEX S 1", "note": "saline 2 RT 3, chez ashvin", "owned": True, "serial_number": "12345678", "tags": "#router #mikrotik #saline", "type": "router", "wear_score": 100} ,auth=TokenAuth(token)) print(r.__dict__) assert r.status_code == 200 print("CREATE") r = requests.post("http://127.0.0.1:8000/api/inventory/item",json={"assign_date_epoch": 10000, "assigned": True, "brand": "Mikrotik", "name": "HEX S 1", "note": "saline 2 RT 3, chez ashvin", "owned": True, "serial_number": "12345678", "tags": "#router #mikrotik #saline", "type": "router", "wear_score": 100} ,auth=TokenAuth(token)) print(r.__dict__) assert r.status_code == 200 print("GET") r = requests.get("http://127.0.0.1:8000/api/inventory/items",auth=TokenAuth(token)) print(r.__dict__) assert r.status_code == 200 print("DELETE") r = requests.delete("http://127.0.0.1:8000/api/inventory/item/2",auth=TokenAuth(token)) print(r.__dict__) assert r.status_code == 200 print("CREATE SITE") r = requests.post("http://127.0.0.1:8000/api/inventory/site",json={"assign_date_epoch": 5000, "assigned": True, "brand": "Mikrotik", "name": "RB2011", "note": "saline 2 RT 2, chez ashvin", "owned": True, "serial_number": "12345678", "tags": "#router #mikrotik #saline", "type": "router", "wear_score": 100},auth=TokenAuth(token)) print(r.__dict__) assert r.status_code == 200