[pytest] # Pytest configuration for the MeManga test suite. # # Run everything: # pytest # # Run a single area: # pytest tests/unit/test_state.py # pytest tests/unit/gui/ # pytest tests/integration/ -v # # Skip the slow integration suite during dev: # pytest -m "not integration" testpaths = tests python_files = test_*.py python_classes = Test* python_functions = test_* # Markers used by individual tests to opt out of the default run. markers = integration: end-to-end flows that touch multiple components slow: takes more than 1 second network: requires real network access (skipped by default) gui: requires a QApplication (offscreen Qt platform OK) live: hits real scraper websites to detect dead/changed sources. Opt in with: pytest -m live tests/scrapers/live/ health: synonym for `live` — scraper website health check # Quieter output + show slowest 10 tests after a run. # `live`/`health` are network-bound and skipped by default — opt in # with `-m live` (see above). addopts = --tb=short --strict-markers -p no:cacheprovider --durations=10 -m "not live and not health" # QtPy / PySide6 in offscreen mode for headless test runners. env = QT_QPA_PLATFORM=offscreen QT_LOGGING_RULES=qt.qpa.*=false