126 lines
3.0 KiB
TOML
126 lines
3.0 KiB
TOML
[project]
|
|
name = "bifrost-integration-tests"
|
|
version = "0.1.0"
|
|
description = "Production-ready end-to-end test suite for testing AI integrations through Bifrost proxy"
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
|
|
dependencies = [
|
|
# Core testing framework
|
|
"pytest>=7.0.0",
|
|
"pytest-asyncio>=0.21.0",
|
|
# Environment and configuration
|
|
"python-dotenv>=1.0.0",
|
|
"PyYAML>=6.0",
|
|
# Image processing
|
|
"Pillow>=9.0.0",
|
|
# HTTP requests for debugging
|
|
"requests>=2.28.0",
|
|
# Type hints
|
|
"typing-extensions>=4.0.0",
|
|
# Test reporting
|
|
"pytest-html>=3.1.0",
|
|
"pytest-cov>=4.0.0",
|
|
# AI/ML SDK dependencies
|
|
"openai>=1.30.0",
|
|
"anthropic>=0.25.0",
|
|
"litellm==1.80.5",
|
|
"langchain-openai==0.1.0",
|
|
"langchain-core==0.3.81",
|
|
"langchain-anthropic==0.1.0",
|
|
"langchain-google-genai==4.1.1",
|
|
"langchain-mistralai==0.1.0",
|
|
"langgraph>=0.1.0",
|
|
"mistralai>=0.4.0",
|
|
"google-genai>=1.50.0",
|
|
"pydantic-ai>=0.1.0",
|
|
"boto3>=1.34.0",
|
|
# Testing utilities
|
|
"websocket-client>=1.6.0",
|
|
"httpx>=0.25.0",
|
|
"pytest-timeout>=2.1.0",
|
|
"pytest-mock>=3.11.0",
|
|
"pytest-rerunfailures>=11.0",
|
|
"langchain-google-vertexai>=3.1.0",
|
|
"langchain-tests>=1.0.2",
|
|
"langchain>=1.1.0",
|
|
"langchain-community>=0.4.1",
|
|
"langchain-aws>=1.1.0",
|
|
"pytest-xdist>=3.8.0",
|
|
"pyasn1>=0.6.2",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"black>=23.0.0", # Code formatting
|
|
"flake8>=6.0.0", # Linting
|
|
"mypy>=1.5.0", # Type checking
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
# Test discovery
|
|
testpaths = ["."]
|
|
python_files = "test_*.py"
|
|
python_classes = "Test*"
|
|
python_functions = "test_*"
|
|
|
|
# Output formatting
|
|
addopts = [
|
|
"-v",
|
|
"-s", # Show print statements (no output capture)
|
|
"--tb=short",
|
|
"--strict-markers",
|
|
"--disable-warnings",
|
|
"--color=yes",
|
|
]
|
|
|
|
# Logging configuration
|
|
log_cli = true
|
|
log_cli_level = "ERROR"
|
|
log_cli_format = "%(asctime)s [%(levelname)8s] %(message)s"
|
|
log_cli_date_format = "%Y-%m-%d %H:%M:%S"
|
|
|
|
# Timeout settings (3 minutes per test)
|
|
timeout = 300
|
|
|
|
# Markers for test categorization
|
|
markers = [
|
|
"integration: marks tests as integration tests",
|
|
"slow: marks tests as slow running",
|
|
"e2e: marks tests as end-to-end tests",
|
|
"tool_calling: marks tests as tool calling tests",
|
|
"flaky: marks tests as flaky with automatic retries (reruns=3, reruns_delay=2)",
|
|
]
|
|
|
|
# Minimum version
|
|
minversion = "7.0"
|
|
|
|
[tool.black]
|
|
line-length = 100
|
|
target-version = ['py38', 'py39', 'py310', 'py311']
|
|
include = '\.pyi?$'
|
|
|
|
[tool.mypy]
|
|
python_version = "3.11"
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
disallow_untyped_defs = false
|
|
ignore_missing_imports = true
|
|
|
|
[tool.coverage.run]
|
|
source = ["tests"]
|
|
omit = ["*/tests/*", "*/venv/*", "*/.venv/*"]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"raise AssertionError",
|
|
"raise NotImplementedError",
|
|
"if __name__ == .__main__.:",
|
|
"if TYPE_CHECKING:",
|
|
]
|
|
|
|
|
|
[tool.uv]
|
|
exclude-newer = "2026-04-08" |