Files
aitbc/pyproject.toml

182 lines
4.6 KiB
TOML

[tool.pytest.ini_options]
# Test discovery
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
# Cache directory - prevent root level cache
cache_dir = "dev/cache/.pytest_cache"
# Test paths to run - include all test directories across the project
testpaths = [
"tests",
"apps/blockchain-node/tests",
"apps/coordinator-api/tests",
"apps/explorer-web/tests",
"apps/pool-hub/tests",
"apps/wallet-daemon/tests",
"apps/zk-circuits/test",
"cli/tests",
"contracts/test",
"packages/py/aitbc-crypto/tests",
"packages/py/aitbc-sdk/tests",
"packages/solidity/aitbc-token/test",
"scripts/test"
]
# Python path for imports
pythonpath = [
".",
"packages/py/aitbc-crypto/src",
"packages/py/aitbc-crypto/tests",
"packages/py/aitbc-sdk/src",
"packages/py/aitbc-sdk/tests",
"apps/coordinator-api/src",
"apps/coordinator-api/tests",
"apps/wallet-daemon/src",
"apps/wallet-daemon/tests",
"apps/blockchain-node/src",
"apps/blockchain-node/tests",
"apps/pool-hub/src",
"apps/pool-hub/tests",
"apps/explorer-web/src",
"apps/explorer-web/tests",
"cli",
"cli/tests"
]
# Additional options for local testing
addopts = [
"--verbose",
"--tb=short",
"--strict-markers",
"--disable-warnings",
"-ra"
]
# Custom markers
markers = [
"unit: Unit tests (fast, isolated)",
"integration: Integration tests (may require external services)",
"slow: Slow running tests",
"cli: CLI command tests",
"api: API endpoint tests",
"blockchain: Blockchain-related tests",
"crypto: Cryptography tests",
"contracts: Smart contract tests",
"e2e: End-to-end tests (full system)",
"performance: Performance tests (measure speed/memory)",
"security: Security tests (vulnerability scanning)",
"gpu: Tests requiring GPU resources",
"confidential: Tests for confidential transactions",
"multitenant: Multi-tenancy specific tests"
]
# Environment variables for tests
env = [
"AUDIT_LOG_DIR=/tmp/aitbc-audit",
"DATABASE_URL=sqlite:///./test_coordinator.db",
"TEST_MODE=true",
"SQLITE_DATABASE=sqlite:///./test_coordinator.db"
]
# Warnings
filterwarnings = [
"ignore::UserWarning",
"ignore::DeprecationWarning",
"ignore::PendingDeprecationWarning",
"ignore::pytest.PytestUnknownMarkWarning",
"ignore::pydantic.PydanticDeprecatedSince20",
"ignore::sqlalchemy.exc.SADeprecationWarning"
]
# Asyncio configuration
asyncio_default_fixture_loop_scope = "function"
# Import mode
import_mode = "append"
[project]
name = "aitbc-cli"
version = "0.1.0"
description = "AITBC Command Line Interface Tools"
authors = [
{name = "AITBC Team", email = "team@aitbc.net"}
]
readme = "cli/README.md"
license = "MIT"
requires-python = ">=3.13"
dependencies = [
"click==8.3.1",
"httpx==0.28.1",
"pydantic==2.12.5",
"pyyaml==6.0.3",
"rich==13.7.0",
"keyring==25.7.0",
"cryptography==46.0.5",
"click-completion==0.5.2",
"tabulate==0.9.0",
"colorama==0.4.6",
"python-dotenv==1.0.0",
"asyncpg==0.31.0",
# Dependencies for service module imports (coordinator-api services)
"numpy>=1.26.0",
"pandas>=2.0.0",
"aiohttp>=3.9.0",
"fastapi>=0.111.0",
"uvicorn[standard]>=0.30.0"
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Operating System :: OS Independent",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: System :: Distributed Computing",
]
[project.optional-dependencies]
dev = [
"pytest==9.0.2",
"pytest-asyncio==0.21.1",
"pytest-cov==7.0.0",
"pytest-mock==3.15.1",
"black==24.3.0",
"isort==8.0.1",
"ruff==0.15.5",
"mypy>=1.19.1,<2.0.0",
"bandit==1.7.5",
"types-requests==2.31.0",
"types-setuptools==69.0.0",
"types-PyYAML==6.0.12",
"sqlalchemy[mypy]==2.0.25"
]
[project.scripts]
aitbc = "aitbc_cli.main:cli"
[project.urls]
Homepage = "https://aitbc.net"
Repository = "https://github.com/aitbc/aitbc"
Documentation = "https://docs.aitbc.net"
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["cli", "apps/coordinator-api"]
include = ["aitbc_cli*", "aitbc*"]
[tool.setuptools.package-dir]
"aitbc_cli" = "cli/aitbc_cli"
"aitbc" = "apps/coordinator-api/aitbc"
[dependency-groups]
dev = [
"mypy (>=1.19.1,<2.0.0)"
]