41 lines
884 B
Python
41 lines
884 B
Python
import os
|
|
import pytest
|
|
|
|
# Ensure tests always use the in-memory SQLite DB, even if CI sets DB_* secrets
|
|
for var in ("DB_USER", "DB_PASS", "DB_NAME"):
|
|
os.environ.pop(var, None)
|
|
|
|
from app import app
|
|
from models import db, Feature
|
|
|
|
|
|
@pytest.fixture
|
|
def client():
|
|
app.config["TESTING"] = True
|
|
# app was already initialised with SQLite because DB_USER is now unset
|
|
|
|
# Fresh DB per test
|
|
with app.app_context():
|
|
db.drop_all()
|
|
db.create_all()
|
|
|
|
with app.test_client() as client:
|
|
yield client
|
|
|
|
# Clean up after test
|
|
with app.app_context():
|
|
db.drop_all()
|
|
|
|
|
|
def test_index(client):
|
|
response = client.get("/")
|
|
assert response.status_code == 200
|
|
assert b"Professional Demo Site" in response.data
|
|
|
|
|
|
def test_seed_db(client):
|
|
with app.app_context():
|
|
Feature.seed_db()
|
|
assert Feature.query.count() == 3
|
|
|