[tool:pytest] testpaths = backend/app/tests python_files = test_*.py python_classes = Test* python_functions = test_* addopts = --verbose --strict-markers --tb=short --cov=backend/app --cov-report=term-missing --cov-report=html --cov-report=xml markers = slow: marks tests as slow (deselect with '-m "not slow"') integration: marks tests as integration tests security: marks tests as security-related [coverage:run] source = backend/app omit = */tests/* */venv/* */__pycache__/* */migrations/* [coverage:report] precision = 2 show_missing = True skip_covered = False [coverage:html] directory = htmlcov [flake8] max-line-length = 100 exclude = .git, __pycache__, .venv, venv, build, dist, *.egg-info, migrations extend-ignore = E203, W503, E501 per-file-ignores = __init__.py:F401 max-complexity = 10 [mypy] python_version = 3.10 warn_return_any = True warn_unused_configs = True disallow_untyped_defs = False disallow_incomplete_defs = False check_untyped_defs = True disallow_untyped_calls = False disallow_any_generics = False ignore_missing_imports = True no_implicit_optional = True warn_redundant_casts = True warn_unused_ignores = True warn_no_return = True strict_optional = True [isort] profile = black line_length = 100 multi_line_output = 3 include_trailing_comma = True force_grid_wrap = 0 use_parentheses = True ensure_newline_before_comments = True skip = venv,.venv,migrations [pylint] max-line-length = 100 disable = C0111, # missing-docstring C0103, # invalid-name R0903, # too-few-public-methods R0913, # too-many-arguments W0212, # protected-access good-names = i,j,k,ex,_,id,db [bandit] exclude_dirs = /tests/,/venv/,.venv/ skips = B101,B601