[project]
name = "lambda-moneyhub-integration-tests"
version = "0.1.0"
description = "Integration tests for all the lambdas in lambda-moneyhub"
requires-python = ">=3.14"
readme = "tests/README.md"

dependencies = [
  "pytest~=9.0",
  "pytest-html~=4.2",
  "pytest-rerunfailures~=16.1",
  "pytest-xdist~=3.6",
  "boto3~=1.42",
  "botocore~=1.42",
  "sqlalchemy~=2.0.46",
  "PyMySQL~=1.1",
  "aws_testing_utils==5.2.0", # Private package for AWS SDK testing utilities
  "deepdiff~=8.0",
]

[project.optional-dependencies]
dev = [
  "ruff~=0.15",
  "mypy~=1.19",
  "yamllint~=1.38",
]


# Tool configurations
[tool.ruff]
line-length = 88
extend-exclude = [
    ".git",
    "__pycache__",
    "build",
    "dist",
    "env",
]

[tool.ruff.format]
quote-style = "single"

[tool.ruff.lint]
select = ["A", "I", "Q"]
ignore = ["D413"]

[tool.ruff.lint.flake8-quotes]
inline-quotes = "single"

[tool.ruff.lint.isort]
force-sort-within-sections = true
order-by-type = false
force-single-line = true

#Mypy: Type checking configuration
[tool.mypy]
python_version = "3.14"
strict = true
show_error_codes = true

[[tool.mypy.overrides]]
module = [
    "boto3.*",
    "aws_testing_utils.*",
    "botocore.*",
]
ignore_missing_imports = true

# Pytest configuration
[tool.pytest.ini_options]
log_cli = true
log_cli_level = "INFO"
log_file = "pytest.log"
log_file_level = "INFO"
addopts = "--html=report/report.html --self-contained-html"
