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.

42 lines
1.0 KiB

import pytest
import sys
from pathlib import Path
sys.path.append(str(Path(__file__).absolute().parent.parent))
# TestClient provided by FastAPI
from fastapi.testclient import TestClient
# PyMongo for the database
import pymongo
# Contains all constants
import app.config as config
# Import the app
from app.main import app
# Database setup
client = pymongo.MongoClient(config.MONGODB_URL, username=config.MONGODB_USERNAME, password=config.MONGODB_PASSWORD)
# Drop test database if exists
if config.MONGODB_DATABASE in client.list_database_names():
try:
client.drop_database(config.MONGODB_DATABASE)
except Exception as e:
print(f"Error with database : {e}")
# Create empty database
db = client[config.MONGODB_DATABASE]
# TestClient with the app imported from main
client = TestClient(app)
@pytest.fixture
def token():
login_response = client.post("/login", data={"username": "testuser", "password": "testpassword"})
token = login_response.json()["access_token"]
return token