diff --git a/sql_app/tests/test_user.py b/sql_app/tests/test_user.py index 073aa01..311ad81 100644 --- a/sql_app/tests/test_user.py +++ b/sql_app/tests/test_user.py @@ -3,6 +3,7 @@ from sys import path import random import string from fastapi.testclient import TestClient +from requests import Response from ..main import app from ..schemas import UserCreate @@ -24,6 +25,19 @@ def gen_new_user_dict() -> UserCreate: password=noune) return new_user +def get_user_json(user: UserCreate) -> dict: + if type(user) != UserCreate: assert False + new_user_json = { + 'email' : user.email, + 'username': user.username, + 'password': user.password + } + return new_user_json + +def post_request(response: Response): + print(response.text) + print(response.reason) + test_user : UserCreate = gen_new_user_dict() common_headres = { @@ -33,27 +47,46 @@ common_headres = { def test_create_user(): - new_user_json = { - "email" : test_user.email, - "username": test_user.username, - "password": test_user.password - } response = client.request("POST", "/users/reg", - json=new_user_json, + json=get_user_json(test_user), headers=common_headres) assert response.status_code == 200 + post_request(response) def test_create_user_duplicate_fields(): # Assumed that this test runs after test_create_user() - new_user_json = { - "email" : test_user.email, - "username": test_user.username, - "password": test_user.password - } + response = client.request("POST", "/users/reg", - json=new_user_json, + json=get_user_json(test_user), headers=common_headres) assert response.status_code == 400 + post_request(response) + +def test_obtain_user_token(): + headers = { + 'accept': 'application/json', + 'Content-type': 'application/x-www-form-urlencoded' + } + data = f"grant_type=&username={test_user.username}&password={test_user.password}&scope=&client_id=&client_secret=" + response = client.request("POST", "/users/tkn", headers=headers, data=data) + # if response.status_code == 200 and 'application/json' in response.headers.get('Content-Type',''): + # print(response.json()) + + assert response.status_code == 200 + post_request(response) + + +def test_reject_false_creds(): + headers = { + 'accept': 'application/json', + 'Content-type': 'application/x-www-form-urlencoded' + } + data = f"grant_type=&username={test_user.username}flaty&password=badpass{test_user.password}&scope=&client_id=&client_secret=" + response = client.request("POST", "/users/tkn", headers=headers, data=data) + + assert response.status_code == 401 + post_request(response) + def test_create_iot_entity(): pass