[tool.poetry]
name = "test_fixtures"
version = "2.1.1"
description = "Shared pytest fixtures for integration tests"
authors = ["The Orchard <webdev@theorchard.com>"]
readme = "README.md"
homepage = "https://github.com/theorchard/python-test-fixtures/"
packages = [{include = "test_fixtures"}]

[tool.poetry.dependencies]
python = ">=3.10"
boto3 = "^1.42"
botocore = "^1.42"
PyMySQL = {version = "^1.1", optional = true}
neo4j = {version = "^6.2", optional = true}
snowflake-connector-python = {version = "^4.4", optional = true}
cryptography = {version = ">=44.0", optional = true}
pytest-xdist = {version = "^3.6", optional = true}
pytest-html = {version = "^4.1", optional = true}

[tool.poetry.extras]
mysql = ["PyMySQL"]
neo4j = ["neo4j"]
snowflake = ["snowflake-connector-python", "cryptography"]
runner = ["pytest-xdist", "pytest-html"]

[tool.poetry.scripts]
run-integration-tests = "test_fixtures.runner:main"

[tool.poetry.plugins.pytest11]
test_fixtures = "test_fixtures.plugin"

[tool.poetry.group.dev.dependencies]
pytest = "^9.0"
pytest-xdist = "^3.6"
pytest-html = "^4.1"
ruff = "^0.15"
mypy = "^1.0"
boto3-stubs = {version = "^1.42", extras = ["secretsmanager"]}
PyMySQL = "^1.1"
neo4j = "^6.2"
snowflake-connector-python = "^4.4"
cryptography = ">=44.0"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.mypy]
python_version = "3.10"
strict = false
ignore_missing_imports = true
show_error_codes = true

[tool.ruff]
line-length = 88

[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]
combine-as-imports = true
force-sort-within-sections = true
order-by-type = false
