Adding upstream version 1.1.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
f13b7abbd8
commit
77504588ab
196 changed files with 10121 additions and 3780 deletions
114
pyproject.toml
114
pyproject.toml
|
@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|||
|
||||
[project]
|
||||
name = "anta"
|
||||
version = "v1.0.0"
|
||||
version = "v1.1.0"
|
||||
readme = "docs/README.md"
|
||||
authors = [{ name = "Arista Networks ANTA maintainers", email = "anta-dev@arista.com" }]
|
||||
maintainers = [
|
||||
|
@ -20,7 +20,7 @@ description = "Arista Network Test Automation (ANTA) Framework"
|
|||
license = { file = "LICENSE" }
|
||||
dependencies = [
|
||||
"aiocache>=0.12.2",
|
||||
"asyncssh>=2.13.2",
|
||||
"asyncssh>=2.16",
|
||||
"cvprac>=1.3.1",
|
||||
"eval-type-backport>=0.1.3", # Support newer typing features in older Python versions (required until Python 3.9 support is removed)
|
||||
"Jinja2>=3.1.2",
|
||||
|
@ -68,10 +68,14 @@ dev = [
|
|||
"pytest-asyncio>=0.21.1",
|
||||
"pytest-cov>=4.1.0",
|
||||
"pytest-dependency",
|
||||
"pytest-codspeed>=2.2.0",
|
||||
"respx",
|
||||
"pytest-html>=3.2.0",
|
||||
"pytest-httpx>=0.30.0",
|
||||
"pytest-metadata>=3.0.0",
|
||||
"pytest>=7.4.0",
|
||||
"ruff>=0.3.7,<0.5.0",
|
||||
"respx>=0.21.1",
|
||||
"ruff>=0.5.4,<0.7.0",
|
||||
"tox>=4.10.0,<5.0.0",
|
||||
"types-PyYAML",
|
||||
"types-pyOpenSSL",
|
||||
|
@ -80,18 +84,20 @@ dev = [
|
|||
"yamllint>=1.32.0",
|
||||
]
|
||||
doc = [
|
||||
"fontawesome_markdown",
|
||||
"griffe",
|
||||
"mike==2.1.1",
|
||||
"mkdocs-autorefs>=0.4.1",
|
||||
"fontawesome_markdown>=0.2.6",
|
||||
"griffe >=1.2.0",
|
||||
"mike==2.1.3",
|
||||
"mkdocs>=1.6.1",
|
||||
"mkdocs-autorefs>=1.2.0",
|
||||
"mkdocs-bootswatch>=1.1",
|
||||
"mkdocs-git-revision-date-localized-plugin>=1.1.0",
|
||||
"mkdocs-git-revision-date-localized-plugin>=1.2.8",
|
||||
"mkdocs-git-revision-date-plugin>=0.3.2",
|
||||
"mkdocs-material-extensions>=1.0.3",
|
||||
"mkdocs-material>=8.3.9",
|
||||
"mkdocs>=1.3.1",
|
||||
"mkdocstrings[python]>=0.20.0",
|
||||
"mkdocs-glightbox>=0.4.0"
|
||||
"mkdocs-glightbox>=0.4.0",
|
||||
"mkdocs-material-extensions>=1.3.1",
|
||||
"mkdocs-material>=9.5.34",
|
||||
"mkdocstrings[python]>=0.26.0",
|
||||
"mkdocstrings-python>=1.11.0",
|
||||
"black>=24.10.0"
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
|
@ -113,7 +119,7 @@ namespaces = false
|
|||
# Version
|
||||
################################
|
||||
[tool.bumpver]
|
||||
current_version = "1.0.0"
|
||||
current_version = "1.1.0"
|
||||
version_pattern = "MAJOR.MINOR.PATCH"
|
||||
commit_message = "bump: Version {old_version} -> {new_version}"
|
||||
commit = true
|
||||
|
@ -166,20 +172,27 @@ addopts = "-ra -q -vv --cov --cov-report term:skip-covered --color yes"
|
|||
log_level = "WARNING"
|
||||
render_collapsed = true
|
||||
testpaths = ["tests"]
|
||||
asyncio_mode = "auto"
|
||||
asyncio_default_fixture_loop_scope = "function"
|
||||
norecursedirs = ["tests/benchmark"] # Do not run performance testing outside of Codspeed
|
||||
filterwarnings = [
|
||||
"error",
|
||||
# cvprac is raising the next warning
|
||||
"default:pkg_resources is deprecated:DeprecationWarning",
|
||||
# Need to investigate the following - only occuring when running the full pytest suite
|
||||
"ignore:Exception ignored in.*:pytest.PytestUnraisableExceptionWarning",
|
||||
# Ignore cryptography >=43.0.0 warnings until asyncssh issue is fixed
|
||||
"ignore:ARC4:cryptography.utils.CryptographyDeprecationWarning",
|
||||
"ignore:TripleDES:cryptography.utils.CryptographyDeprecationWarning",
|
||||
|
||||
]
|
||||
|
||||
|
||||
[tool.coverage.run]
|
||||
branch = true
|
||||
source = ["anta"]
|
||||
# https://community.sonarsource.com/t/python-coverage-analysis-warning/62629/7
|
||||
include = ["anta/*", "asynceapi/*"]
|
||||
parallel = true
|
||||
relative_files = true
|
||||
|
||||
[tool.coverage.report]
|
||||
# Regexes for lines to exclude from consideration
|
||||
|
@ -320,11 +333,16 @@ target-version = "py39"
|
|||
|
||||
[tool.ruff.lint]
|
||||
# select all cause we like being suffering
|
||||
select = ["ALL"]
|
||||
select = ["ALL",
|
||||
# By enabling a convention for docstrings, ruff automatically ignore some rules that need to be
|
||||
# added back if we want them.
|
||||
# https://docs.astral.sh/ruff/faq/#does-ruff-support-numpy-or-google-style-docstrings
|
||||
# TODO: Augment the numpy convention rules to make sure we add all the params
|
||||
# Uncomment below D417
|
||||
"D415",
|
||||
"D417",
|
||||
]
|
||||
ignore = [
|
||||
"ANN101", # Missing type annotation for `self` in method - we know what self is..
|
||||
"D203", # Ignoring conflicting D* warnings - one-blank-line-before-class
|
||||
"D213", # Ignoring conflicting D* warnings - multi-line-summary-second-line
|
||||
"COM812", # Ignoring conflicting rules that may cause conflicts when used with the formatter
|
||||
"ISC001", # Ignoring conflicting rules that may cause conflicts when used with the formatter
|
||||
"TD002", # We don't have require authors in TODO
|
||||
|
@ -369,9 +387,9 @@ runtime-evaluated-base-classes = ["pydantic.BaseModel", "anta.models.AntaTest.In
|
|||
"SLF001", # Lots of private member accessed for test purposes
|
||||
]
|
||||
"tests/units/*" = [
|
||||
"BLE001", # Do not catch blind exception: `Exception` - already disabling this in pylint
|
||||
"ARG002", # Sometimes we need to declare unused arguments when a parameter is not used but declared in @pytest.mark.parametrize
|
||||
"FBT001", # Boolean-typed positional argument in function definition
|
||||
"PLR0913", # Too many arguments to function call (8 > 5)
|
||||
"PLR0913", # Too many arguments to function call
|
||||
"PLR2004", # Magic value used in comparison, consider replacing {value} with a constant variable
|
||||
"S105", # Passwords are indeed hardcoded in tests
|
||||
"S106", # Passwords are indeed hardcoded in tests
|
||||
|
@ -380,8 +398,10 @@ runtime-evaluated-base-classes = ["pydantic.BaseModel", "anta.models.AntaTest.In
|
|||
"tests/units/anta_tests/test_interfaces.py" = [
|
||||
"S104", # False positive for 0.0.0.0 bindings in test inputs
|
||||
]
|
||||
"tests/units/anta_tests/*" = [
|
||||
"F401", # In this module, we import tests.units.anta_tests.test without using it to auto-generate tests
|
||||
]
|
||||
"anta/*" = [
|
||||
"BLE001", # Do not catch blind exception: `Exception` - caught by other linter
|
||||
"TRY400", # Use `logging.exception` instead of `logging.error` - we know what we are doing
|
||||
]
|
||||
"anta/cli/exec/utils.py" = [
|
||||
|
@ -416,43 +436,51 @@ runtime-evaluated-base-classes = ["pydantic.BaseModel", "anta.models.AntaTest.In
|
|||
"anta/inventory/__init__.py" = [
|
||||
"PLR0913", # Ok to have more than 5 arguments in the AntaInventory class
|
||||
]
|
||||
"examples/anta_runner.py" = [ # This is an example script and linked in snippets
|
||||
"S108", # Probable insecure usage of temporary file or directory
|
||||
"examples/*.py" = [ # These are example scripts and linked in snippets
|
||||
"S105", # Possible hardcoded password
|
||||
"S106", # Possible hardcoded password assigned to argument
|
||||
"S108", # Probable insecure usage of temporary file or directory
|
||||
"INP001", # Implicit packages
|
||||
"T201", # `print` found
|
||||
"T203", # `pprint` found
|
||||
|
||||
]
|
||||
|
||||
################################
|
||||
# Pylint
|
||||
################################
|
||||
[tool.pylint.'MESSAGES CONTROL']
|
||||
disable = [
|
||||
[tool.pylint]
|
||||
disable = [ # Any rule listed here can be disabled: https://github.com/astral-sh/ruff/issues/970
|
||||
"invalid-name",
|
||||
"fixme"
|
||||
"fixme",
|
||||
"unused-import",
|
||||
"unused-argument",
|
||||
"keyword-arg-before-vararg",
|
||||
"protected-access",
|
||||
"too-many-arguments",
|
||||
"too-many-positional-arguments",
|
||||
"wrong-import-position",
|
||||
"pointless-statement",
|
||||
"broad-exception-caught",
|
||||
"line-too-long",
|
||||
"unused-variable",
|
||||
"redefined-builtin",
|
||||
"global-statement",
|
||||
"reimported",
|
||||
"wrong-import-order",
|
||||
"wrong-import-position",
|
||||
"abstract-class-instantiated", # Overlap with https://mypy.readthedocs.io/en/stable/error_code_list.html#check-instantiation-of-abstract-classes-abstract
|
||||
"unexpected-keyword-arg", # Overlap with https://mypy.readthedocs.io/en/stable/error_code_list.html#check-arguments-in-calls-call-arg and other rules
|
||||
"no-value-for-parameter" # Overlap with https://mypy.readthedocs.io/en/stable/error_code_list.html#check-arguments-in-calls-call-arg
|
||||
]
|
||||
|
||||
[tool.pylint.DESIGN]
|
||||
max-statements=61
|
||||
max-returns=8
|
||||
max-locals=23
|
||||
|
||||
[tool.pylint.FORMAT]
|
||||
max-line-length=165
|
||||
max-module-lines=1700
|
||||
|
||||
[tool.pylint.SIMILARITIES]
|
||||
# making similarity lines limit a bit higher than default 4
|
||||
min-similarity-lines=10
|
||||
|
||||
[tool.pylint.TYPECHECK]
|
||||
# https://stackoverflow.com/questions/49680191/click-and-pylint
|
||||
signature-mutators="click.decorators.option"
|
||||
|
||||
[tool.pylint.MAIN]
|
||||
load-plugins="pylint_pydantic"
|
||||
extension-pkg-whitelist="pydantic"
|
||||
ignore-paths = [
|
||||
"^tests/units/anta_tests/.*/data.py$",
|
||||
"^tests/units/anta_tests/routing/.*/data.py$",
|
||||
"^docs/scripts/anta_runner.py",
|
||||
]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue