Framework Mode - Factory fixtures
Folder Structure
tests/
├── factories/
│ ├── __init__.py
│ ├── user_factory.py
│ └── product_factory.py
├── test_users.py
├── test_products.py
├── conftest.py
└── utils/
├── __init__.py
└── helpers.py
Jump into concepts and practice - no test required
tests/
├── factories/
│ ├── __init__.py
│ ├── user_factory.py
│ └── product_factory.py
├── test_users.py
├── test_products.py
├── conftest.py
└── utils/
├── __init__.py
└── helpers.py
tests/factories/.conftest.py defines reusable pytest fixtures that use factories to provide test data to tests.test_users.py and test_products.py use fixtures to run tests with prepared data.tests/utils/..env files to store sensitive data like database URLs or API keys.conftest.py to register fixtures globally for all tests.--junitxml=report.xml to generate XML reports for CI tools.pytest-html for readable HTML reports.Where in this folder structure would you add a new factory fixture for creating Order objects?
@pytest.fixture
def number_factory():
def create_number(x):
return x * 2
return create_number
def test_double(number_factory):
result = number_factory(5)
assert result == 10
print(result)@pytest.fixture
def item_factory():
def create_item(name, price):
return {'name': name, 'price': price}
return create_item
def test_item(item_factory):
item = item_factory('Book')
assert item['price'] == 10