You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
1.7 KiB

5 years ago
import warnings
import schemas
from database import SessionLocal
with warnings.catch_warnings():
warnings.filterwarnings("ignore",category=DeprecationWarning)
from main import app
from fastapi.testclient import TestClient
client = TestClient(app)
sess = SessionLocal()
username = "admin"
password = "admin"
token_headers = {}
def test_logout_without_auth():
response = client.get("/api/logout")
assert response.status_code == 401
#assert response.json() == dict(message="ok")
def test_login_missing_username():
response = client.post("/api/login", json=dict(
password=password
))
assert response.status_code == 422
def test_login_missing_password():
response = client.post("/api/login", json=dict(
password=password
))
assert response.status_code == 422
def test_login():
response = client.post("/api/login", json=dict(
username=username,
password=password
)
)
assert response.status_code == 200 # Must have status code 200
assert "user" in response.json()
assert "token_type" in response.json()
assert "access_token" in response.json()
token_headers["Authorization"] = response.json()["token_type"] + " " + response.json()["access_token"]
return response
def test_logout_with_auth():
response = client.get("/api/logout", headers=token_headers)
assert response.status_code == 200
def test_user_edit():
user = schemas.UserInDB(
username="test",
password="test",
full_name="test",
email="test",
role="test"
)
user.sync(sess=sess)
db_user = user.from_db(sess)
#print(db_user.username)