[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"