[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.1.7", "httpx==0.26.0", "pydantic==2.5.3", "pyyaml==6.0.3", "rich==13.7.0", "keyring==24.3.0", "cryptography==41.0.8", "click-completion==0.5.2", "tabulate==0.9.0", "colorama==0.4.6", "python-dotenv==1.0.0", "asyncpg==0.31.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==7.4.4", "pytest-asyncio==0.21.1", "pytest-cov==4.1.0", "pytest-mock==3.12.0", "black==24.3.0", "isort==5.13.2", "ruff==0.1.15", "mypy==1.8.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"] include = ["aitbc_cli*"] [tool.setuptools.package-dir] "aitbc_cli" = "cli/aitbc_cli" [dependency-groups] dev = [ "mypy (>=1.19.1,<2.0.0)" ]