34 lines
844 B
Python
34 lines
844 B
Python
import sys
|
|
import pytest
|
|
|
|
from project_name import create_app
|
|
from project_name.ext.commands import populate_db
|
|
from project_name.ext.database import db
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def app():
|
|
app = create_app(FORCE_ENV_FOR_DYNACONF="testing")
|
|
with app.app_context():
|
|
db.create_all(app=app)
|
|
yield app
|
|
db.drop_all(app=app)
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def products(app):
|
|
with app.app_context():
|
|
return populate_db()
|
|
|
|
|
|
# each test runs on cwd to its temp dir
|
|
@pytest.fixture(autouse=True)
|
|
def go_to_tmpdir(request):
|
|
# Get the fixture dynamically by its name.
|
|
tmpdir = request.getfixturevalue("tmpdir")
|
|
# ensure local test created packages can be imported
|
|
sys.path.insert(0, str(tmpdir))
|
|
# Chdir only for the duration of the test.
|
|
with tmpdir.as_cwd():
|
|
yield
|