Framework Mode - Database fixture patterns
Folder Structure
tests/ ├── test_users.py ├── test_orders.py ├── conftest.py fixtures/ ├── db_fixtures.py utils/ ├── db_helpers.py config/ ├── config.yaml
Jump into concepts and practice - no test required
tests/ ├── test_users.py ├── test_orders.py ├── conftest.py fixtures/ ├── db_fixtures.py utils/ ├── db_helpers.py config/ ├── config.yaml
db_fixtures.py).tests/ use fixtures to prepare database state before running tests.db_helpers.py).config.yaml).config.yaml file to store database connection strings for different environments (dev, test, prod).conftest.py to provide fixtures with environment-specific settings.--junitxml=report.xml for CI systems.pytest-html for readable HTML reports.function scope for tests needing clean state, session scope for expensive setup.Where would you add a new fixture that sets up a test user in the database?
yield?import pytest
@pytest.fixture
def sample_db():
data = {'count': 0}
yield data
data['count'] += 1
def test_increment(sample_db):
print(sample_db['count'])
sample_db['count'] += 5
print(sample_db['count'])@pytest.fixture
def test_db():
conn = connect_db()
conn.execute('CREATE TABLE users')
return conn
conn.execute('DROP TABLE users')
conn.close()