Delete testing user afer unit test session

This commit is contained in:
coolneng 2021-01-06 21:46:29 +01:00
parent 6c7a561fef
commit 71517bb8b2
Signed by: coolneng
GPG Key ID: 9893DA236405AF57
4 changed files with 23 additions and 19 deletions

View File

@ -2,6 +2,7 @@ from datetime import datetime
from fastapi import HTTPException from fastapi import HTTPException
from passlib.context import CryptContext from passlib.context import CryptContext
from sqlalchemy.inspection import inspect
from app.schemas import * from app.schemas import *
from constants import SHA1_SALT from constants import SHA1_SALT
@ -31,11 +32,12 @@ def insert_data(model, data, db):
return item return item
# FIXME db.id has to be replaced with the table's UID
def delete_data(model, data, db): def delete_data(model, data, db):
item = instantiate_model(model=model, data=data) table = eval(model)
result = db.query(item).filter(item.email == data.email).delete() primary_key_tuple = inspect(table).primary_key
return result primary_key = primary_key_tuple[0]
db.query(table).filter(primary_key == data).delete()
db.commit()
def fetch_user_by_key(data, db): def fetch_user_by_key(data, db):

14
tests/conftest.py Normal file
View File

@ -0,0 +1,14 @@
from pytest import fixture
from database.crud import delete_data
from tests import TestingSessionLocal
@fixture(scope="session")
def get_test_db():
try:
db = TestingSessionLocal()
yield db
finally:
delete_data(model="Users", data=2222, db=db)
db.close()

View File

@ -1,18 +1,6 @@
from datetime import datetime from datetime import datetime
from pytest import fixture
from database.models import * from database.models import *
from tests import TestingSessionLocal
@fixture
def get_test_db():
try:
db = TestingSessionLocal()
yield db
finally:
db.close()
def test_users(get_test_db): def test_users(get_test_db):

View File

@ -1,10 +1,10 @@
from secrets import token_hex from secrets import token_hex
from pytest import main from pytest import main
from app.schemas import * from app.schemas import *
from database.models import * from database.models import *
from tests import client from tests import client
from tests.queries_test import get_test_db
def test_registration(): def test_registration():
@ -55,8 +55,8 @@ def test_forgot_password():
assert response.status_code == 200 assert response.status_code == 200
def test_reset_password(): def test_reset_password(get_test_db):
main(["-k" "test_otp_verification"]) test_otp_verification(get_test_db)
data = {"email": "oyvey@hotmail.com", "password": "vivashviva"} data = {"email": "oyvey@hotmail.com", "password": "vivashviva"}
response = client.post("/reset_password", json=data) response = client.post("/reset_password", json=data)
assert response.status_code == 200 assert response.status_code == 200