I was pretty confused by this when I saw it, not realizing that `build` meant `tests/functional2/build` and not the top-level Meson `build` directory. Change-Id: I4865f196e5bf029419c6b488e78cbfb46a6a6964
73 lines
3.1 KiB
TOML
73 lines
3.1 KiB
TOML
[project]
|
|
name = "functional2"
|
|
version = "2"
|
|
requires-python = ">=3.12"
|
|
|
|
[tool.pytest.ini_options]
|
|
addopts = "-p no:xonsh"
|
|
|
|
markers = ["full_sandbox: test requires a fully isolated sandbox"]
|
|
|
|
# xfail tests should fail when not failing as described
|
|
xfail_strict = true
|
|
|
|
# Keep the temporary files of the last 3 test runs (default value)
|
|
tmp_path_retention_count = 3
|
|
# Keep temporary files of all tests, regardless if they failed or not
|
|
tmp_path_retention_policy = "all"
|
|
|
|
log_cli = true
|
|
log_cli_level = "INFO"
|
|
# how the logs are being printed, default is `"%(filename)s %(lineno)d %(levelname)s %(message)s"`
|
|
# Example log:
|
|
# 2025-05-09T14:06:23Z [ INFO] [test_someting] This is a test message
|
|
# 2025-05-09T14:06:25Z [ ERROR] [test_smt_else] Some error related log
|
|
log_cli_format = "%(asctime)s [%(levelname)8s] [%(name)s] %(message)s"
|
|
log_cli_date_format = "%Y-%m-%dT%H:%M:%SZ"
|
|
|
|
# By default, Pytest attempts to helpfully exclude searching for tests in
|
|
# `build` directories.
|
|
#
|
|
# Unfortunately, we have a directory of tests named `build` in this directory
|
|
# (not to be confused with the top-level Meson `build` directory;
|
|
# `tests/functional2/build/` != `build/`).
|
|
#
|
|
# These are glob expressions.
|
|
# See: https://docs.pytest.org/en/stable/reference/reference.html#confval-norecursedirs
|
|
norecursedirs = [ '.*' ]
|
|
|
|
[tool.ruff]
|
|
extend = "../../pyproject.toml"
|
|
|
|
[tool.ruff.lint.flake8-tidy-imports]
|
|
|
|
[tool.ruff.lint.flake8-tidy-imports.banned-api]
|
|
# Forbid symbols that are footguns in our codebase due to unsafe global state
|
|
"os.environ".msg = """
|
|
Environment variables are process wide and are unsafe to set as they interfere with other tests. Instead, use:
|
|
- env= in subprocess functions
|
|
- functional2.testlib.commands.Command.with_env for starting subprocesses
|
|
- functional2.testlib.environ for read-only access
|
|
"""
|
|
"os.environb".msg = """
|
|
Environment variables are process wide and are unsafe to set as they interfere with other tests. Instead, use:
|
|
- env= in subprocess functions
|
|
- functional2.testlib.commands.Command.with_env for starting subprocesses
|
|
- functional2.testlib.environ for read-only access
|
|
"""
|
|
"os.putenv".msg = """
|
|
Environment variables are process wide and are unsafe to set as they interfere with other tests. Instead, use:
|
|
- env= in subprocess functions
|
|
- functional2.testlib.commands.Command.with_env for starting subprocesses
|
|
- functional2.testlib.environ for read-only access
|
|
"""
|
|
"os.unsetenv".msg = """
|
|
Environment variables are process wide and are unsafe to set as they interfere with other tests. Instead, use:
|
|
- env= in subprocess functions
|
|
- functional2.testlib.commands.Command.with_env for starting subprocesses
|
|
- functional2.testlib.environ for read-only access
|
|
"""
|
|
"os.chdir".msg = "Changing current directory is process wide and may interfere with other tests. Use cwd= while spawning a process instead."
|
|
"os.fchdir".msg = "Changing current directory is process wide and may interfere with other tests. Use cwd= while spawning a process instead."
|
|
"contextlib.chdir".msg = "Changing current directory is process wide and may interfere with other tests. Use cwd= while spawning a process instead."
|