1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48[pytest]
testpaths = tests
pythonpath = .
python_files = test_*.py
python_classes = Test*
python_functions = test_*
addopts = -v --tb=short
asyncio_mode = auto
timeout = 5
timeout_func_only = true
# Register conftest_fixtures as a pytest plugin directory to avoid import warnings
norecursedirs = .git .venv __pycache__ *.egg-info
# Enable assert rewriting for conftest_fixtures modules
consider_namespace_packages = true
# Filter out known third-party warnings
filterwarnings =
ignore::DeprecationWarning:spacy.*
ignore::DeprecationWarning:weasel.*
# Testcontainers internal deprecation warnings (library will fix)
ignore::DeprecationWarning:testcontainers.*
# Boto3 datetime deprecation (AWS will fix in future release)
ignore::DeprecationWarning:botocore.*
# Pydantic V2 migration warnings (from pydantic internals)
ignore:Support for class-based `config` is deprecated:DeprecationWarning:pydantic.*
# Starlette TestClient timeout deprecation
ignore:You should not use the 'timeout' argument:DeprecationWarning:starlette.*
# Pytest config warnings (minor, can ignore)
ignore::pytest.PytestConfigWarning
error::RuntimeWarning
markers =
asyncio: Async tests using pytest-asyncio
unit: Unit tests (fast, no external dependencies)
performance: Performance and load tests (run via workflow_dispatch)
integration: Integration tests (uses testcontainers for real Redis/S3)
slow: Slow tests (>5 seconds, may start containers)
redis: Tests that require Redis
s3: Tests that require S3/Floci
workers: Tests for background workers
api: Tests for API endpoints
services: Tests for shared services
edge_case: Edge case and boundary condition tests
requires_redis: Tests requiring Redis connection
requires_s3: Tests requiring S3/Floci connection
timeout: Tests with custom timeout values
xdist_group: Group tests for controlled distribution in pytest-xdist
verapdf: Tests that require veraPDF for PDF/UA validation