|
@@ -3,6 +3,7 @@ import os
|
|
|
from time import sleep
|
|
|
|
|
|
|
|
|
+
|
|
|
os.chdir(os.path.dirname(__file__))
|
|
|
import sys
|
|
|
sys.path.append("..")
|
|
@@ -17,7 +18,18 @@ 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():
|
|
@@ -38,53 +50,57 @@ def fixture2():
|
|
|
t1.join()
|
|
|
|
|
|
# Perform cleanup on the data when the test function exits
|
|
|
+import json
|
|
|
|
|
|
def test_api() :
|
|
|
|
|
|
sleep(2)
|
|
|
- s = requests.Session()
|
|
|
|
|
|
- print("CREATE")
|
|
|
- r = s.post("http://127.0.0.1:8000/api/login",json={'username' : 'admin','password': 'aseqzdwxc'})
|
|
|
- print(r.__dict__)
|
|
|
- assert r.status_code == 200
|
|
|
|
|
|
- print("CREATE")
|
|
|
- r = s.get("http://127.0.0.1:8000/tab")
|
|
|
+ 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 = s.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})
|
|
|
+ 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 = s.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})
|
|
|
+ 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 = s.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})
|
|
|
+ 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 = s.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})
|
|
|
+ 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 = s.get("http://127.0.0.1:8000/api/inventory/items")
|
|
|
+ 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 = s.delete("http://127.0.0.1:8000/api/inventory/item/2")
|
|
|
+ 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 = s.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})
|
|
|
+ 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
|