[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 - testlib.commands.Command.with_env for starting subprocesses - 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 - testlib.commands.Command.with_env for starting subprocesses - 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 - testlib.commands.Command.with_env for starting subprocesses - 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 - testlib.commands.Command.with_env for starting subprocesses - 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."