Files
llbbl 00d37e0e58 feat: Add comprehensive Python testing infrastructure with Poetry
- Set up Poetry as package manager with pyproject.toml configuration
- Add pytest, pytest-cov, and pytest-mock as development dependencies
- Configure pytest with coverage reporting (80% threshold)
- Create tests directory structure with unit/integration subdirectories
- Add shared pytest fixtures in conftest.py for common test scenarios
- Update .gitignore with testing artifacts and Claude settings
- Add validation tests to verify infrastructure setup
2025-06-23 17:46:48 -05:00

68 lines
1.4 KiB
TOML

[tool.poetry]
name = "hosts-blocklist"
version = "0.1.0"
description = "A tool for managing host blocklists"
authors = ["Your Name <you@example.com>"]
readme = "README.md"
packages = [{include = "lists.py"}]
[tool.poetry.dependencies]
python = "^3.8"
[tool.poetry.group.dev.dependencies]
pytest = "^8.0.0"
pytest-cov = "^5.0.0"
pytest-mock = "^3.14.0"
[tool.pytest.ini_options]
minversion = "8.0"
addopts = [
"-ra",
"--strict-markers",
"--strict-config",
"--cov=tests",
"--cov-branch",
"--cov-report=term-missing:skip-covered",
"--cov-report=html:htmlcov",
"--cov-report=xml:coverage.xml",
"--cov-fail-under=80",
]
testpaths = ["tests"]
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
markers = [
"unit: marks tests as unit tests (fast, isolated)",
"integration: marks tests as integration tests (may use external resources)",
"slow: marks tests as slow (longer than 1 second)",
]
[tool.coverage.run]
source = ["tests"]
omit = [
"*/tests/conftest.py",
"*/__pycache__/*",
"*/venv/*",
"*/.venv/*",
"*/dist/*",
"*/build/*",
"*.egg-info/*",
"setup.py",
]
[tool.coverage.report]
precision = 2
show_missing = true
skip_covered = true
fail_under = 80
[tool.coverage.html]
directory = "htmlcov"
[tool.coverage.xml]
output = "coverage.xml"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"