mirror of
https://github.com/neondatabase/neon.git
synced 2025-12-22 21:59:59 +00:00
This PR adds a plugin that automatically reruns (up to 3 times) flaky tests. Internally, it uses data from `TEST_RESULT_CONNSTR` database and `pytest-rerunfailures` plugin. As the first approximation we consider the test flaky if it has failed on the main branch in the last 10 days. Flaky tests are fetched by `scripts/flaky_tests.py` script (it's possible to use it in a standalone mode to learn which tests are flaky), stored to a JSON file, and then the file is passed to the pytest plugin.
88 lines
1.9 KiB
TOML
88 lines
1.9 KiB
TOML
[tool.poetry]
|
|
name = "neon"
|
|
version = "0.1.0"
|
|
description = ""
|
|
authors = []
|
|
|
|
[tool.poetry.dependencies]
|
|
python = "^3.9"
|
|
pytest = "^6.2.5"
|
|
psycopg2-binary = "^2.9.1"
|
|
typing-extensions = "^4.1.0"
|
|
PyJWT = {version = "^2.1.0", extras = ["crypto"]}
|
|
requests = "^2.26.0"
|
|
pytest-xdist = "^3.0.2"
|
|
asyncpg = "^0.27.0"
|
|
aiopg = "^1.3.1"
|
|
Jinja2 = "^3.0.2"
|
|
types-requests = "^2.28.5"
|
|
types-psycopg2 = "^2.9.18"
|
|
boto3 = "^1.26.16"
|
|
boto3-stubs = {extras = ["s3"], version = "^1.26.16"}
|
|
moto = {extras = ["server"], version = "^4.1.2"}
|
|
backoff = "^1.11.1"
|
|
pytest-lazy-fixture = "^0.6.3"
|
|
prometheus-client = "^0.14.1"
|
|
pytest-timeout = "^2.1.0"
|
|
Werkzeug = "^2.2.3"
|
|
pytest-order = "^1.0.1"
|
|
allure-pytest = "^2.13.1"
|
|
pytest-asyncio = "^0.19.0"
|
|
toml = "^0.10.2"
|
|
psutil = "^5.9.4"
|
|
types-psutil = "^5.9.5.4"
|
|
types-toml = "^0.10.8"
|
|
pytest-httpserver = "^1.0.6"
|
|
aiohttp = "3.7.4"
|
|
pytest-rerunfailures = "^11.1.2"
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
black = "^23.1.0"
|
|
mypy = "==1.1.1"
|
|
ruff = "^0.0.255"
|
|
|
|
[build-system]
|
|
requires = ["poetry-core>=1.0.0"]
|
|
build-backend = "poetry.core.masonry.api"
|
|
|
|
[tool.black]
|
|
line-length = 100
|
|
extend-exclude = '''
|
|
/(
|
|
vendor
|
|
)/
|
|
'''
|
|
|
|
[tool.mypy]
|
|
exclude = "^vendor/"
|
|
check_untyped_defs = true
|
|
# Help mypy find imports when running against list of individual files.
|
|
# Without this line it would behave differently when executed on the entire project.
|
|
mypy_path = "$MYPY_CONFIG_FILE_DIR:$MYPY_CONFIG_FILE_DIR/test_runner"
|
|
|
|
disallow_incomplete_defs = false
|
|
disallow_untyped_calls = false
|
|
disallow_untyped_decorators = false
|
|
disallow_untyped_defs = false
|
|
strict = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = [
|
|
"asyncpg.*",
|
|
"pg8000.*",
|
|
"allure.*",
|
|
"allure_commons.*",
|
|
"allure_pytest.*",
|
|
]
|
|
ignore_missing_imports = true
|
|
|
|
[tool.ruff]
|
|
extend-exclude = ["vendor/"]
|
|
ignore = ["E501"]
|
|
select = [
|
|
"E", # pycodestyle
|
|
"F", # Pyflakes
|
|
"I", # isort
|
|
"W", # pycodestyle
|
|
]
|