Initial Commit
slip slop
This commit is contained in:
commit
064e672ab7
61 changed files with 3504 additions and 0 deletions
53
tests/conftest.py
Normal file
53
tests/conftest.py
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
"""
|
||||
Shared pytest fixtures.
|
||||
Tests run against SQLite in-memory — no Docker required.
|
||||
"""
|
||||
import os
|
||||
import pytest
|
||||
|
||||
os.environ.setdefault("DATABASE_URL", "sqlite:///:memory:")
|
||||
os.environ.setdefault("API_KEY", "test-key")
|
||||
|
||||
from app import create_app
|
||||
from app.extensions import db as _db
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def app():
|
||||
application = create_app()
|
||||
application.config.update(
|
||||
TESTING=True,
|
||||
SQLALCHEMY_DATABASE_URI="sqlite:///:memory:",
|
||||
)
|
||||
with application.app_context():
|
||||
_db.create_all()
|
||||
# Seed instruments
|
||||
from app.models import Instrument
|
||||
for name in ("banjo", "fiddle"):
|
||||
if not _db.session.query(Instrument).filter_by(name=name).first():
|
||||
_db.session.add(Instrument(name=name))
|
||||
_db.session.commit()
|
||||
yield application
|
||||
_db.drop_all()
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def client(app):
|
||||
return app.test_client()
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def clean_db(app):
|
||||
with app.app_context():
|
||||
yield
|
||||
_db.session.rollback()
|
||||
from app.models import (TuneByInstrumentNote, TuneByInstrument,
|
||||
Reference, TuneNote, Tune, Source, Musician, Tuning)
|
||||
for model in (TuneByInstrumentNote, Reference, TuneNote,
|
||||
TuneByInstrument, Tune, Source, Musician, Tuning):
|
||||
_db.session.query(model).delete()
|
||||
_db.session.commit()
|
||||
|
||||
|
||||
AUTH = {"X-API-Key": "test-key"}
|
||||
BAD_AUTH = {"X-API-Key": "wrong-key"}
|
||||
Loading…
Add table
Add a link
Reference in a new issue