# Tox (https://tox.readthedocs.io/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.

[tox]
envlist = pre-commit,py{310,311,312,313}

[testenv]
usedevelop = True
changedir = tests
deps =
    playwright>=1.55.0
    patchright>=1.55.0
    camoufox
    -r{toxinidir}/tests/requirements.txt
extras = ai,shell
commands =
    # Run browser tests without parallelization (avoid browser conflicts)
    pytest --cov=scrapling --cov-report=xml -k "DynamicFetcher or StealthyFetcher" --verbose
    # Run asyncio tests without parallelization (avoid GitHub CI nested loop issues)
    pytest --cov=scrapling --cov-report=xml -m "asyncio" -k "not (DynamicFetcher or StealthyFetcher)" --verbose --cov-append
    # Run everything else with parallelization (for speed)
    pytest --cov=scrapling --cov-report=xml -m "not asyncio" -k "not (DynamicFetcher or StealthyFetcher)" -n auto --cov-append

[testenv:pre-commit]
basepython = python3
deps = pre-commit
commands = pre-commit run --all-files --show-diff-on-failure
skip_install = true