+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib64/python3.10/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages + /usr/bin/pytest -ra -m 'not network' -p no:randomly --deselect tests/execute/local_subprocess/test_local_subprocess.py::test_command_keyboard_interrupt --deselect tests/session/cmd/test_parallel.py::test_keyboard_interrupt --deselect tests/test_call_modes.py::test_call_as_module --deselect tests/test_call_modes.py::test_call_as_exe ============================= test session starts ============================== platform linux -- Python 3.10.14, pytest-8.2.2, pluggy-1.5.0 rootdir: /home/tkloczko/rpmbuild/BUILD/tox-4.23.0 configfile: pyproject.toml testpaths: tests plugins: time-machine-2.16.0, mock-3.14.0, xdist-3.6.1, flaky-3.8.1 collected 1808 items / 4 deselected / 1804 selected tests/config/cli/test_cli_env_var.py ...... [ 0%] tests/config/cli/test_cli_ini.py ...........F. [ 1%] tests/config/cli/test_parse.py .... [ 1%] tests/config/cli/test_parser.py ........................................ [ 3%] ........................................................................ [ 7%] ........................................................................ [ 11%] ........................................................................ [ 15%] ........................................................................ [ 19%] ........................................................................ [ 23%] ........................................................................ [ 27%] ........................................................................ [ 31%] ..................................... [ 33%] tests/config/loader/ini/replace/test_replace_env_var.py ................ [ 34%] .. [ 34%] tests/config/loader/ini/replace/test_replace_os_pathsep.py . [ 34%] tests/config/loader/ini/replace/test_replace_os_sep.py ..... [ 34%] tests/config/loader/ini/replace/test_replace_posargs.py ................ [ 35%] ........ [ 36%] tests/config/loader/ini/replace/test_replace_tox_env.py ................ [ 37%] ......................... [ 38%] tests/config/loader/ini/replace/test_replace_tty.py .. [ 38%] tests/config/loader/ini/test_factor.py ........................ [ 39%] tests/config/loader/ini/test_ini_loader.py .............. [ 40%] tests/config/loader/test_loader.py ............ [ 41%] tests/config/loader/test_memory_loader.py .....F.F.........FFF.....FFFF. [ 42%] .... [ 43%] tests/config/loader/test_replace.py ........................... [ 44%] tests/config/loader/test_section.py ........ [ 45%] tests/config/loader/test_str_convert.py .................FFFF........... [ 46%] ........................................................................ [ 50%] .FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 54%] tests/config/loader/test_toml_loader.py .......F.FFFFF..FF..FFFF [ 55%] tests/config/source/test_discover.py .... [ 55%] tests/config/source/test_legacy_toml.py . [ 55%] tests/config/source/test_setup_cfg.py .. [ 55%] tests/config/source/test_source_ini.py .... [ 56%] tests/config/source/test_toml_pyproject.py FFF......FFFF..FF.........F. [ 57%] tests/config/source/test_toml_tox.py FFF..... [ 58%] tests/config/test_main.py ..................... [ 59%] tests/config/test_of_types.py .. [ 59%] tests/config/test_set_env.py ................ [ 60%] tests/config/test_sets.py ..F.F.F............. [ 61%] tests/config/test_types.py ........ [ 61%] tests/execute/local_subprocess/test_execute_util.py .... [ 62%] tests/execute/local_subprocess/test_local_subprocess.py ................ [ 63%] .......... [ 63%] tests/execute/test_request.py .. [ 63%] tests/execute/test_stream.py .. [ 63%] tests/journal/test_main_journal.py .... [ 64%] tests/plugin/test_inline.py . [ 64%] tests/plugin/test_plugin.py F......FF. [ 64%] tests/plugin/test_plugin_custom_config_set.py ...... [ 64%] tests/pytest_/test_init.py .............. [ 65%] tests/session/cmd/run/test_common.py .......... [ 66%] tests/session/cmd/test_depends.py ... [ 66%] tests/session/cmd/test_devenv.py .. [ 66%] tests/session/cmd/test_exec_.py ...... [ 66%] tests/session/cmd/test_legacy.py ................... [ 67%] tests/session/cmd/test_list_envs.py ....... [ 68%] tests/session/cmd/test_parallel.py .....FFF...... [ 69%] tests/session/cmd/test_quickstart.py .... [ 69%] tests/session/cmd/test_sequential.py FFFFFFF.....F...FFFFFFF.......FF [ 71%] tests/session/cmd/test_show_config.py .F............F........ [ 72%] tests/session/cmd/test_state.py .. [ 72%] tests/session/test_env_select.py ................FF.F...........FFFFFFFF [ 74%] FFF............... [ 75%] tests/session/test_session_common.py ........ [ 76%] tests/test_provision.py FFFFFFFFFFFF [ 76%] tests/test_report.py .............. [ 77%] tests/test_run.py ...... [ 77%] tests/test_version.py ... [ 78%] tests/tox_env/python/pip/req/test_file.py .............................. [ 79%] ........................................................................ [ 83%] [ 83%] tests/tox_env/python/pip/test_pip_install.py ........................... [ 85%] ................. [ 86%] tests/tox_env/python/pip/test_req_file.py ........ [ 86%] tests/tox_env/python/test_python_api.py ................................ [ 88%] .......................FFFF....FF......... [ 90%] tests/tox_env/python/test_python_runner.py ...................FFFFFFFFF [ 92%] tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py ... [ 92%] .FF.F... [ 92%] tests/tox_env/python/virtual_env/package/test_package_pyproject.py ..... [ 93%] ..................FFFF..FFFF [ 94%] tests/tox_env/python/virtual_env/package/test_python_package_util.py ... [ 94%] .... [ 95%] tests/tox_env/python/virtual_env/test_virtualenv_api.py .......... [ 95%] tests/tox_env/test_api.py F.F [ 95%] tests/tox_env/test_info.py . [ 95%] tests/tox_env/test_register.py .. [ 95%] tests/tox_env/test_tox_env_api.py .FF.......F. [ 96%] tests/tox_env/test_tox_env_runner.py . [ 96%] tests/util/test_ci.py ..................... [ 97%] tests/util/test_cpu.py .. [ 97%] tests/util/test_graph.py ....... [ 98%] tests/util/test_path.py . [ 98%] tests/util/test_spinner.py .................. [ 99%] tests/session/cmd/test_devenv.py s [ 99%] tests/session/cmd/test_sequential.py ss [ 99%] tests/test_provision.py sssssss [ 99%] tests/tox_env/python/virtual_env/test_setuptools.py s [100%] =================================== FAILURES =================================== _____________________ test_ini_exhaustive_parallel_values ______________________ core_handlers = {'c': , 'config': , 'd': , 'de': , ...} @pytest.mark.usefixtures("exhaustive_ini") def test_ini_exhaustive_parallel_values(core_handlers: dict[str, Callable[[State], int]]) -> None: options = get_options("p") > assert vars(options.parsed) == { "colored": "yes", "command": "p", "default_runner": "virtualenv", "develop": False, "discover": [], "env": CliEnv(["py37", "py36"]), "hash_seed": ANY, "install_pkg": None, "no_test": True, "override": [Override("a=b"), Override("c=d")], "package_only": False, "no_recreate_pkg": False, "parallel": 3, "parallel_live": True, "parallel_no_spinner": False, "quiet": 1, "no_provision": False, "recreate": True, "no_recreate_provision": False, "result_json": None, "skip_missing_interpreters": "config", "skip_pkg_install": False, "verbose": 5, "work_dir": None, "root_dir": None, "config_file": None, "factors": [], "labels": [], "exit_and_dump_after": 0, "skip_env": "", "list_dependencies": is_ci(), } E AssertionError: assert {'colored': '...tualenv', ...} == {'colored': '...tualenv', ...} E E Omitting 30 identical items, use -vv to show E Differing items: E {'override': ['a=b', 'c=d']} != {'override': [Override('a=b'), Override('c=d')]} E Use -v to get more diff core_handlers = {'c': , 'config': , 'd': , 'de': , ...} options = Options(parsed=Parsed(colored='yes', verbose=5, quiet=1, exit_and_dump_after=0, config_file=None, work_dir=None, root_...e': }, log_handler= (DEBUG)>) tests/config/cli/test_cli_ini.py:201: AssertionError ----------------------------- Captured stdout call ----------------------------- ROOT: 1935 D setup logging to DEBUG on pid 1263369 [tox/report.py:223] ___________________ test_memory_loader[value3-set-outcome3] ____________________ value = {'1'}, of_type = set[str], outcome = {'1'} @pytest.mark.parametrize( ("value", "of_type", "outcome"), [ (True, bool, True), (1, int, 1), ("magic", str, "magic"), ({"1"}, set[str], {"1"}), ([1], list[int], [1]), ({1: 2}, dict[int, int], {1: 2}), (Path.cwd(), Path, Path.cwd()), (Command(["a"]), Command, Command(["a"])), (EnvList("a,b"), EnvList, EnvList("a,b")), (1, Optional[int], 1), ("1", Optional[str], "1"), (0, bool, False), (1, bool, True), ("1", int, 1), (1, str, "1"), ({1}, set[str], {"1"}), ({"1"}, list[int], [1]), ({"1": "2"}, dict[int, int], {1: 2}), (os.getcwd(), Path, Path.cwd()), # noqa: PTH109 ("pip list", Command, Command(["pip", "list"])), ("a\nb", EnvList, EnvList(["a", "b"])), ("1", Optional[int], 1), ], ) def test_memory_loader(value: Any, of_type: type[Any], outcome: Any) -> None: loader = MemoryLoader(a=value, kwargs={}) args = ConfigLoadArgs([], "name", None) loaded = loader.load("a", of_type=of_type, conf=None, factory=None, args=args) > assert loaded == outcome E AssertionError: assert ['1'] == {'1'} E E Use -v to get more diff args = loaded = ['1'] loader = MemoryLoader of_type = set[str] outcome = {'1'} value = {'1'} tests/config/loader/test_memory_loader.py:58: AssertionError ___________________ test_memory_loader[value5-dict-outcome5] ___________________ value = {1: 2}, of_type = dict[int, int], outcome = {1: 2} @pytest.mark.parametrize( ("value", "of_type", "outcome"), [ (True, bool, True), (1, int, 1), ("magic", str, "magic"), ({"1"}, set[str], {"1"}), ([1], list[int], [1]), ({1: 2}, dict[int, int], {1: 2}), (Path.cwd(), Path, Path.cwd()), (Command(["a"]), Command, Command(["a"])), (EnvList("a,b"), EnvList, EnvList("a,b")), (1, Optional[int], 1), ("1", Optional[str], "1"), (0, bool, False), (1, bool, True), ("1", int, 1), (1, str, "1"), ({1}, set[str], {"1"}), ({"1"}, list[int], [1]), ({"1": "2"}, dict[int, int], {1: 2}), (os.getcwd(), Path, Path.cwd()), # noqa: PTH109 ("pip list", Command, Command(["pip", "list"])), ("a\nb", EnvList, EnvList(["a", "b"])), ("1", Optional[int], 1), ], ) def test_memory_loader(value: Any, of_type: type[Any], outcome: Any) -> None: loader = MemoryLoader(a=value, kwargs={}) args = ConfigLoadArgs([], "name", None) loaded = loader.load("a", of_type=of_type, conf=None, factory=None, args=args) > assert loaded == outcome E assert [1] == {1: 2} E E Use -v to get more diff args = loaded = [1] loader = MemoryLoader of_type = dict[int, int] outcome = {1: 2} value = {1: 2} tests/config/loader/test_memory_loader.py:58: AssertionError __________________ test_memory_loader[value15-set-outcome15] ___________________ value = {1}, of_type = set[str], outcome = {'1'} @pytest.mark.parametrize( ("value", "of_type", "outcome"), [ (True, bool, True), (1, int, 1), ("magic", str, "magic"), ({"1"}, set[str], {"1"}), ([1], list[int], [1]), ({1: 2}, dict[int, int], {1: 2}), (Path.cwd(), Path, Path.cwd()), (Command(["a"]), Command, Command(["a"])), (EnvList("a,b"), EnvList, EnvList("a,b")), (1, Optional[int], 1), ("1", Optional[str], "1"), (0, bool, False), (1, bool, True), ("1", int, 1), (1, str, "1"), ({1}, set[str], {"1"}), ({"1"}, list[int], [1]), ({"1": "2"}, dict[int, int], {1: 2}), (os.getcwd(), Path, Path.cwd()), # noqa: PTH109 ("pip list", Command, Command(["pip", "list"])), ("a\nb", EnvList, EnvList(["a", "b"])), ("1", Optional[int], 1), ], ) def test_memory_loader(value: Any, of_type: type[Any], outcome: Any) -> None: loader = MemoryLoader(a=value, kwargs={}) args = ConfigLoadArgs([], "name", None) loaded = loader.load("a", of_type=of_type, conf=None, factory=None, args=args) > assert loaded == outcome E AssertionError: assert [1] == {'1'} E E Use -v to get more diff args = loaded = [1] loader = MemoryLoader of_type = set[str] outcome = {'1'} value = {1} tests/config/loader/test_memory_loader.py:58: AssertionError __________________ test_memory_loader[value16-list-outcome16] __________________ value = {'1'}, of_type = list[int], outcome = [1] @pytest.mark.parametrize( ("value", "of_type", "outcome"), [ (True, bool, True), (1, int, 1), ("magic", str, "magic"), ({"1"}, set[str], {"1"}), ([1], list[int], [1]), ({1: 2}, dict[int, int], {1: 2}), (Path.cwd(), Path, Path.cwd()), (Command(["a"]), Command, Command(["a"])), (EnvList("a,b"), EnvList, EnvList("a,b")), (1, Optional[int], 1), ("1", Optional[str], "1"), (0, bool, False), (1, bool, True), ("1", int, 1), (1, str, "1"), ({1}, set[str], {"1"}), ({"1"}, list[int], [1]), ({"1": "2"}, dict[int, int], {1: 2}), (os.getcwd(), Path, Path.cwd()), # noqa: PTH109 ("pip list", Command, Command(["pip", "list"])), ("a\nb", EnvList, EnvList(["a", "b"])), ("1", Optional[int], 1), ], ) def test_memory_loader(value: Any, of_type: type[Any], outcome: Any) -> None: loader = MemoryLoader(a=value, kwargs={}) args = ConfigLoadArgs([], "name", None) loaded = loader.load("a", of_type=of_type, conf=None, factory=None, args=args) > assert loaded == outcome E AssertionError: assert ['1'] == [1] E E At index 0 diff: '1' != 1 E Use -v to get more diff args = loaded = ['1'] loader = MemoryLoader of_type = list[int] outcome = [1] value = {'1'} tests/config/loader/test_memory_loader.py:58: AssertionError __________________ test_memory_loader[value17-dict-outcome17] __________________ value = {'1': '2'}, of_type = dict[int, int], outcome = {1: 2} @pytest.mark.parametrize( ("value", "of_type", "outcome"), [ (True, bool, True), (1, int, 1), ("magic", str, "magic"), ({"1"}, set[str], {"1"}), ([1], list[int], [1]), ({1: 2}, dict[int, int], {1: 2}), (Path.cwd(), Path, Path.cwd()), (Command(["a"]), Command, Command(["a"])), (EnvList("a,b"), EnvList, EnvList("a,b")), (1, Optional[int], 1), ("1", Optional[str], "1"), (0, bool, False), (1, bool, True), ("1", int, 1), (1, str, "1"), ({1}, set[str], {"1"}), ({"1"}, list[int], [1]), ({"1": "2"}, dict[int, int], {1: 2}), (os.getcwd(), Path, Path.cwd()), # noqa: PTH109 ("pip list", Command, Command(["pip", "list"])), ("a\nb", EnvList, EnvList(["a", "b"])), ("1", Optional[int], 1), ], ) def test_memory_loader(value: Any, of_type: type[Any], outcome: Any) -> None: loader = MemoryLoader(a=value, kwargs={}) args = ConfigLoadArgs([], "name", None) loaded = loader.load("a", of_type=of_type, conf=None, factory=None, args=args) > assert loaded == outcome E AssertionError: assert ['1'] == {1: 2} E E Use -v to get more diff args = loaded = ['1'] loader = MemoryLoader of_type = dict[int, int] outcome = {1: 2} value = {'1': '2'} tests/config/loader/test_memory_loader.py:58: AssertionError _ test_memory_loader_fails_invalid[value1-set-ValueError-invalid literal for int] _ value = {'m'}, of_type = set[int], exception = msg = 'invalid literal for int' @pytest.mark.parametrize( ("value", "of_type", "exception", "msg"), [ ("m", int, ValueError, "invalid literal for int"), ({"m"}, set[int], ValueError, "invalid literal for int"), (["m"], list[int], ValueError, "invalid literal for int"), ({"m": 1}, dict[int, int], ValueError, "invalid literal for int"), ({1: "m"}, dict[int, int], ValueError, "invalid literal for int"), (object, Path, TypeError, r"str(, bytes)? or (an )?os\.PathLike object"), (1, Command, TypeError, "1"), (1, EnvList, TypeError, "1"), ], ) def test_memory_loader_fails_invalid(value: Any, of_type: type[Any], exception: Exception, msg: str) -> None: loader = MemoryLoader(a=value, kwargs={}) args = ConfigLoadArgs([], "name", None) > with pytest.raises(exception, match=msg): # type: ignore[call-overload] E Failed: DID NOT RAISE args = exception = loader = MemoryLoader msg = 'invalid literal for int' of_type = set[int] value = {'m'} tests/config/loader/test_memory_loader.py:77: Failed _ test_memory_loader_fails_invalid[value2-list-ValueError-invalid literal for int] _ value = ['m'], of_type = list[int], exception = msg = 'invalid literal for int' @pytest.mark.parametrize( ("value", "of_type", "exception", "msg"), [ ("m", int, ValueError, "invalid literal for int"), ({"m"}, set[int], ValueError, "invalid literal for int"), (["m"], list[int], ValueError, "invalid literal for int"), ({"m": 1}, dict[int, int], ValueError, "invalid literal for int"), ({1: "m"}, dict[int, int], ValueError, "invalid literal for int"), (object, Path, TypeError, r"str(, bytes)? or (an )?os\.PathLike object"), (1, Command, TypeError, "1"), (1, EnvList, TypeError, "1"), ], ) def test_memory_loader_fails_invalid(value: Any, of_type: type[Any], exception: Exception, msg: str) -> None: loader = MemoryLoader(a=value, kwargs={}) args = ConfigLoadArgs([], "name", None) > with pytest.raises(exception, match=msg): # type: ignore[call-overload] E Failed: DID NOT RAISE args = exception = loader = MemoryLoader msg = 'invalid literal for int' of_type = list[int] value = ['m'] tests/config/loader/test_memory_loader.py:77: Failed _ test_memory_loader_fails_invalid[value3-dict-ValueError-invalid literal for int] _ value = {'m': 1}, of_type = dict[int, int], exception = msg = 'invalid literal for int' @pytest.mark.parametrize( ("value", "of_type", "exception", "msg"), [ ("m", int, ValueError, "invalid literal for int"), ({"m"}, set[int], ValueError, "invalid literal for int"), (["m"], list[int], ValueError, "invalid literal for int"), ({"m": 1}, dict[int, int], ValueError, "invalid literal for int"), ({1: "m"}, dict[int, int], ValueError, "invalid literal for int"), (object, Path, TypeError, r"str(, bytes)? or (an )?os\.PathLike object"), (1, Command, TypeError, "1"), (1, EnvList, TypeError, "1"), ], ) def test_memory_loader_fails_invalid(value: Any, of_type: type[Any], exception: Exception, msg: str) -> None: loader = MemoryLoader(a=value, kwargs={}) args = ConfigLoadArgs([], "name", None) > with pytest.raises(exception, match=msg): # type: ignore[call-overload] E Failed: DID NOT RAISE args = exception = loader = MemoryLoader msg = 'invalid literal for int' of_type = dict[int, int] value = {'m': 1} tests/config/loader/test_memory_loader.py:77: Failed _ test_memory_loader_fails_invalid[value4-dict-ValueError-invalid literal for int] _ value = {1: 'm'}, of_type = dict[int, int], exception = msg = 'invalid literal for int' @pytest.mark.parametrize( ("value", "of_type", "exception", "msg"), [ ("m", int, ValueError, "invalid literal for int"), ({"m"}, set[int], ValueError, "invalid literal for int"), (["m"], list[int], ValueError, "invalid literal for int"), ({"m": 1}, dict[int, int], ValueError, "invalid literal for int"), ({1: "m"}, dict[int, int], ValueError, "invalid literal for int"), (object, Path, TypeError, r"str(, bytes)? or (an )?os\.PathLike object"), (1, Command, TypeError, "1"), (1, EnvList, TypeError, "1"), ], ) def test_memory_loader_fails_invalid(value: Any, of_type: type[Any], exception: Exception, msg: str) -> None: loader = MemoryLoader(a=value, kwargs={}) args = ConfigLoadArgs([], "name", None) > with pytest.raises(exception, match=msg): # type: ignore[call-overload] E Failed: DID NOT RAISE args = exception = loader = MemoryLoader msg = 'invalid literal for int' of_type = dict[int, int] value = {1: 'm'} tests/config/loader/test_memory_loader.py:77: Failed ______________________ test_str_convert_ok[1-value17-set] ______________________ raw = '1', value = {'1'}, of_type = set[str] @pytest.mark.parametrize( ("raw", "value", "of_type"), [ ("true", True, bool), ("false", False, bool), ("True", True, bool), ("False", False, bool), ("TruE", True, bool), ("FalsE", False, bool), ("1", True, bool), ("0", False, bool), ("1", 1, int), ("0", 0, int), ("+1", 1, int), ("-1", -1, int), ("1.1", 1.1, float), ("0.1", 0.1, float), ("+1.1", 1.1, float), ("-1.1", -1.1, float), ("magic", "magic", str), ("1", {"1"}, set[str]), ("1", [1], list[int]), ("1=2", {1: 2}, dict[int, int]), ("a=1\n\nc=2", {"a": 1, "c": 2}, dict[str, int]), ("a", Path("a"), Path), ("a", Command(["a"]), Command), ("a,b", EnvList(["a", "b"]), EnvList), ("", None, Optional[int]), ("1", 1, Optional[int]), ("", None, Optional[str]), ("1", "1", Optional[str]), ("", None, Optional[list[str]]), ("1,2", ["1", "2"], Optional[list[str]]), ("1", "1", Literal["1", "2"]), ], ) def test_str_convert_ok(raw: str, value: Any, of_type: type[Any]) -> None: result = StrConvert().to(raw, of_type, None) > assert result == value E AssertionError: assert ['1'] == {'1'} E E Use -v to get more diff of_type = set[str] raw = '1' result = ['1'] value = {'1'} tests/config/loader/test_str_convert.py:57: AssertionError _____________________ test_str_convert_ok[1-value18-list] ______________________ raw = '1', value = [1], of_type = list[int] @pytest.mark.parametrize( ("raw", "value", "of_type"), [ ("true", True, bool), ("false", False, bool), ("True", True, bool), ("False", False, bool), ("TruE", True, bool), ("FalsE", False, bool), ("1", True, bool), ("0", False, bool), ("1", 1, int), ("0", 0, int), ("+1", 1, int), ("-1", -1, int), ("1.1", 1.1, float), ("0.1", 0.1, float), ("+1.1", 1.1, float), ("-1.1", -1.1, float), ("magic", "magic", str), ("1", {"1"}, set[str]), ("1", [1], list[int]), ("1=2", {1: 2}, dict[int, int]), ("a=1\n\nc=2", {"a": 1, "c": 2}, dict[str, int]), ("a", Path("a"), Path), ("a", Command(["a"]), Command), ("a,b", EnvList(["a", "b"]), EnvList), ("", None, Optional[int]), ("1", 1, Optional[int]), ("", None, Optional[str]), ("1", "1", Optional[str]), ("", None, Optional[list[str]]), ("1,2", ["1", "2"], Optional[list[str]]), ("1", "1", Literal["1", "2"]), ], ) def test_str_convert_ok(raw: str, value: Any, of_type: type[Any]) -> None: result = StrConvert().to(raw, of_type, None) > assert result == value E AssertionError: assert ['1'] == [1] E E At index 0 diff: '1' != 1 E Use -v to get more diff of_type = list[int] raw = '1' result = ['1'] value = [1] tests/config/loader/test_str_convert.py:57: AssertionError ____________________ test_str_convert_ok[1=2-value19-dict] _____________________ raw = '1=2', value = {1: 2}, of_type = dict[int, int] @pytest.mark.parametrize( ("raw", "value", "of_type"), [ ("true", True, bool), ("false", False, bool), ("True", True, bool), ("False", False, bool), ("TruE", True, bool), ("FalsE", False, bool), ("1", True, bool), ("0", False, bool), ("1", 1, int), ("0", 0, int), ("+1", 1, int), ("-1", -1, int), ("1.1", 1.1, float), ("0.1", 0.1, float), ("+1.1", 1.1, float), ("-1.1", -1.1, float), ("magic", "magic", str), ("1", {"1"}, set[str]), ("1", [1], list[int]), ("1=2", {1: 2}, dict[int, int]), ("a=1\n\nc=2", {"a": 1, "c": 2}, dict[str, int]), ("a", Path("a"), Path), ("a", Command(["a"]), Command), ("a,b", EnvList(["a", "b"]), EnvList), ("", None, Optional[int]), ("1", 1, Optional[int]), ("", None, Optional[str]), ("1", "1", Optional[str]), ("", None, Optional[list[str]]), ("1,2", ["1", "2"], Optional[list[str]]), ("1", "1", Literal["1", "2"]), ], ) def test_str_convert_ok(raw: str, value: Any, of_type: type[Any]) -> None: result = StrConvert().to(raw, of_type, None) > assert result == value E AssertionError: assert ['1=2'] == {1: 2} E E Use -v to get more diff of_type = dict[int, int] raw = '1=2' result = ['1=2'] value = {1: 2} tests/config/loader/test_str_convert.py:57: AssertionError _________________ test_str_convert_ok[a=1\n\nc=2-value20-dict] _________________ raw = 'a=1\n\nc=2', value = {'a': 1, 'c': 2}, of_type = dict[str, int] @pytest.mark.parametrize( ("raw", "value", "of_type"), [ ("true", True, bool), ("false", False, bool), ("True", True, bool), ("False", False, bool), ("TruE", True, bool), ("FalsE", False, bool), ("1", True, bool), ("0", False, bool), ("1", 1, int), ("0", 0, int), ("+1", 1, int), ("-1", -1, int), ("1.1", 1.1, float), ("0.1", 0.1, float), ("+1.1", 1.1, float), ("-1.1", -1.1, float), ("magic", "magic", str), ("1", {"1"}, set[str]), ("1", [1], list[int]), ("1=2", {1: 2}, dict[int, int]), ("a=1\n\nc=2", {"a": 1, "c": 2}, dict[str, int]), ("a", Path("a"), Path), ("a", Command(["a"]), Command), ("a,b", EnvList(["a", "b"]), EnvList), ("", None, Optional[int]), ("1", 1, Optional[int]), ("", None, Optional[str]), ("1", "1", Optional[str]), ("", None, Optional[list[str]]), ("1,2", ["1", "2"], Optional[list[str]]), ("1", "1", Literal["1", "2"]), ], ) def test_str_convert_ok(raw: str, value: Any, of_type: type[Any]) -> None: result = StrConvert().to(raw, of_type, None) > assert result == value E AssertionError: assert ['a=1', 'c=2'] == {'a': 1, 'c': 2} E E Use -v to get more diff of_type = dict[str, int] raw = 'a=1\n\nc=2' result = ['a=1', 'c=2'] value = {'a': 1, 'c': 2} tests/config/loader/test_str_convert.py:57: AssertionError _______ test_shlex_platform_specific_ini[win32-foo "bar baz"-expected0] ________ tox_project = ._init at 0x7f7358d669e0> sys_platform = 'win32', value = 'foo "bar baz"', expected = ['foo', 'bar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo "bar baz"'] == [Command(args..., 'bar baz'])] E E At index 0 diff: 'foo "bar baz"' != Command(args=['foo', 'bar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i0/p stand...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i0/p) at 140133386238992 result = ['foo "bar baz"'] sys_platform = 'win32' tox_project = ._init at 0x7f7358d669e0> value = 'foo "bar baz"' tests/config/loader/test_str_convert.py:221: AssertionError ______ test_shlex_platform_specific_ini[win32-foo "bar baz"ext-expected1] ______ tox_project = ._init at 0x7f7358d66320> sys_platform = 'win32', value = 'foo "bar baz"ext' expected = ['foo', 'bar bazext'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo "bar baz"ext'] == [Command(args...bar bazext'])] E E At index 0 diff: 'foo "bar baz"ext' != Command(args=['foo', 'bar bazext']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar bazext'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i1/p stand...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i1/p) at 140133389783712 result = ['foo "bar baz"ext'] sys_platform = 'win32' tox_project = ._init at 0x7f7358d66320> value = 'foo "bar baz"ext' tests/config/loader/test_str_convert.py:221: AssertionError _______ test_shlex_platform_specific_ini[win32-foo="bar baz"-expected2] ________ tox_project = ._init at 0x7f7357e508b0> sys_platform = 'win32', value = 'foo="bar baz"', expected = ['foo=bar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo="bar baz"'] == [Command(args...oo=bar baz'])] E E At index 0 diff: 'foo="bar baz"' != Command(args=['foo=bar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=bar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i2/p stand...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i2/p) at 140133384958928 result = ['foo="bar baz"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357e508b0> value = 'foo="bar baz"' tests/config/loader/test_str_convert.py:221: AssertionError _______ test_shlex_platform_specific_ini[win32-foo 'bar baz'-expected3] ________ tox_project = ._init at 0x7f7357e50c10> sys_platform = 'win32', value = "foo 'bar baz'", expected = ['foo', 'bar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["foo 'bar baz'"] == [Command(args..., 'bar baz'])] E E At index 0 diff: "foo 'bar baz'" != Command(args=['foo', 'bar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i3/p stand...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i3/p) at 140133387238560 result = ["foo 'bar baz'"] sys_platform = 'win32' tox_project = ._init at 0x7f7357e50c10> value = "foo 'bar baz'" tests/config/loader/test_str_convert.py:221: AssertionError ______ test_shlex_platform_specific_ini[win32-foo 'bar baz'ext-expected4] ______ tox_project = ._init at 0x7f7357e2bd00> sys_platform = 'win32', value = "foo 'bar baz'ext" expected = ['foo', 'bar bazext'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["foo 'bar baz'ext"] == [Command(args...bar bazext'])] E E At index 0 diff: "foo 'bar baz'ext" != Command(args=['foo', 'bar bazext']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar bazext'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i4/p stand...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i4/p) at 140133386181680 result = ["foo 'bar baz'ext"] sys_platform = 'win32' tox_project = ._init at 0x7f7357e2bd00> value = "foo 'bar baz'ext" tests/config/loader/test_str_convert.py:221: AssertionError _______ test_shlex_platform_specific_ini[win32-foo='bar baz'-expected5] ________ tox_project = ._init at 0x7f7357e535b0> sys_platform = 'win32', value = "foo='bar baz'", expected = ['foo=bar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["foo='bar baz'"] == [Command(args...oo=bar baz'])] E E At index 0 diff: "foo='bar baz'" != Command(args=['foo=bar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=bar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i5/p stand...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i5/p) at 140133385900800 result = ["foo='bar baz'"] sys_platform = 'win32' tox_project = ._init at 0x7f7357e535b0> value = "foo='bar baz'" tests/config/loader/test_str_convert.py:221: AssertionError _____ test_shlex_platform_specific_ini[win32-foo=\\"bar baz\\"-expected6] ______ tox_project = ._init at 0x7f7357e50ca0> sys_platform = 'win32', value = 'foo=\\"bar baz\\"' expected = ['foo="bar', 'baz"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo=\\"bar baz\\"'] == [Command(args...ar', 'baz"'])] E E At index 0 diff: 'foo=\\"bar baz\\"' != Command(args=['foo="bar', 'baz"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo="bar', 'baz"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i6/p stand...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i6/p) at 140133386015584 result = ['foo=\\"bar baz\\"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357e50ca0> value = 'foo=\\"bar baz\\"' tests/config/loader/test_str_convert.py:221: AssertionError ______ test_shlex_platform_specific_ini[win32-foo="bar baz\\"-expected7] _______ tox_project = ._init at 0x7f7357d3c550> sys_platform = 'win32', value = 'foo="bar baz\\"' expected = ['foo="bar baz\\"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo="bar baz\\"'] == [Command(args...bar baz\\"'])] E E At index 0 diff: 'foo="bar baz\\"' != Command(args=['foo="bar baz\\"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo="bar baz\\"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i7/p stand...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i7/p) at 140133385114416 result = ['foo="bar baz\\"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357d3c550> value = 'foo="bar baz\\"' tests/config/loader/test_str_convert.py:221: AssertionError _____ test_shlex_platform_specific_ini[win32-foo='bar baz' quuc-expected8] _____ tox_project = ._init at 0x7f7357eba3b0> sys_platform = 'win32', value = "foo='bar baz' quuc" expected = ['foo=bar baz', 'quuc'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["foo='bar baz' quuc"] == [Command(args...az', 'quuc'])] E E At index 0 diff: "foo='bar baz' quuc" != Command(args=['foo=bar baz', 'quuc']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=bar baz', 'quuc'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i8/p stand...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i8/p) at 140133387068960 result = ["foo='bar baz' quuc"] sys_platform = 'win32' tox_project = ._init at 0x7f7357eba3b0> value = "foo='bar baz' quuc" tests/config/loader/test_str_convert.py:221: AssertionError ____ test_shlex_platform_specific_ini[win32-foo='bar baz\\' quuc-expected9] ____ tox_project = ._init at 0x7f7357e53370> sys_platform = 'win32', value = "foo='bar baz\\' quuc" expected = ['foo=bar baz\\', 'quuc'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["foo='bar baz\\' quuc"] == [Command(args...\\', 'quuc'])] E E At index 0 diff: "foo='bar baz\\' quuc" != Command(args=['foo=bar baz\\', 'quuc']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=bar baz\\', 'quuc'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i9/p stand...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i9/p) at 140133388112832 result = ["foo='bar baz\\' quuc"] sys_platform = 'win32' tox_project = ._init at 0x7f7357e53370> value = "foo='bar baz\\' quuc" tests/config/loader/test_str_convert.py:221: AssertionError __ test_shlex_platform_specific_ini[win32-foo=\\"bar baz\\' quuc-expected10] ___ tox_project = ._init at 0x7f7358e5b2e0> sys_platform = 'win32', value = 'foo=\\"bar baz\\\' quuc' expected = ['foo="bar', "baz'", 'quuc'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo=\\"bar baz\\\' quuc'] == [Command(args...z'", 'quuc'])] E E At index 0 diff: 'foo=\\"bar baz\\\' quuc' != Command(args=['foo="bar', "baz'", 'quuc']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo="bar', "baz'", 'quuc'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i10/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i10/p) at 140133387216656 result = ['foo=\\"bar baz\\\' quuc'] sys_platform = 'win32' tox_project = ._init at 0x7f7358e5b2e0> value = 'foo=\\"bar baz\\\' quuc' tests/config/loader/test_str_convert.py:221: AssertionError ___ test_shlex_platform_specific_ini[win32-foo=\\\\\\"bar baz\\"-expected11] ___ tox_project = ._init at 0x7f7358d676d0> sys_platform = 'win32', value = 'foo=\\\\\\"bar baz\\"' expected = ['foo=\\"bar', 'baz"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo=\\\\\\"bar baz\\"'] == [Command(args...ar', 'baz"'])] E E At index 0 diff: 'foo=\\\\\\"bar baz\\"' != Command(args=['foo=\\"bar', 'baz"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=\\"bar', 'baz"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i11/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i11/p) at 140133389207248 result = ['foo=\\\\\\"bar baz\\"'] sys_platform = 'win32' tox_project = ._init at 0x7f7358d676d0> value = 'foo=\\\\\\"bar baz\\"' tests/config/loader/test_str_convert.py:221: AssertionError ____ test_shlex_platform_specific_ini[win32-foo=\\\\"bar baz\\"-expected12] ____ tox_project = ._init at 0x7f7357eb8e50> sys_platform = 'win32', value = 'foo=\\\\"bar baz\\"' expected = ['foo=\\\\"bar baz\\"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo=\\\\"bar baz\\"'] == [Command(args...bar baz\\"'])] E E At index 0 diff: 'foo=\\\\"bar baz\\"' != Command(args=['foo=\\\\"bar baz\\"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=\\\\"bar baz\\"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i12/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i12/p) at 140133385682416 result = ['foo=\\\\"bar baz\\"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357eb8e50> value = 'foo=\\\\"bar baz\\"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-foo\\\n "bar\\\n baz"-expected13] _ tox_project = ._init at 0x7f7357d3db40> sys_platform = 'win32', value = 'foo\\\n "bar\\\n baz"' expected = ['foobarbaz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo"barbaz"'] == [Command(args=['foobarbaz'])] E E At index 0 diff: 'foo"barbaz"' != Command(args=['foobarbaz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foobarbaz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i13/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i13/p) at 140133387438640 result = ['foo"barbaz"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357d3db40> value = 'foo\\\n "bar\\\n baz"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-foo\\\n "bar \\\n baz"-expected14] _ tox_project = ._init at 0x7f7358d66e60> sys_platform = 'win32', value = 'foo\\\n "bar \\\n baz"' expected = ['foobar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo"bar baz"'] == [Command(args=['foobar baz'])] E E At index 0 diff: 'foo"bar baz"' != Command(args=['foobar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foobar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i14/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i14/p) at 140133385678144 result = ['foo"bar baz"'] sys_platform = 'win32' tox_project = ._init at 0x7f7358d66e60> value = 'foo\\\n "bar \\\n baz"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-foo \\\n "bar\\\n baz"-expected15] _ tox_project = ._init at 0x7f7357d3d240> sys_platform = 'win32', value = 'foo \\\n "bar\\\n baz"' expected = ['foo', 'barbaz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo "barbaz"'] == [Command(args...', 'barbaz'])] E E At index 0 diff: 'foo "barbaz"' != Command(args=['foo', 'barbaz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'barbaz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i15/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i15/p) at 140133387542944 result = ['foo "barbaz"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357d3d240> value = 'foo \\\n "bar\\\n baz"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-foo \\\n "bar \\\n baz"-expected16] _ tox_project = ._init at 0x7f7357dbcb80> sys_platform = 'win32', value = 'foo \\\n "bar \\\n baz"' expected = ['foo', 'bar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo "bar baz"'] == [Command(args..., 'bar baz'])] E E At index 0 diff: 'foo "bar baz"' != Command(args=['foo', 'bar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i16/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i16/p) at 140133386232272 result = ['foo "bar baz"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357dbcb80> value = 'foo \\\n "bar \\\n baz"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-foo \\\n \\"bar \\\n baz"-expected17] _ tox_project = ._init at 0x7f7357d3eb00> sys_platform = 'win32', value = 'foo \\\n \\"bar \\\n baz"' expected = ['foo', '"bar', 'baz"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo \\"bar baz"'] == [Command(args...ar', 'baz"'])] E E At index 0 diff: 'foo \\"bar baz"' != Command(args=['foo', '"bar', 'baz"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', '"bar', 'baz"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i17/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i17/p) at 140133385207520 result = ['foo \\"bar baz"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357d3eb00> value = 'foo \\\n \\"bar \\\n baz"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-foo \\\n bar \\\n baz-expected18] _ tox_project = ._init at 0x7f7357dbdf30> sys_platform = 'win32', value = 'foo \\\n bar \\\n baz' expected = ['foo', 'bar', 'baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E AssertionError: assert ['foo bar baz'] == [Command(args...bar', 'baz'])] E E At index 0 diff: 'foo bar baz' != Command(args=['foo', 'bar', 'baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar', 'baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i18/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i18/p) at 140133386019040 result = ['foo bar baz'] sys_platform = 'win32' tox_project = ._init at 0x7f7357dbdf30> value = 'foo \\\n bar \\\n baz' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-SPECIAL:\\foo\\bar --quuz='baz atan'-expected19] _ tox_project = ._init at 0x7f7357dbce50> sys_platform = 'win32', value = "SPECIAL:\\foo\\bar --quuz='baz atan'" expected = ['SPECIAL:\\foo\\bar', '--quuz=baz atan'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["SPECIAL:\\f...z='baz atan'"] == [Command(args...z=baz atan'])] E E At index 0 diff: "SPECIAL:\\foo\\bar --quuz='baz atan'" != Command(args=['SPECIAL:\\foo\\bar', '--quuz=baz atan']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['SPECIAL:\\foo\\bar', '--quuz=baz atan'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i19/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i19/p) at 140133387247840 result = ["SPECIAL:\\foo\\bar --quuz='baz atan'"] sys_platform = 'win32' tox_project = ._init at 0x7f7357dbce50> value = "SPECIAL:\\foo\\bar --quuz='baz atan'" tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-X:\\\\foo\\\\bar --quuz='baz atan'-expected20] _ tox_project = ._init at 0x7f7357dbfc70> sys_platform = 'win32', value = "X:\\\\foo\\\\bar --quuz='baz atan'" expected = ['X:\\foo\\bar', '--quuz=baz atan'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["X:\\\\foo\\...z='baz atan'"] == [Command(args...z=baz atan'])] E E At index 0 diff: "X:\\\\foo\\\\bar --quuz='baz atan'" != Command(args=['X:\\foo\\bar', '--quuz=baz atan']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['X:\\foo\\bar', '--quuz=baz atan'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i20/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i20/p) at 140133387193888 result = ["X:\\\\foo\\\\bar --quuz='baz atan'"] sys_platform = 'win32' tox_project = ._init at 0x7f7357dbfc70> value = "X:\\\\foo\\\\bar --quuz='baz atan'" tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-/foo/bar --quuz='baz atan'-expected21] _ tox_project = ._init at 0x7f7357de81f0> sys_platform = 'win32', value = "/foo/bar --quuz='baz atan'" expected = ['/foo/bar', '--quuz=baz atan'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["/foo/bar --quuz='baz atan'"] == [Command(args...z=baz atan'])] E E At index 0 diff: "/foo/bar --quuz='baz atan'" != Command(args=['/foo/bar', '--quuz=baz atan']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['/foo/bar', '--quuz=baz atan'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i21/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i21/p) at 140133387476448 result = ["/foo/bar --quuz='baz atan'"] sys_platform = 'win32' tox_project = ._init at 0x7f7357de81f0> value = "/foo/bar --quuz='baz atan'" tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users\\""-expected22] _ tox_project = ._init at 0x7f7357de8dc0> sys_platform = 'win32', value = 'cc --arg "C:\\\\Users\\""' expected = ['cc', '--arg', 'C:\\Users"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C:\\\\Users\\""'] == [Command(args...C:\\Users"'])] E E At index 0 diff: 'cc --arg "C:\\\\Users\\""' != Command(args=['cc', '--arg', 'C:\\Users"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i22/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i22/p) at 140133385204208 result = ['cc --arg "C:\\\\Users\\""'] sys_platform = 'win32' tox_project = ._init at 0x7f7357de8dc0> value = 'cc --arg "C:\\\\Users\\""' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users\\"-expected23] __ tox_project = ._init at 0x7f7357c21900> sys_platform = 'win32', value = 'cc --arg "C:\\\\Users\\"' expected = ['cc', '--arg', '"C:\\\\Users\\"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C:\\\\Users\\"'] == [Command(args...\\Users\\"'])] E E At index 0 diff: 'cc --arg "C:\\\\Users\\"' != Command(args=['cc', '--arg', '"C:\\\\Users\\"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', '"C:\\\\Users\\"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i23/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i23/p) at 140133387272096 result = ['cc --arg "C:\\\\Users\\"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357c21900> value = 'cc --arg "C:\\\\Users\\"' tests/config/loader/test_str_convert.py:221: AssertionError __ test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users"-expected24] ___ tox_project = ._init at 0x7f7357c20d30> sys_platform = 'win32', value = 'cc --arg "C:\\\\Users"' expected = ['cc', '--arg', 'C:\\Users'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C:\\\\Users"'] == [Command(args...'C:\\Users'])] E E At index 0 diff: 'cc --arg "C:\\\\Users"' != Command(args=['cc', '--arg', 'C:\\Users']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i24/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i24/p) at 140133386074192 result = ['cc --arg "C:\\\\Users"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357c20d30> value = 'cc --arg "C:\\\\Users"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-cc --arg \\"C:\\\\Users"-expected25] __ tox_project = ._init at 0x7f7357c23eb0> sys_platform = 'win32', value = 'cc --arg \\"C:\\\\Users"' expected = ['cc', '--arg', '\\"C:\\\\Users"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg \\"C:\\\\Users"'] == [Command(args...\\\\Users"'])] E E At index 0 diff: 'cc --arg \\"C:\\\\Users"' != Command(args=['cc', '--arg', '\\"C:\\\\Users"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', '\\"C:\\\\Users"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i25/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i25/p) at 140133387063056 result = ['cc --arg \\"C:\\\\Users"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357c23eb0> value = 'cc --arg \\"C:\\\\Users"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users\\ "-expected26] _ tox_project = ._init at 0x7f7357c70940> sys_platform = 'win32', value = 'cc --arg "C:\\\\Users\\ "' expected = ['cc', '--arg', 'C:\\Users\\ '] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C:\\\\Users\\ "'] == [Command(args...\\Users\\ '])] E E At index 0 diff: 'cc --arg "C:\\\\Users\\ "' != Command(args=['cc', '--arg', 'C:\\Users\\ ']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users\\ '] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i26/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i26/p) at 140133389783952 result = ['cc --arg "C:\\\\Users\\ "'] sys_platform = 'win32' tox_project = ._init at 0x7f7357c70940> value = 'cc --arg "C:\\\\Users\\ "' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users\\\\"-expected27] _ tox_project = ._init at 0x7f7357c21630> sys_platform = 'win32', value = 'cc --arg "C:\\\\Users\\\\"' expected = ['cc', '--arg', 'C:\\Users\\'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C:\\\\Users\\\\"'] == [Command(args...:\\Users\\'])] E E At index 0 diff: 'cc --arg "C:\\\\Users\\\\"' != Command(args=['cc', '--arg', 'C:\\Users\\']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users\\'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i27/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i27/p) at 140133387685648 result = ['cc --arg "C:\\\\Users\\\\"'] sys_platform = 'win32' tox_project = ._init at 0x7f7357c21630> value = 'cc --arg "C:\\\\Users\\\\"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users\\\\ "-expected28] _ tox_project = ._init at 0x7f7357ce0af0> sys_platform = 'win32', value = 'cc --arg "C:\\\\Users\\\\ "' expected = ['cc', '--arg', 'C:\\Users\\ '] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C...\Users\\\\ "'] == [Command(args...\\Users\\ '])] E E At index 0 diff: 'cc --arg "C:\\\\Users\\\\ "' != Command(args=['cc', '--arg', 'C:\\Users\\ ']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users\\ '] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i28/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i28/p) at 140133387187296 result = ['cc --arg "C:\\\\Users\\\\ "'] sys_platform = 'win32' tox_project = ._init at 0x7f7357ce0af0> value = 'cc --arg "C:\\\\Users\\\\ "' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[win32-cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\-expected29] _ tox_project = ._init at 0x7f7357ce0b80> sys_platform = 'win32' value = 'cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\' expected = ['cc', '--arg', 'C:\\Users\\', '--arg2', 'SPECIAL:\\Temp\\f o o', '--arg3=\\FOO\\share\\Path name', ...] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg C:...IAL:\\Temp\\'] == [Command(args...L:\\Temp\\'])] E E At index 0 diff: 'cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\' != Command(args=['cc', '--arg', 'C:\\Users\\', '--arg2', 'SPECIAL:\\Temp\\f o o', '--arg3=\\FOO\\share\\Path name', '--arg4', 'SPECIAL:\\Temp\\']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users\\', '--arg2', 'SPECIAL:\\Temp\\f o o', '--arg3=\\FOO\\share\\Path name', ...] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i29/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i29/p) at 140133370992656 result = ['cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\'] sys_platform = 'win32' tox_project = ._init at 0x7f7357ce0b80> value = 'cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\' tests/config/loader/test_str_convert.py:221: AssertionError _______ test_shlex_platform_specific_ini[linux2-foo "bar baz"-expected0] _______ tox_project = ._init at 0x7f7357ce2e60> sys_platform = 'linux2', value = 'foo "bar baz"', expected = ['foo', 'bar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo "bar baz"'] == [Command(args..., 'bar baz'])] E E At index 0 diff: 'foo "bar baz"' != Command(args=['foo', 'bar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i30/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i30/p) at 140133387983440 result = ['foo "bar baz"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357ce2e60> value = 'foo "bar baz"' tests/config/loader/test_str_convert.py:221: AssertionError _____ test_shlex_platform_specific_ini[linux2-foo "bar baz"ext-expected1] ______ tox_project = ._init at 0x7f7357c737f0> sys_platform = 'linux2', value = 'foo "bar baz"ext' expected = ['foo', 'bar bazext'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo "bar baz"ext'] == [Command(args...bar bazext'])] E E At index 0 diff: 'foo "bar baz"ext' != Command(args=['foo', 'bar bazext']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar bazext'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i31/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i31/p) at 140133387682672 result = ['foo "bar baz"ext'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357c737f0> value = 'foo "bar baz"ext' tests/config/loader/test_str_convert.py:221: AssertionError _______ test_shlex_platform_specific_ini[linux2-foo="bar baz"-expected2] _______ tox_project = ._init at 0x7f7357c22830> sys_platform = 'linux2', value = 'foo="bar baz"', expected = ['foo=bar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo="bar baz"'] == [Command(args...oo=bar baz'])] E E At index 0 diff: 'foo="bar baz"' != Command(args=['foo=bar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=bar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i32/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i32/p) at 140133387086736 result = ['foo="bar baz"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357c22830> value = 'foo="bar baz"' tests/config/loader/test_str_convert.py:221: AssertionError _______ test_shlex_platform_specific_ini[linux2-foo 'bar baz'-expected3] _______ tox_project = ._init at 0x7f7357dbd090> sys_platform = 'linux2', value = "foo 'bar baz'", expected = ['foo', 'bar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["foo 'bar baz'"] == [Command(args..., 'bar baz'])] E E At index 0 diff: "foo 'bar baz'" != Command(args=['foo', 'bar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i33/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i33/p) at 140133385702224 result = ["foo 'bar baz'"] sys_platform = 'linux2' tox_project = ._init at 0x7f7357dbd090> value = "foo 'bar baz'" tests/config/loader/test_str_convert.py:221: AssertionError _____ test_shlex_platform_specific_ini[linux2-foo 'bar baz'ext-expected4] ______ tox_project = ._init at 0x7f7358d66f80> sys_platform = 'linux2', value = "foo 'bar baz'ext" expected = ['foo', 'bar bazext'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["foo 'bar baz'ext"] == [Command(args...bar bazext'])] E E At index 0 diff: "foo 'bar baz'ext" != Command(args=['foo', 'bar bazext']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar bazext'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i34/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i34/p) at 140133385115952 result = ["foo 'bar baz'ext"] sys_platform = 'linux2' tox_project = ._init at 0x7f7358d66f80> value = "foo 'bar baz'ext" tests/config/loader/test_str_convert.py:221: AssertionError _______ test_shlex_platform_specific_ini[linux2-foo='bar baz'-expected5] _______ tox_project = ._init at 0x7f7357eba830> sys_platform = 'linux2', value = "foo='bar baz'", expected = ['foo=bar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["foo='bar baz'"] == [Command(args...oo=bar baz'])] E E At index 0 diff: "foo='bar baz'" != Command(args=['foo=bar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=bar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i35/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i35/p) at 140133387254512 result = ["foo='bar baz'"] sys_platform = 'linux2' tox_project = ._init at 0x7f7357eba830> value = "foo='bar baz'" tests/config/loader/test_str_convert.py:221: AssertionError _____ test_shlex_platform_specific_ini[linux2-foo=\\"bar baz\\"-expected6] _____ tox_project = ._init at 0x7f7357c701f0> sys_platform = 'linux2', value = 'foo=\\"bar baz\\"' expected = ['foo="bar', 'baz"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo=\\"bar baz\\"'] == [Command(args...ar', 'baz"'])] E E At index 0 diff: 'foo=\\"bar baz\\"' != Command(args=['foo="bar', 'baz"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo="bar', 'baz"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i36/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i36/p) at 140133387290560 result = ['foo=\\"bar baz\\"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357c701f0> value = 'foo=\\"bar baz\\"' tests/config/loader/test_str_convert.py:221: AssertionError ______ test_shlex_platform_specific_ini[linux2-foo="bar baz\\"-expected7] ______ tox_project = ._init at 0x7f7357ce0d30> sys_platform = 'linux2', value = 'foo="bar baz\\"' expected = ['foo="bar baz\\"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo="bar baz\\"'] == [Command(args...bar baz\\"'])] E E At index 0 diff: 'foo="bar baz\\"' != Command(args=['foo="bar baz\\"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo="bar baz\\"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i37/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i37/p) at 140133387308240 result = ['foo="bar baz\\"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357ce0d30> value = 'foo="bar baz\\"' tests/config/loader/test_str_convert.py:221: AssertionError ____ test_shlex_platform_specific_ini[linux2-foo='bar baz' quuc-expected8] _____ tox_project = ._init at 0x7f7357ce2710> sys_platform = 'linux2', value = "foo='bar baz' quuc" expected = ['foo=bar baz', 'quuc'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["foo='bar baz' quuc"] == [Command(args...az', 'quuc'])] E E At index 0 diff: "foo='bar baz' quuc" != Command(args=['foo=bar baz', 'quuc']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=bar baz', 'quuc'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i38/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i38/p) at 140133389792832 result = ["foo='bar baz' quuc"] sys_platform = 'linux2' tox_project = ._init at 0x7f7357ce2710> value = "foo='bar baz' quuc" tests/config/loader/test_str_convert.py:221: AssertionError ___ test_shlex_platform_specific_ini[linux2-foo='bar baz\\' quuc-expected9] ____ tox_project = ._init at 0x7f7357b3d3f0> sys_platform = 'linux2', value = "foo='bar baz\\' quuc" expected = ['foo=bar baz\\', 'quuc'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["foo='bar baz\\' quuc"] == [Command(args...\\', 'quuc'])] E E At index 0 diff: "foo='bar baz\\' quuc" != Command(args=['foo=bar baz\\', 'quuc']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=bar baz\\', 'quuc'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i39/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i39/p) at 140133369433056 result = ["foo='bar baz\\' quuc"] sys_platform = 'linux2' tox_project = ._init at 0x7f7357b3d3f0> value = "foo='bar baz\\' quuc" tests/config/loader/test_str_convert.py:221: AssertionError __ test_shlex_platform_specific_ini[linux2-foo=\\"bar baz\\' quuc-expected10] __ tox_project = ._init at 0x7f7357b3d750> sys_platform = 'linux2', value = 'foo=\\"bar baz\\\' quuc' expected = ['foo="bar', "baz'", 'quuc'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo=\\"bar baz\\\' quuc'] == [Command(args...z'", 'quuc'])] E E At index 0 diff: 'foo=\\"bar baz\\\' quuc' != Command(args=['foo="bar', "baz'", 'quuc']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo="bar', "baz'", 'quuc'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i40/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i40/p) at 140133387547408 result = ['foo=\\"bar baz\\\' quuc'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357b3d750> value = 'foo=\\"bar baz\\\' quuc' tests/config/loader/test_str_convert.py:221: AssertionError __ test_shlex_platform_specific_ini[linux2-foo=\\\\\\"bar baz\\"-expected11] ___ tox_project = ._init at 0x7f7357b3fbe0> sys_platform = 'linux2', value = 'foo=\\\\\\"bar baz\\"' expected = ['foo=\\"bar', 'baz"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo=\\\\\\"bar baz\\"'] == [Command(args...ar', 'baz"'])] E E At index 0 diff: 'foo=\\\\\\"bar baz\\"' != Command(args=['foo=\\"bar', 'baz"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=\\"bar', 'baz"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i41/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i41/p) at 140133388115280 result = ['foo=\\\\\\"bar baz\\"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357b3fbe0> value = 'foo=\\\\\\"bar baz\\"' tests/config/loader/test_str_convert.py:221: AssertionError ___ test_shlex_platform_specific_ini[linux2-foo=\\\\"bar baz\\"-expected12] ____ tox_project = ._init at 0x7f7357b3fac0> sys_platform = 'linux2', value = 'foo=\\\\"bar baz\\"' expected = ['foo=\\\\"bar baz\\"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo=\\\\"bar baz\\"'] == [Command(args...bar baz\\"'])] E E At index 0 diff: 'foo=\\\\"bar baz\\"' != Command(args=['foo=\\\\"bar baz\\"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo=\\\\"bar baz\\"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i42/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i42/p) at 140133387985504 result = ['foo=\\\\"bar baz\\"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357b3fac0> value = 'foo=\\\\"bar baz\\"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-foo\\\n "bar\\\n baz"-expected13] _ tox_project = ._init at 0x7f7357b3ff40> sys_platform = 'linux2', value = 'foo\\\n "bar\\\n baz"' expected = ['foobarbaz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo"barbaz"'] == [Command(args=['foobarbaz'])] E E At index 0 diff: 'foo"barbaz"' != Command(args=['foobarbaz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foobarbaz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i43/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i43/p) at 140133371189456 result = ['foo"barbaz"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357b3ff40> value = 'foo\\\n "bar\\\n baz"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-foo\\\n "bar \\\n baz"-expected14] _ tox_project = ._init at 0x7f7357b3f5b0> sys_platform = 'linux2', value = 'foo\\\n "bar \\\n baz"' expected = ['foobar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo"bar baz"'] == [Command(args=['foobar baz'])] E E At index 0 diff: 'foo"bar baz"' != Command(args=['foobar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foobar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i44/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i44/p) at 140133387613040 result = ['foo"bar baz"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357b3f5b0> value = 'foo\\\n "bar \\\n baz"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-foo \\\n "bar\\\n baz"-expected15] _ tox_project = ._init at 0x7f7357bf41f0> sys_platform = 'linux2', value = 'foo \\\n "bar\\\n baz"' expected = ['foo', 'barbaz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo "barbaz"'] == [Command(args...', 'barbaz'])] E E At index 0 diff: 'foo "barbaz"' != Command(args=['foo', 'barbaz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'barbaz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i45/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i45/p) at 140133370032336 result = ['foo "barbaz"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357bf41f0> value = 'foo \\\n "bar\\\n baz"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-foo \\\n "bar \\\n baz"-expected16] _ tox_project = ._init at 0x7f7357b9eb00> sys_platform = 'linux2', value = 'foo \\\n "bar \\\n baz"' expected = ['foo', 'bar baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo "bar baz"'] == [Command(args..., 'bar baz'])] E E At index 0 diff: 'foo "bar baz"' != Command(args=['foo', 'bar baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i46/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i46/p) at 140133368342672 result = ['foo "bar baz"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357b9eb00> value = 'foo \\\n "bar \\\n baz"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-foo \\\n \\"bar \\\n baz"-expected17] _ tox_project = ._init at 0x7f7357a38280> sys_platform = 'linux2', value = 'foo \\\n \\"bar \\\n baz"' expected = ['foo', '"bar', 'baz"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['foo \\"bar baz"'] == [Command(args...ar', 'baz"'])] E E At index 0 diff: 'foo \\"bar baz"' != Command(args=['foo', '"bar', 'baz"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', '"bar', 'baz"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i47/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i47/p) at 140133368395664 result = ['foo \\"bar baz"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357a38280> value = 'foo \\\n \\"bar \\\n baz"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-foo \\\n bar \\\n baz-expected18] _ tox_project = ._init at 0x7f7357a38310> sys_platform = 'linux2', value = 'foo \\\n bar \\\n baz' expected = ['foo', 'bar', 'baz'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E AssertionError: assert ['foo bar baz'] == [Command(args...bar', 'baz'])] E E At index 0 diff: 'foo bar baz' != Command(args=['foo', 'bar', 'baz']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['foo', 'bar', 'baz'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i48/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i48/p) at 140133384887392 result = ['foo bar baz'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357a38310> value = 'foo \\\n bar \\\n baz' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-SPECIAL:\\foo\\bar --quuz='baz atan'-expected19] _ tox_project = ._init at 0x7f7357ce2170> sys_platform = 'linux2', value = "SPECIAL:\\foo\\bar --quuz='baz atan'" expected = ['SPECIAL:foobar', '--quuz=baz atan'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["SPECIAL:\\f...z='baz atan'"] == [Command(args...z=baz atan'])] E E At index 0 diff: "SPECIAL:\\foo\\bar --quuz='baz atan'" != Command(args=['SPECIAL:foobar', '--quuz=baz atan']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['SPECIAL:foobar', '--quuz=baz atan'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i49/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i49/p) at 140133368337152 result = ["SPECIAL:\\foo\\bar --quuz='baz atan'"] sys_platform = 'linux2' tox_project = ._init at 0x7f7357ce2170> value = "SPECIAL:\\foo\\bar --quuz='baz atan'" tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-X:\\\\foo\\\\bar --quuz='baz atan'-expected20] _ tox_project = ._init at 0x7f7357a3ab00> sys_platform = 'linux2', value = "X:\\\\foo\\\\bar --quuz='baz atan'" expected = ['X:\\foo\\bar', '--quuz=baz atan'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["X:\\\\foo\\...z='baz atan'"] == [Command(args...z=baz atan'])] E E At index 0 diff: "X:\\\\foo\\\\bar --quuz='baz atan'" != Command(args=['X:\\foo\\bar', '--quuz=baz atan']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['X:\\foo\\bar', '--quuz=baz atan'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i50/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i50/p) at 140133368874080 result = ["X:\\\\foo\\\\bar --quuz='baz atan'"] sys_platform = 'linux2' tox_project = ._init at 0x7f7357a3ab00> value = "X:\\\\foo\\\\bar --quuz='baz atan'" tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-/foo/bar --quuz='baz atan'-expected21] _ tox_project = ._init at 0x7f7357bf6ef0> sys_platform = 'linux2', value = "/foo/bar --quuz='baz atan'" expected = ['/foo/bar', '--quuz=baz atan'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ["/foo/bar --quuz='baz atan'"] == [Command(args...z=baz atan'])] E E At index 0 diff: "/foo/bar --quuz='baz atan'" != Command(args=['/foo/bar', '--quuz=baz atan']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['/foo/bar', '--quuz=baz atan'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i51/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i51/p) at 140133369012640 result = ["/foo/bar --quuz='baz atan'"] sys_platform = 'linux2' tox_project = ._init at 0x7f7357bf6ef0> value = "/foo/bar --quuz='baz atan'" tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users\\""-expected22] _ tox_project = ._init at 0x7f7357aadb40> sys_platform = 'linux2', value = 'cc --arg "C:\\\\Users\\""' expected = ['cc', '--arg', 'C:\\Users"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C:\\\\Users\\""'] == [Command(args...C:\\Users"'])] E E At index 0 diff: 'cc --arg "C:\\\\Users\\""' != Command(args=['cc', '--arg', 'C:\\Users"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i52/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i52/p) at 140133367068896 result = ['cc --arg "C:\\\\Users\\""'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357aadb40> value = 'cc --arg "C:\\\\Users\\""' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users\\"-expected23] _ tox_project = ._init at 0x7f7357aae8c0> sys_platform = 'linux2', value = 'cc --arg "C:\\\\Users\\"' expected = ['cc', '--arg', '"C:\\\\Users\\"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C:\\\\Users\\"'] == [Command(args...\\Users\\"'])] E E At index 0 diff: 'cc --arg "C:\\\\Users\\"' != Command(args=['cc', '--arg', '"C:\\\\Users\\"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', '"C:\\\\Users\\"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i53/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i53/p) at 140133367103984 result = ['cc --arg "C:\\\\Users\\"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357aae8c0> value = 'cc --arg "C:\\\\Users\\"' tests/config/loader/test_str_convert.py:221: AssertionError __ test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users"-expected24] __ tox_project = ._init at 0x7f7357aafb50> sys_platform = 'linux2', value = 'cc --arg "C:\\\\Users"' expected = ['cc', '--arg', 'C:\\Users'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C:\\\\Users"'] == [Command(args...'C:\\Users'])] E E At index 0 diff: 'cc --arg "C:\\\\Users"' != Command(args=['cc', '--arg', 'C:\\Users']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i54/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i54/p) at 140133368290736 result = ['cc --arg "C:\\\\Users"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357aafb50> value = 'cc --arg "C:\\\\Users"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-cc --arg \\"C:\\\\Users"-expected25] _ tox_project = ._init at 0x7f7357922290> sys_platform = 'linux2', value = 'cc --arg \\"C:\\\\Users"' expected = ['cc', '--arg', '\\"C:\\\\Users"'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg \\"C:\\\\Users"'] == [Command(args...\\\\Users"'])] E E At index 0 diff: 'cc --arg \\"C:\\\\Users"' != Command(args=['cc', '--arg', '\\"C:\\\\Users"']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', '\\"C:\\\\Users"'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i55/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i55/p) at 140133367487968 result = ['cc --arg \\"C:\\\\Users"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357922290> value = 'cc --arg \\"C:\\\\Users"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users\\ "-expected26] _ tox_project = ._init at 0x7f7357aaf880> sys_platform = 'linux2', value = 'cc --arg "C:\\\\Users\\ "' expected = ['cc', '--arg', 'C:\\Users\\ '] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C:\\\\Users\\ "'] == [Command(args...\\Users\\ '])] E E At index 0 diff: 'cc --arg "C:\\\\Users\\ "' != Command(args=['cc', '--arg', 'C:\\Users\\ ']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users\\ '] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i56/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i56/p) at 140133367074720 result = ['cc --arg "C:\\\\Users\\ "'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357aaf880> value = 'cc --arg "C:\\\\Users\\ "' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users\\\\"-expected27] _ tox_project = ._init at 0x7f7357984040> sys_platform = 'linux2', value = 'cc --arg "C:\\\\Users\\\\"' expected = ['cc', '--arg', 'C:\\Users\\'] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C:\\\\Users\\\\"'] == [Command(args...:\\Users\\'])] E E At index 0 diff: 'cc --arg "C:\\\\Users\\\\"' != Command(args=['cc', '--arg', 'C:\\Users\\']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users\\'] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i57/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i57/p) at 140133367752416 result = ['cc --arg "C:\\\\Users\\\\"'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357984040> value = 'cc --arg "C:\\\\Users\\\\"' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users\\\\ "-expected28] _ tox_project = ._init at 0x7f7357b9d2d0> sys_platform = 'linux2', value = 'cc --arg "C:\\\\Users\\\\ "' expected = ['cc', '--arg', 'C:\\Users\\ '] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg "C...\Users\\\\ "'] == [Command(args...\\Users\\ '])] E E At index 0 diff: 'cc --arg "C:\\\\Users\\\\ "' != Command(args=['cc', '--arg', 'C:\\Users\\ ']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users\\ '] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i58/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i58/p) at 140133387222848 result = ['cc --arg "C:\\\\Users\\\\ "'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357b9d2d0> value = 'cc --arg "C:\\\\Users\\\\ "' tests/config/loader/test_str_convert.py:221: AssertionError _ test_shlex_platform_specific_ini[linux2-cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\-expected29] _ tox_project = ._init at 0x7f7357c73880> sys_platform = 'linux2' value = 'cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\' expected = ['cc', '--arg', 'C:\\Users\\', '--arg2', 'SPECIAL:\\Temp\\f o o', '--arg3=\\FOO\\share\\Path name', ...] @pytest.mark.parametrize( ("value", "expected"), [ *SIMPLE_ARGS, *INI_CONFIG_NEWLINE_ARGS, *WINDOWS_PATH_ARGS, # *WACKY_SLASH_ARGS, ], ) def test_shlex_platform_specific_ini( tox_project: ToxProjectCreator, sys_platform: str, value: str, expected: list[str], ) -> None: if sys_platform != "win32" and value.startswith("SPECIAL:"): # on non-windows platform, backslash is always an escape, not path separator expected = [exp.replace("\\", "") for exp in expected] project = tox_project( { "tox.ini": dedent( """ [testenv] commands = %s""", ) % value, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") result = env_config["commands"] > assert result == [Command(args=expected)] E assert ['cc --arg C:...IAL:\\Temp\\'] == [Command(args...L:\\Temp\\'])] E E At index 0 diff: 'cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\' != Command(args=['cc', '--arg', 'C:\\Users\\', '--arg2', 'SPECIAL:\\Temp\\f o o', '--arg3=\\FOO\\share\\Path name', '--arg4', 'SPECIAL:\\Temp\\']) E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) expected = ['cc', '--arg', 'C:\\Users\\', '--arg2', 'SPECIAL:\\Temp\\f o o', '--arg3=\\FOO\\share\\Path name', ...] outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i59/p stan...tem_site_packages = False always_copy = False download = False skip_install = False use_develop = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_shlex_platform_specific_i59/p) at 140133368461488 result = ['cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\'] sys_platform = 'linux2' tox_project = ._init at 0x7f7357c73880> value = 'cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\' tests/config/loader/test_str_convert.py:221: AssertionError ___________________________ test_toml_loader_list_ok ___________________________ def test_toml_loader_list_ok() -> None: > assert perform_load(["a"], list[str]) == ["a"] tests/config/loader/test_toml_loader.py:62: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': ['a']}) of_type = list[str] value = ['a'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = list[str] overrides = [] raw = ['a'] self = TomlLoader(env.A, {'k': ['a']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = ['a'] factory = key = 'k' of_type = list[str] raw = ['a'] self = TomlLoader(env.A, {'k': ['a']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = list[str] raw = ['a'] self = TomlLoader(env.A, {'k': ['a']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[str]] of_type = list[str] value = ['a'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[str] msg = '' of_type = list[list[str]] va = 'a' val = ['a'] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'a', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'a' is not list casting_to = entry_type = msg = "'a' is not list" of_type = list[str] val = 'a' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ______________________ test_toml_loader_list_nok_element _______________________ def test_toml_loader_list_nok_element() -> None: with pytest.raises(TypeError, match="2 is not of type 'str'"): > perform_load(["a", 2], list[str]) tests/config/loader/test_toml_loader.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': ['a', 2]}) of_type = list[str] value = ['a', 2] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = list[str] overrides = [] raw = ['a', 2] self = TomlLoader(env.A, {'k': ['a', 2]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = ['a', 2] factory = key = 'k' of_type = list[str] raw = ['a', 2] self = TomlLoader(env.A, {'k': ['a', 2]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = list[str] raw = ['a', 2] self = TomlLoader(env.A, {'k': ['a', 2]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[str]] of_type = list[str] value = ['a', 2] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[str] msg = '' of_type = list[list[str]] va = 'a' val = ['a', 2] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'a', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'a' is not list casting_to = entry_type = msg = "'a' is not list" of_type = list[str] val = 'a' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError During handling of the above exception, another exception occurred: def test_toml_loader_list_nok_element() -> None: > with pytest.raises(TypeError, match="2 is not of type 'str'"): E AssertionError: Regex pattern did not match. E Regex: "2 is not of type 'str'" E Input: "'a' is not list" tests/config/loader/test_toml_loader.py:71: AssertionError ___________________________ test_toml_loader_dict_ok ___________________________ def test_toml_loader_dict_ok() -> None: > assert perform_load({"a": "1"}, dict[str, str]) == {"a": "1"} tests/config/loader/test_toml_loader.py:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': {'a': '1'}}) of_type = dict[str, str] value = {'a': '1'} ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = dict[str, str] overrides = [] raw = {'a': '1'} self = TomlLoader(env.A, {'k': {'a': '1'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = {'a': '1'} factory = key = 'k' of_type = dict[str, str] raw = {'a': '1'} self = TomlLoader(env.A, {'k': {'a': '1'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = dict[str, str] raw = {'a': '1'} self = TomlLoader(env.A, {'k': {'a': '1'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[dict[str, str]] of_type = dict[str, str] value = {'a': '1'} _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = {'a': '1'}, of_type = list[dict[str, str]] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: {'a': '1'} is not list casting_to = entry_type = dict[str, str] msg = "{'a': '1'} is not list" of_type = list[dict[str, str]] val = {'a': '1'} ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError __________________________ test_toml_loader_dict_nok ___________________________ def test_toml_loader_dict_nok() -> None: with pytest.raises(TypeError, match="{'a'} is not dictionary"): > perform_load({"a"}, dict[str, str]) tests/config/loader/test_toml_loader.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': {'a'}}) of_type = dict[str, str] value = {'a'} ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = dict[str, str] overrides = [] raw = {'a'} self = TomlLoader(env.A, {'k': {'a'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = {'a'} factory = key = 'k' of_type = dict[str, str] raw = {'a'} self = TomlLoader(env.A, {'k': {'a'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = dict[str, str] raw = {'a'} self = TomlLoader(env.A, {'k': {'a'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[dict[str, str]] of_type = dict[str, str] value = {'a'} _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = {'a'}, of_type = list[dict[str, str]] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: {'a'} is not list casting_to = entry_type = dict[str, str] msg = "{'a'} is not list" of_type = list[dict[str, str]] val = {'a'} ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError During handling of the above exception, another exception occurred: def test_toml_loader_dict_nok() -> None: > with pytest.raises(TypeError, match="{'a'} is not dictionary"): E AssertionError: Regex pattern did not match. E Regex: "{'a'} is not dictionary" E Input: "{'a'} is not list" tests/config/loader/test_toml_loader.py:80: AssertionError ________________________ test_toml_loader_dict_nok_key _________________________ def test_toml_loader_dict_nok_key() -> None: with pytest.raises(TypeError, match="1 is not of type 'str'"): > perform_load({"a": 1, 1: "2"}, dict[str, int]) tests/config/loader/test_toml_loader.py:86: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': {'a': 1, 1: '2'}}) of_type = dict[str, int] value = {'a': 1, 1: '2'} ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = dict[str, int] overrides = [] raw = {'a': 1, 1: '2'} self = TomlLoader(env.A, {'k': {'a': 1, 1: '2'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = {'a': 1, 1: '2'} factory = key = 'k' of_type = dict[str, int] raw = {'a': 1, 1: '2'} self = TomlLoader(env.A, {'k': {'a': 1, 1: '2'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = dict[str, int] raw = {'a': 1, 1: '2'} self = TomlLoader(env.A, {'k': {'a': 1, 1: '2'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[dict[str, int]] of_type = dict[str, int] value = {'a': 1, 1: '2'} _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = {'a': 1, 1: '2'}, of_type = list[dict[str, int]] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: {'a': 1, 1: '2'} is not list casting_to = entry_type = dict[str, int] msg = "{'a': 1, 1: '2'} is not list" of_type = list[dict[str, int]] val = {'a': 1, 1: '2'} ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError During handling of the above exception, another exception occurred: def test_toml_loader_dict_nok_key() -> None: > with pytest.raises(TypeError, match="1 is not of type 'str'"): E AssertionError: Regex pattern did not match. E Regex: "1 is not of type 'str'" E Input: "{'a': 1, 1: '2'} is not list" tests/config/loader/test_toml_loader.py:85: AssertionError _______________________ test_toml_loader_dict_nok_value ________________________ def test_toml_loader_dict_nok_value() -> None: with pytest.raises(TypeError, match="'2' is not of type 'int'"): > perform_load({"a": 1, "b": "2"}, dict[str, int]) tests/config/loader/test_toml_loader.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': {'a': 1, 'b': '2'}}) of_type = dict[str, int] value = {'a': 1, 'b': '2'} ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = dict[str, int] overrides = [] raw = {'a': 1, 'b': '2'} self = TomlLoader(env.A, {'k': {'a': 1, 'b': '2'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = {'a': 1, 'b': '2'} factory = key = 'k' of_type = dict[str, int] raw = {'a': 1, 'b': '2'} self = TomlLoader(env.A, {'k': {'a': 1, 'b': '2'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = dict[str, int] raw = {'a': 1, 'b': '2'} self = TomlLoader(env.A, {'k': {'a': 1, 'b': '2'}}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[dict[str, int]] of_type = dict[str, int] value = {'a': 1, 'b': '2'} _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = {'a': 1, 'b': '2'}, of_type = list[dict[str, int]] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: {'a': 1, 'b': '2'} is not list casting_to = entry_type = dict[str, int] msg = "{'a': 1, 'b': '2'} is not list" of_type = list[dict[str, int]] val = {'a': 1, 'b': '2'} ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError During handling of the above exception, another exception occurred: def test_toml_loader_dict_nok_value() -> None: > with pytest.raises(TypeError, match="'2' is not of type 'int'"): E AssertionError: Regex pattern did not match. E Regex: "'2' is not of type 'int'" E Input: "{'a': 1, 'b': '2'} is not list" tests/config/loader/test_toml_loader.py:90: AssertionError _________________________ test_toml_loader_command_ok __________________________ def test_toml_loader_command_ok() -> None: > commands = perform_load([["a", "b"], ["c"]], list[Command]) tests/config/loader/test_toml_loader.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': [['a', 'b'], ['c']]}) of_type = list[tox.config.types.Command] value = [['a', 'b'], ['c']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = list[tox.config.types.Command] overrides = [] raw = [['a', 'b'], ['c']] self = TomlLoader(env.A, {'k': [['a', 'b'], ['c']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = [['a', 'b'], ['c']] factory = key = 'k' of_type = list[tox.config.types.Command] raw = [['a', 'b'], ['c']] self = TomlLoader(env.A, {'k': [['a', 'b'], ['c']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['a', 'b'], ['c']] self = TomlLoader(env.A, {'k': [['a', 'b'], ['c']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['a', 'b'], ['c']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['a', 'b'] val = [['a', 'b'], ['c']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'a' val = ['a', 'b'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'a' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'a', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'a' is not list casting_to = entry_type = msg = "'a' is not list" of_type = list[str] val = 'a' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError _________________________ test_toml_loader_command_nok _________________________ def test_toml_loader_command_nok() -> None: with pytest.raises(TypeError, match="1 is not of type 'str'"): > perform_load([["a", 1]], list[Command]) tests/config/loader/test_toml_loader.py:115: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': [['a', 1]]}) of_type = list[tox.config.types.Command] value = [['a', 1]] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = list[tox.config.types.Command] overrides = [] raw = [['a', 1]] self = TomlLoader(env.A, {'k': [['a', 1]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = [['a', 1]] factory = key = 'k' of_type = list[tox.config.types.Command] raw = [['a', 1]] self = TomlLoader(env.A, {'k': [['a', 1]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['a', 1]] self = TomlLoader(env.A, {'k': [['a', 1]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['a', 1]] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['a', 1] val = [['a', 1]] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'a' val = ['a', 1] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'a' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'a', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'a' is not list casting_to = entry_type = msg = "'a' is not list" of_type = list[str] val = 'a' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError During handling of the above exception, another exception occurred: def test_toml_loader_command_nok() -> None: > with pytest.raises(TypeError, match="1 is not of type 'str'"): E AssertionError: Regex pattern did not match. E Regex: "1 is not of type 'str'" E Input: "'a' is not list" tests/config/loader/test_toml_loader.py:114: AssertionError ______________________ test_toml_loader_list_optional_ok _______________________ def test_toml_loader_list_optional_ok() -> None: > assert perform_load(["a", None], list[Optional[str]]) == ["a", None] tests/config/loader/test_toml_loader.py:130: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': ['a', None]}) of_type = list[typing.Optional[str]] value = ['a', None] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = list[typing.Optional[str]] overrides = [] raw = ['a', None] self = TomlLoader(env.A, {'k': ['a', None]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = ['a', None] factory = key = 'k' of_type = list[typing.Optional[str]] raw = ['a', None] self = TomlLoader(env.A, {'k': ['a', None]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = list[typing.Optional[str]] raw = ['a', None] self = TomlLoader(env.A, {'k': ['a', None]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[typing.Optional[str]]] of_type = list[typing.Optional[str]] value = ['a', None] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[typing.Optional[str]] msg = '' of_type = list[list[typing.Optional[str]]] va = 'a' val = ['a', None] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'a', of_type = list[typing.Optional[str]] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'a' is not list casting_to = entry_type = typing.Optional[str] msg = "'a' is not list" of_type = list[typing.Optional[str]] val = 'a' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ______________________ test_toml_loader_list_optional_nok ______________________ def test_toml_loader_list_optional_nok() -> None: with pytest.raises(TypeError, match="1 is not union of str, NoneType"): > perform_load(["a", None, 1], list[Optional[str]]) tests/config/loader/test_toml_loader.py:135: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': ['a', None, 1]}) of_type = list[typing.Optional[str]] value = ['a', None, 1] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = list[typing.Optional[str]] overrides = [] raw = ['a', None, 1] self = TomlLoader(env.A, {'k': ['a', None, 1]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = ['a', None, 1] factory = key = 'k' of_type = list[typing.Optional[str]] raw = ['a', None, 1] self = TomlLoader(env.A, {'k': ['a', None, 1]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = list[typing.Optional[str]] raw = ['a', None, 1] self = TomlLoader(env.A, {'k': ['a', None, 1]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[typing.Optional[str]]] of_type = list[typing.Optional[str]] value = ['a', None, 1] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[typing.Optional[str]] msg = '' of_type = list[list[typing.Optional[str]]] va = 'a' val = ['a', None, 1] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'a', of_type = list[typing.Optional[str]] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'a' is not list casting_to = entry_type = typing.Optional[str] msg = "'a' is not list" of_type = list[typing.Optional[str]] val = 'a' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError During handling of the above exception, another exception occurred: def test_toml_loader_list_optional_nok() -> None: > with pytest.raises(TypeError, match="1 is not union of str, NoneType"): E AssertionError: Regex pattern did not match. E Regex: '1 is not union of str, NoneType' E Input: "'a' is not list" tests/config/loader/test_toml_loader.py:134: AssertionError _______________________ test_toml_loader_list_literal_ok _______________________ def test_toml_loader_list_literal_ok() -> None: > assert perform_load(["a", "b"], list[Literal["a", "b"]]) == ["a", "b"] tests/config/loader/test_toml_loader.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': ['a', 'b']}) of_type = list[typing.Literal['a', 'b']] value = ['a', 'b'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = list[typing.Literal['a', 'b']] overrides = [] raw = ['a', 'b'] self = TomlLoader(env.A, {'k': ['a', 'b']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = ['a', 'b'] factory = key = 'k' of_type = list[typing.Literal['a', 'b']] raw = ['a', 'b'] self = TomlLoader(env.A, {'k': ['a', 'b']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = list[typing.Literal['a', 'b']] raw = ['a', 'b'] self = TomlLoader(env.A, {'k': ['a', 'b']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[typing.Literal['a', 'b']]] of_type = list[typing.Literal['a', 'b']] value = ['a', 'b'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[typing.Literal['a', 'b']] msg = '' of_type = list[list[typing.Literal['a', 'b']]] va = 'a' val = ['a', 'b'] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'a', of_type = list[typing.Literal['a', 'b']] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'a' is not list casting_to = entry_type = typing.Literal['a', 'b'] msg = "'a' is not list" of_type = list[typing.Literal['a', 'b']] val = 'a' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ______________________ test_toml_loader_list_literal_nok _______________________ def test_toml_loader_list_literal_nok() -> None: with pytest.raises(TypeError, match="'c' is not one of literal 'a','b'"): > perform_load(["a", "c"], list[Literal["a", "b"]]) tests/config/loader/test_toml_loader.py:144: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/config/loader/test_toml_loader.py:40: in perform_load return loader.load(key, of_type, factory_na, None, args) # type: ignore[arg-type] args = env_name = 'A' key = 'k' loader = TomlLoader(env.A, {'k': ['a', 'c']}) of_type = list[typing.Literal['a', 'b']] value = ['a', 'c'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = None factory = key = 'k' of_type = list[typing.Literal['a', 'b']] overrides = [] raw = ['a', 'c'] self = TomlLoader(env.A, {'k': ['a', 'c']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = None exploded = ['a', 'c'] factory = key = 'k' of_type = list[typing.Literal['a', 'b']] raw = ['a', 'c'] self = TomlLoader(env.A, {'k': ['a', 'c']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = from_module = 'builtins' of_type = list[typing.Literal['a', 'b']] raw = ['a', 'c'] self = TomlLoader(env.A, {'k': ['a', 'c']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[typing.Literal['a', 'b']]] of_type = list[typing.Literal['a', 'b']] value = ['a', 'c'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[typing.Literal['a', 'b']] msg = '' of_type = list[list[typing.Literal['a', 'b']]] va = 'a' val = ['a', 'c'] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'a', of_type = list[typing.Literal['a', 'b']] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'a' is not list casting_to = entry_type = typing.Literal['a', 'b'] msg = "'a' is not list" of_type = list[typing.Literal['a', 'b']] val = 'a' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError During handling of the above exception, another exception occurred: def test_toml_loader_list_literal_nok() -> None: > with pytest.raises(TypeError, match="'c' is not one of literal 'a','b'"): E AssertionError: Regex pattern did not match. E Regex: "'c' is not one of literal 'a','b'" E Input: "'a' is not list" tests/config/loader/test_toml_loader.py:143: AssertionError ___________________________ test_config_in_toml_core ___________________________ tox_project = ._init at 0x7f73578616c0> def test_config_in_toml_core(tox_project: ToxProjectCreator) -> None: project = tox_project({ "pyproject.toml": """ [tool.tox] env_list = [ "A", "B"] [tool.tox.env_run_base] description = "Do magical things" commands = [ ["python", "--version"], ["python", "-c", "import sys; print(sys.executable)"] ] """ }) > outcome = project.run("c", "--core") project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core0/p) at 140133368391920 tox_project = ._init at 0x7f73578616c0> tests/config/source/test_toml_pyproject.py:27: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '--core') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7357a4df30> our_setup_state = .our_setup_state at 0x7f7357bf65f0> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core0/p) at 140133368391920 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '--core') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '--core') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73579863b0> done = {'A'} is_colored = False is_first = False keys = [] name = 'A' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = [] tox_env = VirtualEnvRunner(name=A) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] as_str = '' conf = EnvConfigSet(name='A', loaders=[TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]})]) is_colored = False key = 'commands' keys = [] multi_line = False value = [] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'tool.tox.env_run_base.commands' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core0/p/pyproject.toml)) key = 'commands' loader = TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]}) loaders = [TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]})] self = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core0/p/pyproject.toml)) factory = None key = 'commands' of_type = list[tox.config.types.Command] overrides = [] raw = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] self = TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core0/p/pyproject.toml)) exploded = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] factory = None key = 'commands' of_type = list[tox.config.types.Command] raw = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] self = TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] self = TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['python', '--version'] val = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'python' val = ['python', '--version'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'python' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'python', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'python' is not list casting_to = entry_type = msg = "'python' is not list" of_type = list[str] val = 'python' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:A] type = VirtualEnvRunner set_env = PIP_DISABLE_PIP_VERSION_CHECK=1 PYTHONHASHSEED=82648069 PYTHONIOENCODING=utf-8 base = tool.tox.env_run_base runner = virtualenv description = Do magical things depends = env_name = A labels = env_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core0/p/.tox/A env_tmp_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core0/p/.tox/A/tmp env_log_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core0/p/.tox/A/log suicide_timeout = 0.0 interrupt_timeout = 0.3 terminate_timeout = 0.2 platform = pass_env = CC CCSHARED CFLAGS CPPFLAGS CURL_CA_BUNDLE CXX FORCE_COLOR HOME LANG LANGUAGE LDFLAGS LD_LIBRARY_PATH NETRC NO_COLOR PIP_* PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_SYSROOT_DIR REQUESTS_CA_BUNDLE SSL_CERT_FILE TMPDIR VIRTUALENV_* http_proxy https_proxy no_proxy parallel_show_output = False recreate = False allowlist_externals = list_dependencies_command = python -m pip freeze --all pip_pre = False install_command = python -I -m pip install '{packages}' constrain_package_deps = False use_frozen_constraints = False commands_pre = _______________________ test_config_in_toml_non_default ________________________ tox_project = ._init at 0x7f7357862cb0> def test_config_in_toml_non_default(tox_project: ToxProjectCreator) -> None: project = tox_project({ "pyproject.toml": """ [tool.tox.env.C] description = "Do magical things in C" commands = [ ["python", "--version"] ] """ }) > outcome = project.run("c", "-e", "C", "--core") project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul0/p) at 140133368883056 tox_project = ._init at 0x7f7357862cb0> tests/config/source/test_toml_pyproject.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'C', '--core') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73578cadd0> our_setup_state = .our_setup_state at 0x7f7357861510> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul0/p) at 140133368883056 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'C', '--core') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '-e', 'C', '--core') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73578d2b00> done = {'C'} is_colored = False is_first = False keys = [] name = 'C' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = [] tox_env = VirtualEnvRunner(name=C) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] as_str = '' conf = EnvConfigSet(name='C', loaders=[TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]})]) is_colored = False key = 'commands' keys = [] multi_line = False value = [] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'commands' self = EnvConfigSet(name='C', loaders=[TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) item = 'commands' self = EnvConfigSet(name='C', loaders=[TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'tool.tox.env.C.commands' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul0/p/pyproject.toml)) key = 'commands' loader = TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]}) loaders = [TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]})] self = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul0/p/pyproject.toml)) factory = None key = 'commands' of_type = list[tox.config.types.Command] overrides = [] raw = [['python', '--version']] self = TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul0/p/pyproject.toml)) exploded = [['python', '--version']] factory = None key = 'commands' of_type = list[tox.config.types.Command] raw = [['python', '--version']] self = TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['python', '--version']] self = TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['python', '--version']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['python', '--version'] val = [['python', '--version']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'python' val = ['python', '--version'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'python' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'python', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'python' is not list casting_to = entry_type = msg = "'python' is not list" of_type = list[str] val = 'python' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:C] type = VirtualEnvRunner set_env = PIP_DISABLE_PIP_VERSION_CHECK=1 PYTHONHASHSEED=3539495361 PYTHONIOENCODING=utf-8 base = tool.tox.env_run_base runner = virtualenv description = Do magical things in C depends = env_name = C labels = env_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul0/p/.tox/C env_tmp_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul0/p/.tox/C/tmp env_log_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul0/p/.tox/C/log suicide_timeout = 0.0 interrupt_timeout = 0.3 terminate_timeout = 0.2 platform = pass_env = CC CCSHARED CFLAGS CPPFLAGS CURL_CA_BUNDLE CXX FORCE_COLOR HOME LANG LANGUAGE LDFLAGS LD_LIBRARY_PATH NETRC NO_COLOR PIP_* PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_SYSROOT_DIR REQUESTS_CA_BUNDLE SSL_CERT_FILE TMPDIR VIRTUALENV_* http_proxy https_proxy no_proxy parallel_show_output = False recreate = False allowlist_externals = list_dependencies_command = python -m pip freeze --all pip_pre = False install_command = python -I -m pip install '{packages}' constrain_package_deps = False use_frozen_constraints = False commands_pre = __________________________ test_config_in_toml_extra ___________________________ tox_project = ._init at 0x7f73578d23b0> def test_config_in_toml_extra(tox_project: ToxProjectCreator) -> None: project = tox_project({ "pyproject.toml": """ [tool.tox.env_run_base] description = "Do magical things" commands = [ ["python", "--version"] ] """ }) > outcome = project.run("c", "-e", ".".join(str(i) for i in sys.version_info[0:2])) project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra0/p) at 140133389277392 tox_project = ._init at 0x7f73578d23b0> tests/config/source/test_toml_pyproject.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', '3.10') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7358e3b9a0> our_setup_state = .our_setup_state at 0x7f7357861480> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra0/p) at 140133389277392 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', '3.10') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '-e', '3.10') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73578c5a20> done = {'3.10'} is_colored = False is_first = False keys = [] name = '3.10' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = [] tox_env = VirtualEnvRunner(name=3.10) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] as_str = '' conf = EnvConfigSet(name='3.10', loaders=[TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]})]) is_colored = False key = 'commands' keys = [] multi_line = False value = [] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'commands' self = EnvConfigSet(name='3.10', loaders=[TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) item = 'commands' self = EnvConfigSet(name='3.10', loaders=[TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'tool.tox.env_run_base.commands' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra0/p/pyproject.toml)) key = 'commands' loader = TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]}) loaders = [TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]})] self = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra0/p/pyproject.toml)) factory = None key = 'commands' of_type = list[tox.config.types.Command] overrides = [] raw = [['python', '--version']] self = TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra0/p/pyproject.toml)) exploded = [['python', '--version']] factory = None key = 'commands' of_type = list[tox.config.types.Command] raw = [['python', '--version']] self = TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['python', '--version']] self = TomlLoader(tox.env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['python', '--version']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['python', '--version'] val = [['python', '--version']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'python' val = ['python', '--version'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'python' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'python', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'python' is not list casting_to = entry_type = msg = "'python' is not list" of_type = list[str] val = 'python' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:3.10] type = VirtualEnvRunner set_env = PIP_DISABLE_PIP_VERSION_CHECK=1 PYTHONHASHSEED=2974411600 PYTHONIOENCODING=utf-8 base = tool.tox.env_run_base runner = virtualenv description = Do magical things depends = env_name = 3.10 labels = env_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra0/p/.tox/3.10 env_tmp_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra0/p/.tox/3.10/tmp env_log_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra0/p/.tox/3.10/log suicide_timeout = 0.0 interrupt_timeout = 0.3 terminate_timeout = 0.2 platform = pass_env = CC CCSHARED CFLAGS CPPFLAGS CURL_CA_BUNDLE CXX FORCE_COLOR HOME LANG LANGUAGE LDFLAGS LD_LIBRARY_PATH NETRC NO_COLOR PIP_* PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_SYSROOT_DIR REQUESTS_CA_BUNDLE SSL_CERT_FILE TMPDIR VIRTUALENV_* http_proxy https_proxy no_proxy parallel_show_output = False recreate = False allowlist_externals = list_dependencies_command = python -m pip freeze --all pip_pre = False install_command = python -I -m pip install '{packages}' constrain_package_deps = False use_frozen_constraints = False commands_pre = _________________ test_config_in_toml_replace_posargs_default __________________ tox_project = ._init at 0x7f7357987370> def test_config_in_toml_replace_posargs_default(tox_project: ToxProjectCreator) -> None: project = tox_project({ "pyproject.toml": """ [tool.tox.env.A] commands = [["python", { replace = "posargs", default = ["a", "b"], extend = true } ]] """ }) > outcome = project.run("c", "-e", "A", "-k", "commands") project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po0/p) at 140133367746560 tox_project = ._init at 0x7f7357987370> tests/config/source/test_toml_pyproject.py:146: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'A', '-k', 'commands') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73579b1f30> our_setup_state = .our_setup_state at 0x7f7357987520> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po0/p) at 140133367746560 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'A', '-k', 'commands') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '-e', 'A', '-k', 'commands') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73578f0dc0> done = {'A'} is_colored = False is_first = False keys = ['commands'] name = 'A' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = ['commands'] tox_env = VirtualEnvRunner(name=A) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] conf = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})]) is_colored = False key = 'commands' keys = ['commands'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'tool.tox.env.A.commands' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po0/p/pyproject.toml)) key = 'commands' loader = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) loaders = [TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})] self = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po0/p/pyproject.toml)) factory = None key = 'commands' of_type = list[tox.config.types.Command] overrides = [] raw = [['python', {'default': ['a', 'b'], 'extend': True, 'replace': 'posargs'}]] self = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po0/p/pyproject.toml)) exploded = [['python', 'a', 'b']] factory = None key = 'commands' of_type = list[tox.config.types.Command] raw = [['python', {'default': ['a', 'b'], 'extend': True, 'replace': 'posargs'}]] self = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['python', 'a', 'b']] self = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['python', 'a', 'b']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['python', 'a', 'b'] val = [['python', 'a', 'b']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'python' val = ['python', 'a', 'b'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'python' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'python', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'python' is not list casting_to = entry_type = msg = "'python' is not list" of_type = list[str] val = 'python' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:A] __________________ test_config_in_toml_replace_posargs_empty ___________________ tox_project = ._init at 0x7f7357bf64d0> def test_config_in_toml_replace_posargs_empty(tox_project: ToxProjectCreator) -> None: project = tox_project({ "pyproject.toml": """ [tool.tox.env.A] commands = [["python", { replace = "posargs", default = ["a", "b"], extend = true } ]] """ }) > outcome = project.run("c", "-e", "A", "-k", "commands", "--") project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po1/p) at 140133386112160 tox_project = ._init at 0x7f7357bf64d0> tests/config/source/test_toml_pyproject.py:158: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'A', '-k', 'commands', '--') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7358b37250> our_setup_state = .our_setup_state at 0x7f73578f3400> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po1/p) at 140133386112160 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'A', '-k', 'commands', '--') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '-e', 'A', '-k', 'commands', '--') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f7357985b40> done = {'A'} is_colored = False is_first = False keys = ['commands'] name = 'A' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = ['commands'] tox_env = VirtualEnvRunner(name=A) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] conf = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})]) is_colored = False key = 'commands' keys = ['commands'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'tool.tox.env.A.commands' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po1/p/pyproject.toml)) key = 'commands' loader = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) loaders = [TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})] self = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po1/p/pyproject.toml)) factory = None key = 'commands' of_type = list[tox.config.types.Command] overrides = [] raw = [['python', {'default': ['a', 'b'], 'extend': True, 'replace': 'posargs'}]] self = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po1/p/pyproject.toml)) exploded = [['python']] factory = None key = 'commands' of_type = list[tox.config.types.Command] raw = [['python', {'default': ['a', 'b'], 'extend': True, 'replace': 'posargs'}]] self = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['python']] self = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['python']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['python'] val = [['python']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'python' val = ['python'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'python' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'python', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'python' is not list casting_to = entry_type = msg = "'python' is not list" of_type = list[str] val = 'python' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:A] ______________ test_config_in_toml_replace_posargs_empty_optional ______________ tox_project = ._init at 0x7f73578b8e50> def test_config_in_toml_replace_posargs_empty_optional(tox_project: ToxProjectCreator) -> None: project = tox_project({ "pyproject.toml": """ [tool.tox.env.A] commands = [{ replace = "posargs", default = ["a", "b"] }, ["python"]] """ }) > outcome = project.run("c", "-e", "A", "-k", "commands", "--") project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po2/p) at 140133365908480 tox_project = ._init at 0x7f73578b8e50> tests/config/source/test_toml_pyproject.py:170: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'A', '-k', 'commands', '--') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73577f0b20> our_setup_state = .our_setup_state at 0x7f7357bf52d0> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po2/p) at 140133365908480 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'A', '-k', 'commands', '--') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '-e', 'A', '-k', 'commands', '--') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73578dc280> done = {'A'} is_colored = False is_first = False keys = ['commands'] name = 'A' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = ['commands'] tox_env = VirtualEnvRunner(name=A) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] conf = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [{'replace': 'posargs', 'default': ['a', 'b']}, ['python']]})]) is_colored = False key = 'commands' keys = ['commands'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [{'replace': 'posargs', 'default': ['a', 'b']}, ['python']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [{'replace': 'posargs', 'default': ['a', 'b']}, ['python']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'tool.tox.env.A.commands' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po2/p/pyproject.toml)) key = 'commands' loader = TomlLoader(A, {'commands': [{'replace': 'posargs', 'default': ['a', 'b']}, ['python']]}) loaders = [TomlLoader(A, {'commands': [{'replace': 'posargs', 'default': ['a', 'b']}, ['python']]})] self = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po2/p/pyproject.toml)) factory = None key = 'commands' of_type = list[tox.config.types.Command] overrides = [] raw = [{'default': ['a', 'b'], 'replace': 'posargs'}, ['python']] self = TomlLoader(A, {'commands': [{'replace': 'posargs', 'default': ['a', 'b']}, ['python']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po2/p/pyproject.toml)) exploded = [[], ['python']] factory = None key = 'commands' of_type = list[tox.config.types.Command] raw = [{'default': ['a', 'b'], 'replace': 'posargs'}, ['python']] self = TomlLoader(A, {'commands': [{'replace': 'posargs', 'default': ['a', 'b']}, ['python']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [[], ['python']] self = TomlLoader(A, {'commands': [{'replace': 'posargs', 'default': ['a', 'b']}, ['python']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [[], ['python']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['python'] val = [[], ['python']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'python' val = ['python'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'python' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'python', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'python' is not list casting_to = entry_type = msg = "'python' is not list" of_type = list[str] val = 'python' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:A] ___________________ test_config_in_toml_replace_posargs_set ____________________ tox_project = ._init at 0x7f73578bb010> def test_config_in_toml_replace_posargs_set(tox_project: ToxProjectCreator) -> None: project = tox_project({ "pyproject.toml": """ [tool.tox.env.A] commands = [["python", { replace = "posargs", default = ["a", "b"], extend = true } ]] """ }) > outcome = project.run("c", "-e", "A", "-k", "commands", "--", "c", "d") project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po3/p) at 140133369381312 tox_project = ._init at 0x7f73578bb010> tests/config/source/test_toml_pyproject.py:182: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'A', '-k', 'commands', '--', ...) code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7357b40340> our_setup_state = .our_setup_state at 0x7f73578bb490> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po3/p) at 140133369381312 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'A', '-k', 'commands', '--', ...) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '-e', 'A', '-k', 'commands', '--', ...) handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73578dc0d0> done = {'A'} is_colored = False is_first = False keys = ['commands'] name = 'A' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = ['commands'] tox_env = VirtualEnvRunner(name=A) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] conf = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})]) is_colored = False key = 'commands' keys = ['commands'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'tool.tox.env.A.commands' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po3/p/pyproject.toml)) key = 'commands' loader = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) loaders = [TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]})] self = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po3/p/pyproject.toml)) factory = None key = 'commands' of_type = list[tox.config.types.Command] overrides = [] raw = [['python', {'default': ['a', 'b'], 'extend': True, 'replace': 'posargs'}]] self = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_po3/p/pyproject.toml)) exploded = [['python', 'c', 'd']] factory = None key = 'commands' of_type = list[tox.config.types.Command] raw = [['python', {'default': ['a', 'b'], 'extend': True, 'replace': 'posargs'}]] self = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['python', 'c', 'd']] self = TomlLoader(A, {'commands': [['python', {'replace': 'posargs', 'default': ['a', 'b'], 'extend': True}]]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['python', 'c', 'd']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['python', 'c', 'd'] val = [['python', 'c', 'd']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'python' val = ['python', 'c', 'd'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'python' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'python', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'python' is not list casting_to = entry_type = msg = "'python' is not list" of_type = list[str] val = 'python' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:A] ______________________ test_config_in_toml_replace_ref_of ______________________ tox_project = ._init at 0x7f7357861d80> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7358cca860> def test_config_in_toml_replace_ref_of(tox_project: ToxProjectCreator, monkeypatch: pytest.MonkeyPatch) -> None: project = tox_project({ "pyproject.toml": """ [tool.tox.env_run_base] extras = ["A", "{env_name}"] [tool.tox.env.c] extras = [{ replace = "ref", of = ["tool", "tox", "env_run_base", "extras"], extend = true}, "B"] """ }) monkeypatch.setenv("NAME", "OK2") > outcome = project.run("c", "-e", "c", "-k", "extras") monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7358cca860> project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re0/p) at 140133365920480 tox_project = ._init at 0x7f7357861d80> tests/config/source/test_toml_pyproject.py:226: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'c', '-k', 'extras') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73577f2710> our_setup_state = .our_setup_state at 0x7f7357e2acb0> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re0/p) at 140133365920480 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'c', '-k', 'extras') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '-e', 'c', '-k', 'extras') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73578ba5f0> done = {'c'} is_colored = False is_first = False keys = ['extras'] name = 'c' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = ['extras'] tox_env = VirtualEnvRunner(name=c) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] conf = EnvConfigSet(name='c', loaders=[TomlLoader(c, {'extras': [{'replace': 'ref', 'of': ['tool', 'tox', 'env_run_base', 'extras'], 'extend': True}, 'B']}), TomlLoader(tox.env_run_base, {'extras': ['A', '{env_name}']})]) is_colored = False key = 'extras' keys = ['extras'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'extras' self = EnvConfigSet(name='c', loaders=[TomlLoader(c, {'extras': [{'replace': 'ref', 'of': ['tool', 'tox', 'env_run_base', 'extras'], 'extend': True}, 'B']}), TomlLoader(tox.env_run_base, {'extras': ['A', '{env_name}']})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['extras'], desc=extras to install of the target package, of_type=set[str], default=set()) item = 'extras' self = EnvConfigSet(name='c', loaders=[TomlLoader(c, {'extras': [{'replace': 'ref', 'of': ['tool', 'tox', 'env_run_base', 'extras'], 'extend': True}, 'B']}), TomlLoader(tox.env_run_base, {'extras': ['A', '{env_name}']})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'tool.tox.env.c.extras' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re0/p/pyproject.toml)) key = 'extras' loader = TomlLoader(c, {'extras': [{'replace': 'ref', 'of': ['tool', 'tox', 'env_run_base', 'extras'], 'extend': True}, 'B']}) loaders = [TomlLoader(c, {'extras': [{'replace': 'ref', 'of': ['tool', 'tox', 'env_run_base', 'extras'], 'extend': True}, 'B']}), TomlLoader(tox.env_run_base, {'extras': ['A', '{env_name}']})] self = ConfigDynamicDefinition(keys=['extras'], desc=extras to install of the target package, of_type=set[str], default=set()) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re0/p/pyproject.toml)) factory = None key = 'extras' of_type = set[str] overrides = [] raw = [{'extend': True, 'of': ['tool', 'tox', 'env_run_base', 'extras'], 'replace': 'ref'}, 'B'] self = TomlLoader(c, {'extras': [{'replace': 'ref', 'of': ['tool', 'tox', 'env_run_base', 'extras'], 'extend': True}, 'B']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re0/p/pyproject.toml)) exploded = ['A', 'c', 'B'] factory = None key = 'extras' of_type = set[str] raw = [{'extend': True, 'of': ['tool', 'tox', 'env_run_base', 'extras'], 'replace': 'ref'}, 'B'] self = TomlLoader(c, {'extras': [{'replace': 'ref', 'of': ['tool', 'tox', 'env_run_base', 'extras'], 'extend': True}, 'B']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = set[str] raw = ['A', 'c', 'B'] self = TomlLoader(c, {'extras': [{'replace': 'ref', 'of': ['tool', 'tox', 'env_run_base', 'extras'], 'extend': True}, 'B']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[set[str]] of_type = set[str] value = ['A', 'c', 'B'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = set[str] msg = '' of_type = list[set[str]] va = 'A' val = ['A', 'c', 'B'] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'A', of_type = set[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" > elif not isinstance(val, of_type): E TypeError: isinstance() argument 2 cannot be a parameterized generic casting_to = msg = '' of_type = set[str] val = 'A' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:66: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:c] _____________________ test_config_in_toml_replace_ref_env ______________________ tox_project = ._init at 0x7f73578de8c0> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7357698fa0> def test_config_in_toml_replace_ref_env(tox_project: ToxProjectCreator, monkeypatch: pytest.MonkeyPatch) -> None: project = tox_project({ "pyproject.toml": """ [tool.tox.env.b] extras = ["{env_name}"] [tool.tox.env.a] extras = [{ replace = "ref", env = "b", "key" = "extras", extend = true }, "a"] """ }) monkeypatch.setenv("NAME", "OK2") > outcome = project.run("c", "-e", "a", "-k", "extras") monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7357698fa0> project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re1/p) at 140133364514768 tox_project = ._init at 0x7f73578de8c0> tests/config/source/test_toml_pyproject.py:242: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'a', '-k', 'extras') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f735769b8e0> our_setup_state = .our_setup_state at 0x7f73578ba680> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re1/p) at 140133364514768 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'a', '-k', 'extras') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '-e', 'a', '-k', 'extras') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73578d1cf0> done = {'a'} is_colored = False is_first = False keys = ['extras'] name = 'a' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = ['extras'] tox_env = VirtualEnvRunner(name=a) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] conf = EnvConfigSet(name='a', loaders=[TomlLoader(a, {'extras': [{'replace': 'ref', 'env': 'b', 'key': 'extras', 'extend': True}, 'a']})]) is_colored = False key = 'extras' keys = ['extras'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'extras' self = EnvConfigSet(name='a', loaders=[TomlLoader(a, {'extras': [{'replace': 'ref', 'env': 'b', 'key': 'extras', 'extend': True}, 'a']})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['extras'], desc=extras to install of the target package, of_type=set[str], default=set()) item = 'extras' self = EnvConfigSet(name='a', loaders=[TomlLoader(a, {'extras': [{'replace': 'ref', 'env': 'b', 'key': 'extras', 'extend': True}, 'a']})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'tool.tox.env.a.extras' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re1/p/pyproject.toml)) key = 'extras' loader = TomlLoader(a, {'extras': [{'replace': 'ref', 'env': 'b', 'key': 'extras', 'extend': True}, 'a']}) loaders = [TomlLoader(a, {'extras': [{'replace': 'ref', 'env': 'b', 'key': 'extras', 'extend': True}, 'a']})] self = ConfigDynamicDefinition(keys=['extras'], desc=extras to install of the target package, of_type=set[str], default=set()) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re1/p/pyproject.toml)) factory = None key = 'extras' of_type = set[str] overrides = [] raw = [{'env': 'b', 'extend': True, 'key': 'extras', 'replace': 'ref'}, 'a'] self = TomlLoader(a, {'extras': [{'replace': 'ref', 'env': 'b', 'key': 'extras', 'extend': True}, 'a']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:66: in build exploded = Unroll(conf=conf, loader=self, args=args)(raw) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re1/p/pyproject.toml)) factory = None key = 'extras' of_type = set[str] raw = [{'env': 'b', 'extend': True, 'key': 'extras', 'replace': 'ref'}, 'a'] self = TomlLoader(a, {'extras': [{'replace': 'ref', 'env': 'b', 'key': 'extras', 'extend': True}, 'a']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_replace.py:41: in __call__ got = self(val, depth) depth = 1 res_list = [] self = val = {'env': 'b', 'extend': True, 'key': 'extras', 'replace': 'ref'} value = [{'env': 'b', 'extend': True, 'key': 'extras', 'replace': 'ref'}, 'a'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_replace.py:67: in __call__ return self._replace_ref(value, depth) depth = 2 replace_type = 'ref' self = value = {'env': 'b', 'extend': True, 'key': 'extras', 'replace': 'ref'} ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_replace.py:77: in _replace_ref return cast(TomlTypes, self.conf.get_env(cast(str, env))[cast(str, key)]) depth = 2 env = 'b' key = 'extras' self = value = {'env': 'b', 'extend': True, 'key': 'extras', 'replace': 'ref'} ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'extras' self = EnvConfigSet(name='b', loaders=[TomlLoader(b, {'extras': ['{env_name}']})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['extras'], desc=extras to install of the target package, of_type=set[str], default=set()) item = 'extras' self = EnvConfigSet(name='b', loaders=[TomlLoader(b, {'extras': ['{env_name}']})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'tool.tox.env.b.extras' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re1/p/pyproject.toml)) key = 'extras' loader = TomlLoader(b, {'extras': ['{env_name}']}) loaders = [TomlLoader(b, {'extras': ['{env_name}']})] self = ConfigDynamicDefinition(keys=['extras'], desc=extras to install of the target package, of_type=set[str], default=set()) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re1/p/pyproject.toml)) factory = None key = 'extras' of_type = set[str] overrides = [] raw = ['{env_name}'] self = TomlLoader(b, {'extras': ['{env_name}']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_replace_re1/p/pyproject.toml)) exploded = ['b'] factory = None key = 'extras' of_type = set[str] raw = ['{env_name}'] self = TomlLoader(b, {'extras': ['{env_name}']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = set[str] raw = ['b'] self = TomlLoader(b, {'extras': ['{env_name}']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[set[str]] of_type = set[str] value = ['b'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = set[str] msg = '' of_type = list[set[str]] va = 'b' val = ['b'] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'b', of_type = set[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" > elif not isinstance(val, of_type): E TypeError: isinstance() argument 2 cannot be a parameterized generic casting_to = msg = '' of_type = set[str] val = 'b' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:66: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:a] _____________________________ test_config_requires _____________________________ tox_project = ._init at 0x7f73578deb90> def test_config_requires(tox_project: ToxProjectCreator) -> None: project = tox_project({ "pyproject.toml": """ [tool.tox] requires = ['tox>=4'] """ }) > outcome = project.run("c", "-k", "requires", "--core") project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_requires0/p) at 140133365452368 tox_project = ._init at 0x7f73578deb90> tests/config/source/test_toml_pyproject.py:373: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-k', 'requires', '--core') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73577828f0> our_setup_state = .our_setup_state at 0x7f73578deb00> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_requires0/p) at 140133365452368 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-k', 'requires', '--core') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('c', '-k', 'requires', '--core') provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:89: in provision requires: list[Requirement] = state.conf.core["requires"] MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f73576bdc60> state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'requires' self = CoreConfigSet(loaders=[TomlLoader(, {'requires': ['tox>=4']})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=('requires',), desc=Name of the virtual environment used to provision a tox., of_type=list[packaging.requirements.Requirement], default=[]) item = 'requires' self = CoreConfigSet(loaders=[TomlLoader(, {'requires': ['tox>=4']})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = '.requires' conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_requires0/p/pyproject.toml)) key = 'requires' loader = TomlLoader(, {'requires': ['tox>=4']}) loaders = [TomlLoader(, {'requires': ['tox>=4']})] self = ConfigDynamicDefinition(keys=('requires',), desc=Name of the virtual environment used to provision a tox., of_type=list[packaging.requirements.Requirement], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_requires0/p/pyproject.toml)) factory = None key = 'requires' of_type = list[packaging.requirements.Requirement] overrides = [] raw = ['tox>=4'] self = TomlLoader(, {'requires': ['tox>=4']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlPyProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_requires0/p/pyproject.toml)) exploded = ['tox>=4'] factory = None key = 'requires' of_type = list[packaging.requirements.Requirement] raw = ['tox>=4'] self = TomlLoader(, {'requires': ['tox>=4']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[packaging.requirements.Requirement] raw = ['tox>=4'] self = TomlLoader(, {'requires': ['tox>=4']}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[packaging.requirements.Requirement]] of_type = list[packaging.requirements.Requirement] value = ['tox>=4'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[packaging.requirements.Requirement] msg = '' of_type = list[list[packaging.requirements.Requirement]] va = 'tox>=4' val = ['tox>=4'] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'tox>=4', of_type = list[packaging.requirements.Requirement] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'tox>=4' is not list casting_to = entry_type = msg = "'tox>=4' is not list" of_type = list[packaging.requirements.Requirement] val = 'tox>=4' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ___________________________ test_config_in_toml_core ___________________________ tox_project = ._init at 0x7f73578e2a70> def test_config_in_toml_core(tox_project: ToxProjectCreator) -> None: project = tox_project({ "tox.toml": """ env_list = [ "A", "B"] [env_run_base] description = "Do magical things" commands = [ ["python", "--version"], ["python", "-c", "import sys; print(sys.executable)"] ] """ }) > outcome = project.run("c", "--core") project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core1/p) at 140133365677312 tox_project = ._init at 0x7f73578e2a70> tests/config/source/test_toml_tox.py:26: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '--core') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73577b6ef0> our_setup_state = .our_setup_state at 0x7f73578e39a0> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core1/p) at 140133365677312 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '--core') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '--core') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73576bf6d0> done = {'A'} is_colored = False is_first = False keys = [] name = 'A' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = [] tox_env = VirtualEnvRunner(name=A) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] as_str = '' conf = EnvConfigSet(name='A', loaders=[TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]})]) is_colored = False key = 'commands' keys = [] multi_line = False value = [] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) item = 'commands' self = EnvConfigSet(name='A', loaders=[TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'env_run_base.commands' conf = Config(config_source=TomlTox(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core1/p/tox.toml)) key = 'commands' loader = TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]}) loaders = [TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]})] self = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlTox(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core1/p/tox.toml)) factory = None key = 'commands' of_type = list[tox.config.types.Command] overrides = [] raw = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] self = TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlTox(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core1/p/tox.toml)) exploded = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] factory = None key = 'commands' of_type = list[tox.config.types.Command] raw = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] self = TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] self = TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['python', '--version'] val = [['python', '--version'], ['python', '-c', 'import sys; print(sys.executable)']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'python' val = ['python', '--version'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'python' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'python', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'python' is not list casting_to = entry_type = msg = "'python' is not list" of_type = list[str] val = 'python' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:A] type = VirtualEnvRunner set_env = PIP_DISABLE_PIP_VERSION_CHECK=1 PYTHONHASHSEED=2791627137 PYTHONIOENCODING=utf-8 base = env_run_base runner = virtualenv description = Do magical things depends = env_name = A labels = env_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core1/p/.tox/A env_tmp_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core1/p/.tox/A/tmp env_log_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_core1/p/.tox/A/log suicide_timeout = 0.0 interrupt_timeout = 0.3 terminate_timeout = 0.2 platform = pass_env = CC CCSHARED CFLAGS CPPFLAGS CURL_CA_BUNDLE CXX FORCE_COLOR HOME LANG LANGUAGE LDFLAGS LD_LIBRARY_PATH NETRC NO_COLOR PIP_* PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_SYSROOT_DIR REQUESTS_CA_BUNDLE SSL_CERT_FILE TMPDIR VIRTUALENV_* http_proxy https_proxy no_proxy parallel_show_output = False recreate = False allowlist_externals = list_dependencies_command = python -m pip freeze --all pip_pre = False install_command = python -I -m pip install '{packages}' constrain_package_deps = False use_frozen_constraints = False commands_pre = _______________________ test_config_in_toml_non_default ________________________ tox_project = ._init at 0x7f73576be830> def test_config_in_toml_non_default(tox_project: ToxProjectCreator) -> None: project = tox_project({ "tox.toml": """ [env.C] description = "Do magical things in C" commands = [ ["python", "--version"] ] """ }) > outcome = project.run("c", "-e", "C", "--core") project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul1/p) at 140133363976224 tox_project = ._init at 0x7f73576be830> tests/config/source/test_toml_tox.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'C', '--core') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7357618550> our_setup_state = .our_setup_state at 0x7f73576be950> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul1/p) at 140133363976224 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'C', '--core') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '-e', 'C', '--core') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73576bfe20> done = {'C'} is_colored = False is_first = False keys = [] name = 'C' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = [] tox_env = VirtualEnvRunner(name=C) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] as_str = '' conf = EnvConfigSet(name='C', loaders=[TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]})]) is_colored = False key = 'commands' keys = [] multi_line = False value = [] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'commands' self = EnvConfigSet(name='C', loaders=[TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) item = 'commands' self = EnvConfigSet(name='C', loaders=[TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'env.C.commands' conf = Config(config_source=TomlTox(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul1/p/tox.toml)) key = 'commands' loader = TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]}) loaders = [TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]})] self = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlTox(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul1/p/tox.toml)) factory = None key = 'commands' of_type = list[tox.config.types.Command] overrides = [] raw = [['python', '--version']] self = TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlTox(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul1/p/tox.toml)) exploded = [['python', '--version']] factory = None key = 'commands' of_type = list[tox.config.types.Command] raw = [['python', '--version']] self = TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['python', '--version']] self = TomlLoader(C, {'description': 'Do magical things in C', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['python', '--version']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['python', '--version'] val = [['python', '--version']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'python' val = ['python', '--version'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'python' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'python', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'python' is not list casting_to = entry_type = msg = "'python' is not list" of_type = list[str] val = 'python' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:C] type = VirtualEnvRunner set_env = PIP_DISABLE_PIP_VERSION_CHECK=1 PYTHONHASHSEED=908694707 PYTHONIOENCODING=utf-8 base = env_run_base runner = virtualenv description = Do magical things in C depends = env_name = C labels = env_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul1/p/.tox/C env_tmp_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul1/p/.tox/C/tmp env_log_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_non_defaul1/p/.tox/C/log suicide_timeout = 0.0 interrupt_timeout = 0.3 terminate_timeout = 0.2 platform = pass_env = CC CCSHARED CFLAGS CPPFLAGS CURL_CA_BUNDLE CXX FORCE_COLOR HOME LANG LANGUAGE LDFLAGS LD_LIBRARY_PATH NETRC NO_COLOR PIP_* PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_SYSROOT_DIR REQUESTS_CA_BUNDLE SSL_CERT_FILE TMPDIR VIRTUALENV_* http_proxy https_proxy no_proxy parallel_show_output = False recreate = False allowlist_externals = list_dependencies_command = python -m pip freeze --all pip_pre = False install_command = python -I -m pip install '{packages}' constrain_package_deps = False use_frozen_constraints = False commands_pre = __________________________ test_config_in_toml_extra ___________________________ tox_project = ._init at 0x7f73576bc670> def test_config_in_toml_extra(tox_project: ToxProjectCreator) -> None: project = tox_project({ "tox.toml": """ [env_run_base] description = "Do magical things" commands = [ ["python", "--version"] ] """ }) > outcome = project.run("c", "-e", ".".join(str(i) for i in sys.version_info[0:2])) project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra1/p) at 140133391956384 tox_project = ._init at 0x7f73576bc670> tests/config/source/test_toml_tox.py:60: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', '3.10') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73590c4c70> our_setup_state = .our_setup_state at 0x7f73576bea70> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra1/p) at 140133391956384 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', '3.10') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('c', '-e', '3.10') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:65: in show_config _print_env(state.envs[name]) _print_env = ._print_env at 0x7f73578e3010> done = {'3.10'} is_colored = False is_first = False keys = [] name = '3.10' show_everything = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:59: in _print_env print_conf(is_colored, tox_env.conf, keys) is_colored = False is_first = False keys = [] tox_env = VirtualEnvRunner(name=3.10) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/show_config.py:105: in print_conf value = conf[key] as_str = '' conf = EnvConfigSet(name='3.10', loaders=[TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]})]) is_colored = False key = 'commands' keys = [] multi_line = False value = [] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:117: in __getitem__ return self.load(item) item = 'commands' self = EnvConfigSet(name='3.10', loaders=[TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py:128: in load return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 chain = None config_definition = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) item = 'commands' self = EnvConfigSet(name='3.10', loaders=[TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]})]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py:110: in __call__ value = loader.load(key, self.of_type, self.factory, conf, args) args = chain_key = 'env_run_base.commands' conf = Config(config_source=TomlTox(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra1/p/tox.toml)) key = 'commands' loader = TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]}) loaders = [TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]})] self = ConfigDynamicDefinition(keys=['commands'], desc=the commands to be called for testing, of_type=list[tox.config.types.Command], default=[]) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py:149: in load converted = self.build(key, of_type, factory, conf, raw, args) SetEnv = args = conf = Config(config_source=TomlTox(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra1/p/tox.toml)) factory = None key = 'commands' of_type = list[tox.config.types.Command] overrides = [] raw = [['python', '--version']] self = TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:67: in build return self.to(exploded, of_type, factory) args = conf = Config(config_source=TomlTox(path=/tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra1/p/tox.toml)) exploded = [['python', '--version']] factory = None key = 'commands' of_type = list[tox.config.types.Command] raw = [['python', '--version']] self = TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py:48: in to return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] factory = None from_module = 'builtins' of_type = list[tox.config.types.Command] raw = [['python', '--version']] self = TomlLoader(env_run_base, {'description': 'Do magical things', 'commands': [['python', '--version']]}) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py:83: in to_list return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] of = list[list[tox.config.types.Command]] of_type = list[tox.config.types.Command] value = [['python', '--version']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = list[tox.config.types.Command] msg = '' of_type = list[list[tox.config.types.Command]] va = ['python', '--version'] val = [['python', '--version']] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:37: in validate validate(va, entry_type) casting_to = entry_type = msg = '' of_type = list[tox.config.types.Command] va = 'python' val = ['python', '--version'] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:42: in validate validate(val, list[str]) casting_to = msg = '' of_type = val = 'python' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ val = 'python', of_type = list[str] def validate(val: TomlTypes, of_type: type[T]) -> TypeGuard[T]: # noqa: C901, PLR0912 casting_to = getattr(of_type, "__origin__", of_type.__class__) msg = "" if casting_to in {list, list}: entry_type = of_type.__args__[0] # type: ignore[attr-defined] if isinstance(val, list): for va in val: validate(va, entry_type) else: msg = f"{val!r} is not list" elif isclass(of_type) and issubclass(of_type, Command): # first we cast it to list then create commands, so for now validate it as a nested list validate(val, list[str]) elif casting_to in {dict, dict}: key_type, value_type = of_type.__args__[0], of_type.__args__[1] # type: ignore[attr-defined] if isinstance(val, dict): for va in val: validate(va, key_type) for va in val.values(): validate(va, value_type) else: msg = f"{val!r} is not dictionary" elif casting_to == Union: # handle Optional values args: list[type[Any]] = of_type.__args__ # type: ignore[attr-defined] for arg in args: try: validate(val, arg) break except TypeError: pass else: msg = f"{val!r} is not union of {', '.join(a.__name__ for a in args)}" elif casting_to in {Literal, type(Literal)}: choice = of_type.__args__ # type: ignore[attr-defined] if val not in choice: msg = f"{val!r} is not one of literal {','.join(repr(i) for i in choice)}" elif not isinstance(val, of_type): if issubclass(of_type, (bool, str, int)): fail = not isinstance(val, of_type) else: try: # check if it can be converted of_type(val) # type: ignore[call-arg] fail = False except Exception: # noqa: BLE001 fail = True if fail: msg = f"{val!r} is not of type {of_type.__name__!r}" if msg: > raise TypeError(msg) E TypeError: 'python' is not list casting_to = entry_type = msg = "'python' is not list" of_type = list[str] val = 'python' ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py:78: TypeError ----------------------------- Captured stdout call ----------------------------- [testenv:3.10] type = VirtualEnvRunner set_env = PIP_DISABLE_PIP_VERSION_CHECK=1 PYTHONHASHSEED=676243801 PYTHONIOENCODING=utf-8 base = env_run_base runner = virtualenv description = Do magical things depends = env_name = 3.10 labels = env_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra1/p/.tox/3.10 env_tmp_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra1/p/.tox/3.10/tmp env_log_dir = /tmp/pytest-of-tkloczko/pytest-780/test_config_in_toml_extra1/p/.tox/3.10/log suicide_timeout = 0.0 interrupt_timeout = 0.3 terminate_timeout = 0.2 platform = pass_env = CC CCSHARED CFLAGS CPPFLAGS CURL_CA_BUNDLE CXX FORCE_COLOR HOME LANG LANGUAGE LDFLAGS LD_LIBRARY_PATH NETRC NO_COLOR PIP_* PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_SYSROOT_DIR REQUESTS_CA_BUNDLE SSL_CERT_FILE TMPDIR VIRTUALENV_* http_proxy https_proxy no_proxy parallel_show_output = False recreate = False allowlist_externals = list_dependencies_command = python -m pip freeze --all pip_pre = False install_command = python -I -m pip install '{packages}' constrain_package_deps = False use_frozen_constraints = False commands_pre = _______________________________ test_config_set ________________________________ conf_builder = ._make at 0x7f735767b7f0> def test_config_set(conf_builder: ConfBuilder) -> None: config_set = conf_builder("set = 1\n 2\n 3") config_set.add_config(keys="set", of_type=set[int], default=set(), desc="set") set_materialize = config_set["set"] > assert set_materialize == {1, 2, 3} E AssertionError: assert ['1', '2', '3'] == {1, 2, 3} E E Use -v to get more diff conf_builder = ._make at 0x7f735767b7f0> config_set = EnvConfigSet(name='py39', loaders=[IniLoader(section=testenv, overrides={})]) set_materialize = ['1', '2', '3'] tests/config/test_sets.py:51: AssertionError _______________________________ test_config_dict _______________________________ conf_builder = ._make at 0x7f7357765cf0> def test_config_dict(conf_builder: ConfBuilder) -> None: config_set = conf_builder("dict = a=1\n b=2\n c=3") config_set.add_config(keys="dict", of_type=dict[str, int], default={}, desc="dict") dict_val = config_set["dict"] > assert dict_val == OrderedDict([("a", 1), ("b", 2), ("c", 3)]) E AssertionError: assert ['a=1', 'b=2', 'c=3'] == OrderedDict([...2), ('c', 3)]) E E Use -v to get more diff conf_builder = ._make at 0x7f7357765cf0> config_set = EnvConfigSet(name='py39', loaders=[IniLoader(section=testenv, overrides={})]) dict_val = ['a=1', 'b=2', 'c=3'] tests/config/test_sets.py:70: AssertionError _____________________________ test_config_bad_dict _____________________________ conf_builder = ._make at 0x7f7357765750> def test_config_bad_dict(conf_builder: ConfBuilder) -> None: config_set = conf_builder("bad_dict = something") config_set.add_config(keys="bad_dict", of_type=dict[str, str], default={}, desc="bad_dict") > with pytest.raises(TypeError) as context: E Failed: DID NOT RAISE conf_builder = ._make at 0x7f7357765750> config_set = EnvConfigSet(name='py39', loaders=[IniLoader(section=testenv, overrides={})]) context = tests/config/test_sets.py:86: Failed _________________________ test_plugin_hooks_and_order __________________________ tox_project = ._init at 0x7f73576bf520> mocker = def test_plugin_hooks_and_order(tox_project: ToxProjectCreator, mocker: MockerFixture) -> None: @impl def tox_register_tox_env(register: ToxEnvRegister) -> None: assert isinstance(register, ToxEnvRegister) logging.warning("tox_register_tox_env") @impl def tox_add_option(parser: ToxParser) -> None: assert isinstance(parser, ToxParser) logging.warning("tox_add_option") @impl def tox_add_core_config(core_conf: CoreConfigSet, state: State) -> None: assert isinstance(core_conf, CoreConfigSet) assert isinstance(state, State) logging.warning("tox_add_core_config") @impl def tox_add_env_config(env_conf: EnvConfigSet, state: State) -> None: assert isinstance(env_conf, EnvConfigSet) assert isinstance(state, State) logging.warning("tox_add_env_config") @impl def tox_before_run_commands(tox_env: ToxEnv) -> None: assert isinstance(tox_env, ToxEnv) logging.warning("tox_before_run_commands") @impl def tox_on_install(tox_env: ToxEnv, arguments: Any, section: str, of_type: str) -> None: assert isinstance(tox_env, ToxEnv) assert arguments is not None assert isinstance(section, str) assert isinstance(of_type, str) logging.warning("tox_on_install %s %s", section, of_type) @impl def tox_after_run_commands(tox_env: ToxEnv, exit_code: int, outcomes: list[Outcome]) -> None: assert isinstance(tox_env, ToxEnv) assert exit_code == 0 assert isinstance(outcomes, list) assert all(isinstance(i, Outcome) for i in outcomes) logging.warning("tox_after_run_commands") @impl def tox_env_teardown(tox_env: ToxEnv) -> None: assert isinstance(tox_env, ToxEnv) logging.warning("teardown") plugins = tuple(v for v in locals().values() if callable(v) and hasattr(v, "tox_impl")) assert len(plugins) == 8 register_inline_plugin(mocker, *plugins) tox_ini = """ [tox] env_list=a,b [testenv] package=skip commands=python -c 'print(1)' env_list=a,b """ project = tox_project({"tox.ini": tox_ini}) result = project.run("r", "-e", "a,b") > result.assert_success() mocker = plugins = (.tox_register_tox_env at 0x7f73577d2440>, , .tox_on_install at 0x7f73575fd6c0>, ...) project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_plugin_hooks_and_order0/p) at 140133352392928 result = code: -1 cmd: /usr/bin/python3 -m tox r -e a,b cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_hooks_and_order0/p ...== 0 b: teardown a: FAIL code 2 (0.03 seconds) b: FAIL code 2 (0.02 seconds) evaluation failed :( (0.08 seconds) tox_add_core_config = .tox_add_core_config at 0x7f73576becb0> tox_add_env_config = .tox_add_env_config at 0x7f73575fd3f0> tox_add_option = .tox_add_option at 0x7f73576bc820> tox_after_run_commands = .tox_after_run_commands at 0x7f73575fe4d0> tox_before_run_commands = .tox_before_run_commands at 0x7f73575fd360> tox_env_teardown = .tox_env_teardown at 0x7f73575fe680> tox_ini = "\n [tox]\n env_list=a,b\n [testenv]\n package=skip\n commands=python -c 'print(1)'\n env_list=a,b\n " tox_on_install = .tox_on_install at 0x7f73575fd6c0> tox_project = ._init at 0x7f73576bf520> tox_register_tox_env = .tox_register_tox_env at 0x7f73577d2440> tests/plugin/test_plugin.py:90: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: -1 cmd: /usr/bin/python3 -m tox r -e a,b cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_hooks_and_order0/p ...== 0 b: teardown a: FAIL code 2 (0.03 seconds) b: FAIL code 2 (0.02 seconds) evaluation failed :( (0.08 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: -1 E cmd: /usr/bin/python3 -m tox r -e a,b E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_hooks_and_order0/p E standard output E ROOT: tox_register_tox_env E ROOT: tox_add_option E ROOT: tox_add_core_config E a: tox_add_env_config E b: tox_add_env_config E a: tox_on_install PythonRun deps E a: tox_before_run_commands E a: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 92, in run_commands E MANAGER.tox_after_run_commands(tox_env, exit_code, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/plugin/manager.py", line 91, in tox_after_run_commands E self.manager.hook.tox_after_run_commands(tox_env=tox_env, exit_code=exit_code, outcomes=outcomes) E File "/usr/lib/python3.10/site-packages/pluggy/_hooks.py", line 513, in __call__ E return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) E File "/usr/lib/python3.10/site-packages/pluggy/_manager.py", line 120, in _hookexec E return self._inner_hookexec(hook_name, methods, kwargs, firstresult) E File "/usr/lib/python3.10/site-packages/pluggy/_callers.py", line 139, in _multicall E raise exception.with_traceback(exception.__traceback__) E File "/usr/lib/python3.10/site-packages/pluggy/_callers.py", line 103, in _multicall E res = hook_impl.function(*args) E File "/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/plugin/test_plugin.py", line 66, in tox_after_run_commands E assert exit_code == 0 E AssertionError: assert -1 == 0 E a: teardown E a: FAIL ✖ in 0.03 seconds E b: tox_on_install PythonRun deps E b: tox_before_run_commands E b: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 92, in run_commands E MANAGER.tox_after_run_commands(tox_env, exit_code, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/plugin/manager.py", line 91, in tox_after_run_commands E self.manager.hook.tox_after_run_commands(tox_env=tox_env, exit_code=exit_code, outcomes=outcomes) E File "/usr/lib/python3.10/site-packages/pluggy/_hooks.py", line 513, in __call__ E return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) E File "/usr/lib/python3.10/site-packages/pluggy/_manager.py", line 120, in _hookexec E return self._inner_hookexec(hook_name, methods, kwargs, firstresult) E File "/usr/lib/python3.10/site-packages/pluggy/_callers.py", line 139, in _multicall E raise exception.with_traceback(exception.__traceback__) E File "/usr/lib/python3.10/site-packages/pluggy/_callers.py", line 103, in _multicall E res = hook_impl.function(*args) E File "/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/plugin/test_plugin.py", line 66, in tox_after_run_commands E assert exit_code == 0 E AssertionError: assert -1 == 0 E b: teardown E a: FAIL code 2 (0.03 seconds) E b: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.08 seconds) E E assert False E + where False = code: -1\ncmd: /usr/bin/python3 -m tox r -e a,b\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_hooks_and_order0/p\n...== 0\nb: teardown\n a: FAIL code 2 (0.03 seconds)\n b: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.08 seconds)\n.success self = code: -1 cmd: /usr/bin/python3 -m tox r -e a,b cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_hooks_and_order0/p ...== 0 b: teardown a: FAIL code 2 (0.03 seconds) b: FAIL code 2 (0.02 seconds) evaluation failed :( (0.08 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _________________________ test_plugin_extend_pass_env __________________________ tox_project = ._init at 0x7f73576bf2e0> mocker = def test_plugin_extend_pass_env(tox_project: ToxProjectCreator, mocker: MockerFixture) -> None: @impl def tox_add_env_config(env_conf: EnvConfigSet, state: State) -> None: # noqa: ARG001 env_conf["pass_env"].append("MAGIC_*") register_inline_plugin(mocker, tox_add_env_config) ini = """ [testenv] package=skip commands=python -c 'import os; print(os.environ["MAGIC_1"]); print(os.environ["MAGIC_2"])' """ project = tox_project({"tox.ini": ini}) with patch.dict(os.environ, {"MAGIC_1": "magic_1", "MAGIC_2": "magic_2"}): result = project.run("r") > result.assert_success() ini = '\n [testenv]\n package=skip\n commands=python -c \'import os; print(os.environ["MAGIC_1"]); print(os.environ["MAGIC_2"])\'\n ' mocker = project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_pass_env0/p) at 140133352851104 result = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_pass_env0/p standard...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tox_add_env_config = .tox_add_env_config at 0x7f73587df1c0> tox_project = ._init at 0x7f73576bf2e0> tests/plugin/test_plugin.py:214: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_pass_env0/p standard...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_pass_env0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_pass_env0/p\nstandard...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.05 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_pass_env0/p standard...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError __________________________ test_plugin_extend_set_env __________________________ tox_project = ._init at 0x7f73588169e0> mocker = def test_plugin_extend_set_env(tox_project: ToxProjectCreator, mocker: MockerFixture) -> None: @impl def tox_add_env_config(env_conf: EnvConfigSet, state: State) -> None: # noqa: ARG001 env_conf["set_env"].update({"MAGI_CAL": "magi_cal"}) register_inline_plugin(mocker, tox_add_env_config) ini = """ [testenv] package=skip commands=python -c 'import os; print(os.environ["MAGI_CAL"])' """ project = tox_project({"tox.ini": ini}) result = project.run("r") > result.assert_success() ini = '\n [testenv]\n package=skip\n commands=python -c \'import os; print(os.environ["MAGI_CAL"])\'\n ' mocker = project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_set_env0/p) at 140133353029536 result = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_set_env0/p standard ...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tox_add_env_config = .tox_add_env_config at 0x7f7358867b50> tox_project = ._init at 0x7f73588169e0> tests/plugin/test_plugin.py:236: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_set_env0/p standard ...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_set_env0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_set_env0/p\nstandard ...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.05 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_plugin_extend_set_env0/p standard ...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ____________________________ test_parallel_general _____________________________ tox_project = ._init at 0x7f735865f7f0> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73584e1690> mocker = def test_parallel_general(tox_project: ToxProjectCreator, monkeypatch: MonkeyPatch, mocker: MockerFixture) -> None: def setup(self: ToxEnv) -> None: if self.name == "f": msg = "something bad happened" raise Fail(msg) return prev_setup(self) prev_setup = ToxEnv._setup_env # noqa: SLF001 mocker.patch.object(ToxEnv, "_setup_env", autospec=True, side_effect=setup) monkeypatch.setenv("PATH", "") ini = """ [tox] no_package=true skip_missing_interpreters = true env_list= a, b, c, d, e, f [testenv] commands=python -c 'print("run {env_name}")' depends = !c: c parallel_show_output = c: true [testenv:d] base_python = missing_skip [testenv:e] commands=python -c 'import sys; print("run {env_name}"); sys.exit(1)' """ project = tox_project({"tox.ini": ini}) outcome = project.run("p", "-p", "all") outcome.assert_failed() out = outcome.out oks, skips, fails = {"a", "b", "c"}, {"d"}, {"e", "f"} missing = set() for env in "a", "b", "c", "d", "e", "f": if env in {"c", "e"}: assert "run c" in out, out elif env == "f": assert "f: failed with something bad happened" in out, out else: assert f"run {env}" not in out, out of_type = "OK" if env in oks else ("SKIP" if env in skips else "FAIL") of_type_icon = "✔" if env in oks else ("⚠" if env in skips else "✖") env_done = f"{env}: {of_type} {of_type_icon}" is_missing = env_done not in out if is_missing: missing.add(env_done) env_report = f" {env}: {of_type} {'code 1 ' if env in fails else ''}(" > assert env_report in out, out E AssertionError:  ⠋ [0/6] c: FAIL ✖ in 0.02 seconds E c: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E d: SKIP ⚠ in 0.01 seconds E f: FAIL ✖ in 0 seconds E f: failed with something bad happened E e: FAIL ✖ in 0.06 seconds E e: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E b: FAIL ✖ in 0.07 seconds E b: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E  ⠙ [1/6] a a: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E  a: FAIL code 2 (0.11 seconds) E b: FAIL code 2 (0.07 seconds) E c: FAIL code 2 (0.02 seconds) E d: SKIP (0.01 seconds) E e: FAIL code 2 (0.06 seconds) E f: FAIL code 1 (0.00 seconds) E evaluation failed :( (0.15 seconds) E E assert ' a: OK (' in '\r\x1b[K\r⠋ [0/6]\r\x1b[Kc: FAIL ✖ in 0.02 seconds\nc: internal error\nTraceback (most recent call last):\n File "/h...01 seconds)\n e: FAIL code 2 (0.06 seconds)\n f: FAIL code 1 (0.00 seconds)\n evaluation failed :( (0.15 seconds)\n' env = 'a' env_done = 'a: OK ✔' env_report = ' a: OK (' fails = {'e', 'f'} ini = '\n [tox]\n no_package=true\n skip_missing_interpreters = true\n env_list= a, b, c, d, e, f\n [testenv]...hon = missing_skip\n [testenv:e]\n commands=python -c \'import sys; print("run {env_name}"); sys.exit(1)\'\n ' is_missing = True missing = {'a: OK ✔'} mocker = monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73584e1690> of_type = 'OK' of_type_icon = '✔' oks = {'a', 'b', 'c'} out = '\r\x1b[K\r⠋ [0/6]\r\x1b[Kc: FAIL ✖ in 0.02 seconds\nc: internal error\nTraceback (most recent call last):\n File "/h...01 seconds)\n e: FAIL code 2 (0.06 seconds)\n f: FAIL code 1 (0.00 seconds)\n evaluation failed :( (0.15 seconds)\n' outcome = code: -1 cmd: /usr/bin/python3 -m tox p -p all cwd: /tmp/pytest-of-tkloczko/pytest-780/test_parallel_general0/p standa...P (0.01 seconds) e: FAIL code 2 (0.06 seconds) f: FAIL code 1 (0.00 seconds) evaluation failed :( (0.15 seconds) prev_setup = project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_parallel_general0/p) at 140133381289056 setup = .setup at 0x7f735865f5b0> skips = {'d'} tox_project = ._init at 0x7f735865f7f0> tests/session/cmd/test_parallel.py:96: AssertionError __________________________ test_parallel_run_live_out __________________________ tox_project = ._init at 0x7f73586a6290> def test_parallel_run_live_out(tox_project: ToxProjectCreator) -> None: ini = """ [tox] no_package=true env_list= a, b [testenv] commands=python -c 'print("run {env_name}")' """ project = tox_project({"tox.ini": ini}) outcome = project.run("p", "-p", "2", "--parallel-live") > outcome.assert_success() ini = '\n [tox]\n no_package=true\n env_list= a, b\n [testenv]\n commands=python -c \'print("run {env_name}")\'\n ' outcome = code: -1 cmd: /usr/bin/python3 -m tox p -p 2 --parallel-live cwd: /tmp/pytest-of-tkloczko/pytest-780/test_parallel_run...attribute 'args' a: FAIL code 2 (0.10 seconds) b: FAIL code 2 (0.10 seconds) evaluation failed :( (0.12 seconds) project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_parallel_run_live_out0/p) at 140133379985408 tox_project = ._init at 0x7f73586a6290> tests/session/cmd/test_parallel.py:112: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: -1 cmd: /usr/bin/python3 -m tox p -p 2 --parallel-live cwd: /tmp/pytest-of-tkloczko/pytest-780/test_parallel_run...attribute 'args' a: FAIL code 2 (0.10 seconds) b: FAIL code 2 (0.10 seconds) evaluation failed :( (0.12 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: -1 E cmd: /usr/bin/python3 -m tox p -p 2 --parallel-live E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_parallel_run_live_out0/p E standard output E a: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E a: FAIL ✖ in 0.1 seconds E b: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E a: FAIL code 2 (0.10 seconds) E b: FAIL code 2 (0.10 seconds) E evaluation failed :( (0.12 seconds) E E assert False E + where False = code: -1\ncmd: /usr/bin/python3 -m tox p -p 2 --parallel-live\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_parallel_run...attribute 'args'\n a: FAIL code 2 (0.10 seconds)\n b: FAIL code 2 (0.10 seconds)\n evaluation failed :( (0.12 seconds)\n.success self = code: -1 cmd: /usr/bin/python3 -m tox p -p 2 --parallel-live cwd: /tmp/pytest-of-tkloczko/pytest-780/test_parallel_run...attribute 'args' a: FAIL code 2 (0.10 seconds) b: FAIL code 2 (0.10 seconds) evaluation failed :( (0.12 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ______________________ test_parallel_show_output_with_pkg ______________________ tox_project = ._init at 0x7f7358689120> demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') def test_parallel_show_output_with_pkg(tox_project: ToxProjectCreator, demo_pkg_inline: Path) -> None: ini = "[testenv]\nparallel_show_output=True\ncommands=python -c 'print(\"r {env_name}\")'" project = tox_project({"tox.ini": ini}) result = project.run("p", "--root", str(demo_pkg_inline)) > assert "r py" in result.out E assert 'r py' in "\r\x1b[K\r⠋ [0/1]\r\x1b[K\r⠙ [1/1] py\r\x1b[K\r⠹ [1/1] py\r\x1b[K\r⠸ [1/1] py\r\x1b[K\r⠼ [1/1] py\r\x1b[K\r⠴ [1/1] py...str' object has no attribute 'args'\n\r\x1b[K py: FAIL code 2 (0.86 seconds)\n evaluation failed :( (0.89 seconds)\n" E + where "\r\x1b[K\r⠋ [0/1]\r\x1b[K\r⠙ [1/1] py\r\x1b[K\r⠹ [1/1] py\r\x1b[K\r⠸ [1/1] py\r\x1b[K\r⠼ [1/1] py\r\x1b[K\r⠴ [1/1] py...str' object has no attribute 'args'\n\r\x1b[K py: FAIL code 2 (0.86 seconds)\n evaluation failed :( (0.89 seconds)\n" = code: 2\ncmd: /usr/bin/python3 -m tox p --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline\ncwd: /tmp...Error: 'str' object has no attribute 'args'\n  py: FAIL code 2 (0.86 seconds)\n evaluation failed :( (0.89 seconds)\n.out demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') ini = '[testenv]\nparallel_show_output=True\ncommands=python -c \'print("r {env_name}")\'' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_parallel_show_output_with0/p) at 140133352864640 result = code: 2 cmd: /usr/bin/python3 -m tox p --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline cwd: /tmp...Error: 'str' object has no attribute 'args'  py: FAIL code 2 (0.86 seconds) evaluation failed :( (0.89 seconds) tox_project = ._init at 0x7f7358689120> tests/session/cmd/test_parallel.py:122: AssertionError _______________________ test_run_ignore_cmd_exit_code[-] _______________________ tox_project = ._init at 0x7f7358689090> prefix = '-' @pytest.mark.parametrize("prefix", ["-", "- "]) def test_run_ignore_cmd_exit_code(tox_project: ToxProjectCreator, prefix: str) -> None: cmd = [ f"{prefix}python -c 'import sys; print(\"magic fail\", file=sys.stderr); sys.exit(1)'", "python -c 'import sys; print(\"magic pass\", file=sys.stdout); sys.exit(0)'", ] project = tox_project({"tox.ini": f"[tox]\nno_package=true\n[testenv]\ncommands={cmd[0]}\n {cmd[1]}"}) outcome = project.run("r", "-e", "py") > outcome.assert_success() cmd = ['-python -c \'import sys; print("magic fail", file=sys.stderr); sys.exit(1)\'', 'python -c \'import sys; print("magic pass", file=sys.stdout); sys.exit(0)\''] outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_0/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) prefix = '-' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_0/p) at 140133380589312 tox_project = ._init at 0x7f7358689090> tests/session/cmd/test_sequential.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_0/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_0/p...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_0/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ______________________ test_run_ignore_cmd_exit_code[- ] _______________________ tox_project = ._init at 0x7f73576bc430> prefix = '- ' @pytest.mark.parametrize("prefix", ["-", "- "]) def test_run_ignore_cmd_exit_code(tox_project: ToxProjectCreator, prefix: str) -> None: cmd = [ f"{prefix}python -c 'import sys; print(\"magic fail\", file=sys.stderr); sys.exit(1)'", "python -c 'import sys; print(\"magic pass\", file=sys.stdout); sys.exit(0)'", ] project = tox_project({"tox.ini": f"[tox]\nno_package=true\n[testenv]\ncommands={cmd[0]}\n {cmd[1]}"}) outcome = project.run("r", "-e", "py") > outcome.assert_success() cmd = ['- python -c \'import sys; print("magic fail", file=sys.stderr); sys.exit(1)\'', 'python -c \'import sys; print("magic pass", file=sys.stdout); sys.exit(0)\''] outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_1/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) prefix = '- ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_1/p) at 140133352992880 tox_project = ._init at 0x7f73576bc430> tests/session/cmd/test_sequential.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_1/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_1/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_1/p...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_ignore_cmd_exit_code_1/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ___________________________ test_run_sequential_fail ___________________________ tox_project = ._init at 0x7f7357767ac0> def test_run_sequential_fail(tox_project: ToxProjectCreator) -> None: def _cmd(value: int) -> str: return f"python -c 'import sys; print(\"exit {value}\"); sys.exit({value})'" ini = f"[tox]\nenv_list=a,b\nno_package=true\n[testenv:a]\ncommands={_cmd(1)}\n[testenv:b]\ncommands={_cmd(0)}" project = tox_project({"tox.ini": ini}) outcome = project.run("r", "-e", "a,b") outcome.assert_failed() reports = outcome.out.splitlines()[-3:] assert Matches(r" evaluation failed :\( \(.* seconds\)") == reports[-1] > assert Matches(r" b: OK \(.*=setup\[.*\]\+cmd\[.*\] seconds\)") == reports[-2] E AssertionError: assert Matches(' b: OK \\(.*=setup\\[.*\\]\\+cmd\\[.*\\] seconds\\)')\n # regex failed to match at:\n #\n #> b: FAIL code 2 (0.02 seconds)\n # ^ == ' b: FAIL code 2 (0.02 seconds)' E + where Matches(' b: OK \\(.*=setup\\[.*\\]\\+cmd\\[.*\\] seconds\\)')\n # regex failed to match at:\n #\n #> b: FAIL code 2 (0.02 seconds)\n # ^ = Matches(' b: OK \\(.*=setup\\[.*\\]\\+cmd\\[.*\\] seconds\\)') _cmd = ._cmd at 0x7f73576bc4c0> ini = '[tox]\nenv_list=a,b\nno_package=true\n[testenv:a]\ncommands=python -c \'import sys; print("exit 1"); sys.exit(1)\'\n[testenv:b]\ncommands=python -c \'import sys; print("exit 0"); sys.exit(0)\'' outcome = code: -1 cmd: /usr/bin/python3 -m tox r -e a,b cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_sequential_fail0/p sta...attribute 'args' a: FAIL code 2 (0.02 seconds) b: FAIL code 2 (0.02 seconds) evaluation failed :( (0.06 seconds) project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_run_sequential_fail0/p) at 140133364933072 reports = [' a: FAIL code 2 (0.02 seconds)', ' b: FAIL code 2 (0.02 seconds)', ' evaluation failed :( (0.06 seconds)'] tox_project = ._init at 0x7f7357767ac0> tests/session/cmd/test_sequential.py:45: AssertionError __________________________ test_run_sequential_quiet ___________________________ tox_project = ._init at 0x7f7358864700> def test_run_sequential_quiet(tox_project: ToxProjectCreator) -> None: ini = "[tox]\nenv_list=a\nno_package=true\n[testenv]\ncommands=python -V" project = tox_project({"tox.ini": ini}) outcome = project.run("r", "-q", "-e", "a") > outcome.assert_success() ini = '[tox]\nenv_list=a\nno_package=true\n[testenv]\ncommands=python -V' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -q -e a cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_sequential_quiet0/p st...ibuteError: 'str' object has no attribute 'args' a: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_run_sequential_quiet0/p) at 140133365109360 tox_project = ._init at 0x7f7358864700> tests/session/cmd/test_sequential.py:53: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -q -e a cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_sequential_quiet0/p st...ibuteError: 'str' object has no attribute 'args' a: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -q -e a E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_sequential_quiet0/p E standard output E a: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E a: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -q -e a\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_sequential_quiet0/p\nst...ibuteError: 'str' object has no attribute 'args'\n a: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -q -e a cwd: /tmp/pytest-of-tkloczko/pytest-780/test_run_sequential_quiet0/p st...ibuteError: 'str' object has no attribute 'args' a: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError __________________________ test_rerun_sequential_skip __________________________ tox_project = ._init at 0x7f7357767370> demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') def test_rerun_sequential_skip(tox_project: ToxProjectCreator, demo_pkg_inline: Path) -> None: proj = tox_project({"tox.ini": "[testenv]\npackage=skip\ncommands=python -c 'print(1)'"}) result_first = proj.run("--root", str(demo_pkg_inline)) > result_first.assert_success() demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_rerun_sequential_skip0/p) at 140133352700560 result_first = code: 2 cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline cwd: /tmp/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.01 seconds) evaluation failed :( (0.03 seconds) tox_project = ._init at 0x7f7357767370> tests/session/cmd/test_sequential.py:144: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline cwd: /tmp/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.01 seconds) evaluation failed :( (0.03 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_rerun_sequential_skip0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.01 seconds) E evaluation failed :( (0.03 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline\ncwd: /tmp/p...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.01 seconds)\n evaluation failed :( (0.03 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline cwd: /tmp/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.01 seconds) evaluation failed :( (0.03 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _________________________ test_rerun_sequential_wheel __________________________ tox_project = ._init at 0x7f73587131c0> demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') def test_rerun_sequential_wheel(tox_project: ToxProjectCreator, demo_pkg_inline: Path) -> None: proj = tox_project( {"tox.ini": "[testenv]\npackage=wheel\ncommands=python -c 'from demo_pkg_inline import do; do()'"}, ) result_first = proj.run("--root", str(demo_pkg_inline)) > result_first.assert_success() demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_rerun_sequential_wheel0/p) at 140133365126560 result_first = code: 2 cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline cwd: /tmp/p...e-packages/pyproject_api/_backend.py True build py: FAIL code 2 (0.59 seconds) evaluation failed :( (0.62 seconds) tox_project = ._init at 0x7f73587131c0> tests/session/cmd/test_sequential.py:154: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline cwd: /tmp/p...e-packages/pyproject_api/_backend.py True build py: FAIL code 2 (0.59 seconds) evaluation failed :( (0.62 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_rerun_sequential_wheel0/p E standard output E .pkg: _optional_hooks /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E .pkg: get_requires_for_build_wheel /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E .pkg: build_wheel /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E py: install_package /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python -I -m pip install --force-reinstall --no-deps /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline/.tox/.tmp/package/2/demo_pkg_inline-1.0.0-py3-none-any.whl E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E .pkg: _exit /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E py: FAIL code 2 (0.59 seconds) E evaluation failed :( (0.62 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline\ncwd: /tmp/p...e-packages/pyproject_api/_backend.py True build\n py: FAIL code 2 (0.59 seconds)\n evaluation failed :( (0.62 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline cwd: /tmp/p...e-packages/pyproject_api/_backend.py True build py: FAIL code 2 (0.59 seconds) evaluation failed :( (0.62 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ____________________________ test_recreate_package _____________________________ tox_project = ._init at 0x7f73575fe290> demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') def test_recreate_package(tox_project: ToxProjectCreator, demo_pkg_inline: Path) -> None: proj = tox_project( {"tox.ini": "[testenv]\npackage=wheel\ncommands=python -c 'from demo_pkg_inline import do; do()'"}, ) result_first = proj.run("--root", str(demo_pkg_inline), "-r") > result_first.assert_success() demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_recreate_package0/p) at 140133365810752 result_first = code: 2 cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline -r cwd: /tm...e-packages/pyproject_api/_backend.py True build py: FAIL code 2 (0.61 seconds) evaluation failed :( (0.64 seconds) tox_project = ._init at 0x7f73575fe290> tests/session/cmd/test_sequential.py:175: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline -r cwd: /tm...e-packages/pyproject_api/_backend.py True build py: FAIL code 2 (0.61 seconds) evaluation failed :( (0.64 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline -r E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_recreate_package0/p E standard output E py: remove tox env folder /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline/.tox/py E .pkg: remove tox env folder /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline/.tox/.pkg E .pkg: _optional_hooks /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E .pkg: get_requires_for_build_wheel /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E .pkg: build_wheel /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E py: install_package /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python -I -m pip install --force-reinstall --no-deps /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline/.tox/.tmp/package/3/demo_pkg_inline-1.0.0-py3-none-any.whl E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E .pkg: _exit /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E py: FAIL code 2 (0.61 seconds) E evaluation failed :( (0.64 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline -r\ncwd: /tm...e-packages/pyproject_api/_backend.py True build\n py: FAIL code 2 (0.61 seconds)\n evaluation failed :( (0.64 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline -r cwd: /tm...e-packages/pyproject_api/_backend.py True build py: FAIL code 2 (0.61 seconds) evaluation failed :( (0.64 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ____________________________ test_env_tmp_dir_reset ____________________________ tox_project = ._init at 0x7f735865f010> def test_env_tmp_dir_reset(tox_project: ToxProjectCreator) -> None: ini = '[testenv]\npackage=skip\ncommands=python -c \'import os; os.mkdir(os.path.join( r"{env_tmp_dir}", "a"))\'' proj = tox_project({"tox.ini": ini}) result_first = proj.run("r") > result_first.assert_success() ini = '[testenv]\npackage=skip\ncommands=python -c \'import os; os.mkdir(os.path.join( r"{env_tmp_dir}", "a"))\'' proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_env_tmp_dir_reset0/p) at 140133382160928 result_first = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_env_tmp_dir_reset0/p standard outp...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tox_project = ._init at 0x7f735865f010> tests/session/cmd/test_sequential.py:256: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_env_tmp_dir_reset0/p standard outp...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_env_tmp_dir_reset0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_env_tmp_dir_reset0/p\nstandard outp...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.05 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_env_tmp_dir_reset0/p standard outp...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _______________________ test_commands_pre_fail_post_runs _______________________ tox_project = ._init at 0x7f7358412560> def test_commands_pre_fail_post_runs(tox_project: ToxProjectCreator) -> None: ini = f"[testenv]\npackage=skip\ncommands_pre={_c(8)}\ncommands={_c(0)}\ncommands_post={_c(9)}" proj = tox_project({"tox.ini": ini}) result = proj.run() > result.assert_failed(code=8) ini = "[testenv]\npackage=skip\ncommands_pre=python -c 'raise SystemExit(8)'\ncommands=python -c 'raise SystemExit(0)'\ncommands_post=python -c 'raise SystemExit(9)'" proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_commands_pre_fail_post_ru0/p) at 140133380597616 result = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_pre_fail_post_ru0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.06 seconds) tox_project = ._init at 0x7f7358412560> tests/session/cmd/test_sequential.py:315: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_pre_fail_post_ru0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.06 seconds) code = 8 def assert_failed(self, code: int | None = None) -> None: status_match = self.code != 0 if code is None else self.code == code > assert status_match, f"should be {code}, got {self}" # noqa: S101 E AssertionError: should be 8, got code: 2 E cmd: /usr/bin/python3 -m tox E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_pre_fail_post_ru0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 83, in run_commands E status_pre = run_command_set(tox_env, "commands_pre", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 89, in run_commands E status_post = run_command_set(tox_env, "commands_post", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.06 seconds) E E assert False code = 8 self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_pre_fail_post_ru0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.06 seconds) status_match = False ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:361: AssertionError _________________ test_commands_pre_pass_post_runs_main_fails __________________ tox_project = ._init at 0x7f73584124d0> def test_commands_pre_pass_post_runs_main_fails(tox_project: ToxProjectCreator) -> None: ini = f"[testenv]\npackage=skip\ncommands_pre={_c(0)}\ncommands={_c(8)}\ncommands_post={_c(9)}" proj = tox_project({"tox.ini": ini}) result = proj.run() > result.assert_failed(code=8) ini = "[testenv]\npackage=skip\ncommands_pre=python -c 'raise SystemExit(0)'\ncommands=python -c 'raise SystemExit(8)'\ncommands_post=python -c 'raise SystemExit(9)'" proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_commands_pre_pass_post_ru0/p) at 140133352774848 result = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_pre_pass_post_ru0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tox_project = ._init at 0x7f73584124d0> tests/session/cmd/test_sequential.py:325: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_pre_pass_post_ru0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) code = 8 def assert_failed(self, code: int | None = None) -> None: status_match = self.code != 0 if code is None else self.code == code > assert status_match, f"should be {code}, got {self}" # noqa: S101 E AssertionError: should be 8, got code: 2 E cmd: /usr/bin/python3 -m tox E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_pre_pass_post_ru0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 83, in run_commands E status_pre = run_command_set(tox_env, "commands_pre", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 89, in run_commands E status_post = run_command_set(tox_env, "commands_post", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False code = 8 self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_pre_pass_post_ru0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) status_match = False ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:361: AssertionError ______________________ test_commands_post_fails_exit_code ______________________ tox_project = ._init at 0x7f7358412170> def test_commands_post_fails_exit_code(tox_project: ToxProjectCreator) -> None: ini = f"[testenv]\npackage=skip\ncommands_pre={_c(0)}\ncommands={_c(0)}\ncommands_post={_c(9)}" proj = tox_project({"tox.ini": ini}) result = proj.run() > result.assert_failed(code=9) ini = "[testenv]\npackage=skip\ncommands_pre=python -c 'raise SystemExit(0)'\ncommands=python -c 'raise SystemExit(0)'\ncommands_post=python -c 'raise SystemExit(9)'" proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_commands_post_fails_exit_0/p) at 140133380774960 result = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_post_fails_exit_0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f7358412170> tests/session/cmd/test_sequential.py:335: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_post_fails_exit_0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) code = 9 def assert_failed(self, code: int | None = None) -> None: status_match = self.code != 0 if code is None else self.code == code > assert status_match, f"should be {code}, got {self}" # noqa: S101 E AssertionError: should be 9, got code: 2 E cmd: /usr/bin/python3 -m tox E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_post_fails_exit_0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 83, in run_commands E status_pre = run_command_set(tox_env, "commands_pre", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 89, in run_commands E status_post = run_command_set(tox_env, "commands_post", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False code = 9 self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_post_fails_exit_0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) status_match = False ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:361: AssertionError _____________________ test_commands_ignore_errors[0-8-0-8] _____________________ tox_project = ._init at 0x7f73585220e0>, pre = 0 main = 8, post = 0, outcome = 8 @pytest.mark.parametrize( ("pre", "main", "post", "outcome"), [ (0, 8, 0, 8), (0, 0, 8, 8), (8, 0, 0, 8), ], ) def test_commands_ignore_errors(tox_project: ToxProjectCreator, pre: int, main: int, post: int, outcome: int) -> None: def _s(key: str, code: int) -> str: return f"\ncommands{key}=\n {_c(code)}\n {'' if code == 0 else _c(code + 1)}" ini = f"[testenv]\npackage=skip\nignore_errors=True{_s('_pre', pre)}{_s('', main)}{_s('_post', post)}" proj = tox_project({"tox.ini": ini}) result = proj.run() > result.assert_failed(code=outcome) _s = ._s at 0x7f7358522290> ini = "[testenv]\npackage=skip\nignore_errors=True\ncommands_pre=\n python -c 'raise SystemExit(0)'\n \ncommands=\n python -c 'raise SystemExit(8)'\n python -c 'raise SystemExit(9)'\ncommands_post=\n python -c 'raise SystemExit(0)'\n " main = 8 outcome = 8 post = 0 pre = 0 proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_0_0/p) at 140133379790624 result = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_0_0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73585220e0> tests/session/cmd/test_sequential.py:356: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_0_0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) code = 8 def assert_failed(self, code: int | None = None) -> None: status_match = self.code != 0 if code is None else self.code == code > assert status_match, f"should be {code}, got {self}" # noqa: S101 E AssertionError: should be 8, got code: 2 E cmd: /usr/bin/python3 -m tox E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_0_0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 83, in run_commands E status_pre = run_command_set(tox_env, "commands_pre", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 89, in run_commands E status_post = run_command_set(tox_env, "commands_post", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False code = 8 self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_0_0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) status_match = False ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:361: AssertionError _____________________ test_commands_ignore_errors[0-0-8-8] _____________________ tox_project = ._init at 0x7f73583c4b80>, pre = 0 main = 0, post = 8, outcome = 8 @pytest.mark.parametrize( ("pre", "main", "post", "outcome"), [ (0, 8, 0, 8), (0, 0, 8, 8), (8, 0, 0, 8), ], ) def test_commands_ignore_errors(tox_project: ToxProjectCreator, pre: int, main: int, post: int, outcome: int) -> None: def _s(key: str, code: int) -> str: return f"\ncommands{key}=\n {_c(code)}\n {'' if code == 0 else _c(code + 1)}" ini = f"[testenv]\npackage=skip\nignore_errors=True{_s('_pre', pre)}{_s('', main)}{_s('_post', post)}" proj = tox_project({"tox.ini": ini}) result = proj.run() > result.assert_failed(code=outcome) _s = ._s at 0x7f73583c7c70> ini = "[testenv]\npackage=skip\nignore_errors=True\ncommands_pre=\n python -c 'raise SystemExit(0)'\n \ncommands=\n python -c 'raise SystemExit(0)'\n \ncommands_post=\n python -c 'raise SystemExit(8)'\n python -c 'raise SystemExit(9)'" main = 0 outcome = 8 post = 8 pre = 0 proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_0_1/p) at 140133380539632 result = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_0_1/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73583c4b80> tests/session/cmd/test_sequential.py:356: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_0_1/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) code = 8 def assert_failed(self, code: int | None = None) -> None: status_match = self.code != 0 if code is None else self.code == code > assert status_match, f"should be {code}, got {self}" # noqa: S101 E AssertionError: should be 8, got code: 2 E cmd: /usr/bin/python3 -m tox E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_0_1/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 83, in run_commands E status_pre = run_command_set(tox_env, "commands_pre", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 89, in run_commands E status_post = run_command_set(tox_env, "commands_post", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False code = 8 self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_0_1/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) status_match = False ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:361: AssertionError _____________________ test_commands_ignore_errors[8-0-0-8] _____________________ tox_project = ._init at 0x7f73583c56c0>, pre = 8 main = 0, post = 0, outcome = 8 @pytest.mark.parametrize( ("pre", "main", "post", "outcome"), [ (0, 8, 0, 8), (0, 0, 8, 8), (8, 0, 0, 8), ], ) def test_commands_ignore_errors(tox_project: ToxProjectCreator, pre: int, main: int, post: int, outcome: int) -> None: def _s(key: str, code: int) -> str: return f"\ncommands{key}=\n {_c(code)}\n {'' if code == 0 else _c(code + 1)}" ini = f"[testenv]\npackage=skip\nignore_errors=True{_s('_pre', pre)}{_s('', main)}{_s('_post', post)}" proj = tox_project({"tox.ini": ini}) result = proj.run() > result.assert_failed(code=outcome) _s = ._s at 0x7f73583c52d0> ini = "[testenv]\npackage=skip\nignore_errors=True\ncommands_pre=\n python -c 'raise SystemExit(8)'\n python -c 'raise SystemExit(9)'\ncommands=\n python -c 'raise SystemExit(0)'\n \ncommands_post=\n python -c 'raise SystemExit(0)'\n " main = 0 outcome = 8 post = 0 pre = 8 proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_8_0/p) at 140133352986640 result = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_8_0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73583c56c0> tests/session/cmd/test_sequential.py:356: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_8_0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) code = 8 def assert_failed(self, code: int | None = None) -> None: status_match = self.code != 0 if code is None else self.code == code > assert status_match, f"should be {code}, got {self}" # noqa: S101 E AssertionError: should be 8, got code: 2 E cmd: /usr/bin/python3 -m tox E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_8_0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 83, in run_commands E status_pre = run_command_set(tox_env, "commands_pre", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 89, in run_commands E status_post = run_command_set(tox_env, "commands_post", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False code = 8 self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_commands_ignore_errors_8_0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) status_match = False ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:361: AssertionError _____________________________ test_ignore_outcome ______________________________ tox_project = ._init at 0x7f73583c7d00> def test_ignore_outcome(tox_project: ToxProjectCreator) -> None: ini = "[tox]\nno_package=true\n[testenv]\ncommands=python -c 'exit(1)'\nignore_outcome=true" project = tox_project({"tox.ini": ini}) result = project.run("r") result.assert_success() reports = result.out.splitlines() > assert Matches(r" py: IGNORED FAIL code 1 .*") == reports[-2] E AssertionError: assert Matches(' py: IGNORED FAIL code 1 .*')\n # regex failed to match at:\n #\n #> py: IGNORED FAIL code 2 (0.02 seconds)\n # ^ == ' py: IGNORED FAIL code 2 (0.02 seconds)' E + where Matches(' py: IGNORED FAIL code 1 .*')\n # regex failed to match at:\n #\n #> py: IGNORED FAIL code 2 (0.02 seconds)\n # ^ = Matches(' py: IGNORED FAIL code 1 .*') ini = "[tox]\nno_package=true\n[testenv]\ncommands=python -c 'exit(1)'\nignore_outcome=true" project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_ignore_outcome0/p) at 140133366023408 reports = ['py: internal error', 'Traceback (most recent call last):', ' File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.2...ne 85, in run_commands', ' status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes)', ...] result = code: 0 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_ignore_outcome0/p standard output ...ror: 'str' object has no attribute 'args' py: IGNORED FAIL code 2 (0.02 seconds) congratulations :) (0.05 seconds) tox_project = ._init at 0x7f73583c7d00> tests/session/cmd/test_sequential.py:370: AssertionError ______________________ test_sequential_inserted_env_vars _______________________ tox_project = ._init at 0x7f7358523c70> demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') def test_sequential_inserted_env_vars(tox_project: ToxProjectCreator, demo_pkg_inline: Path) -> None: ini = """ [testenv] commands=python -c 'import os; [print(f"{k}={v}") for k, v in os.environ.items() if \ k.startswith("TOX_") or k == "VIRTUAL_ENV"]' """ project = tox_project({"tox.ini": ini}) result = project.run("r", "--root", str(demo_pkg_inline), "--workdir", str(project.path / ".tox")) > result.assert_success() demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') ini = '\n [testenv]\n commands=python -c \'import os; [print(f"{k}={v}") for k, v in os.environ.items() if k.startswith("TOX_") or k == "VIRTUAL_ENV"]\'\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_sequential_inserted_env_v0/p) at 140133382350512 result = code: 2 cmd: /usr/bin/python3 -m tox r --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline --workdir...e-packages/pyproject_api/_backend.py True build py: FAIL code 2 (0.79 seconds) evaluation failed :( (0.82 seconds) tox_project = ._init at 0x7f7358523c70> tests/session/cmd/test_sequential.py:443: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline --workdir...e-packages/pyproject_api/_backend.py True build py: FAIL code 2 (0.79 seconds) evaluation failed :( (0.82 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline --workdir /tmp/pytest-of-tkloczko/pytest-780/test_sequential_inserted_env_v0/p/.tox E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_sequential_inserted_env_v0/p E standard output E .pkg: _optional_hooks /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E .pkg: get_requires_for_build_sdist /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E .pkg: get_requires_for_build_wheel /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E .pkg: build_wheel /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E .pkg: build_sdist /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E py: install_package /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python -I -m pip install --force-reinstall --no-deps /tmp/pytest-of-tkloczko/pytest-780/test_sequential_inserted_env_v0/p/.tox/.tmp/package/1/demo_pkg_inline-1.0.0.tar.gz E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E .pkg: _exit /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True build E py: FAIL code 2 (0.79 seconds) E evaluation failed :( (0.82 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline --workdir...e-packages/pyproject_api/_backend.py True build\n py: FAIL code 2 (0.79 seconds)\n evaluation failed :( (0.82 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline --workdir...e-packages/pyproject_api/_backend.py True build py: FAIL code 2 (0.79 seconds) evaluation failed :( (0.82 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ___________________ test_missing_command_success_if_ignored ____________________ tox_project = ._init at 0x7f7358712560> def test_missing_command_success_if_ignored(tox_project: ToxProjectCreator) -> None: project = tox_project({"tox.ini": "[testenv]\ncommands= - missing-command\nskip_install=true"}) result = project.run() > result.assert_success() project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_missing_command_success_i0/p) at 140133352921488 result = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_missing_command_success_i0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tox_project = ._init at 0x7f7358712560> tests/session/cmd/test_sequential.py:457: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_missing_command_success_i0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_missing_command_success_i0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_missing_command_success_i0/p\nstandar...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.05 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_missing_command_success_i0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError __________________________ test_show_config_commands ___________________________ tox_project = ._init at 0x7f73587127a0> def test_show_config_commands(tox_project: ToxProjectCreator) -> None: project = tox_project( { "tox.ini": """ [tox] env_list = py no_package = true [testenv] commands_pre = python -c 'import sys; print("start", sys.executable)' commands = pip config list pip list commands_post = python -c 'import sys; print("end", sys.executable)' """, }, ) outcome = project.run("c") outcome.assert_success() env_config = outcome.env_conf("py") > assert env_config["commands_pre"] == [Command(args=["python", "-c", 'import sys; print("start", sys.executable)'])] E assert ['python -c \...executable)'"] == [Command(args...xecutable)'])] E E At index 0 diff: 'python -c \'import sys; print("start"' != Command(args=['python', '-c', 'import sys; print("start", sys.executable)']) E Left contains one more item: "sys.executable)'" E Use -v to get more diff env_config = EnvConfigSet(name='py', loaders=[IniLoader(section=testenv, overrides={})]) outcome = code: 0 cmd: /usr/bin/python3 -m tox c cwd: /tmp/pytest-of-tkloczko/pytest-780/test_show_config_commands0/p standard o... cpython deps = dependency_groups = system_site_packages = False always_copy = False download = False package = skip project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_show_config_commands0/p) at 140133364078608 tox_project = ._init at 0x7f73587127a0> tests/session/cmd/test_show_config.py:57: AssertionError ______________________ test_show_config_ini_comment_path _______________________ tox_project = ._init at 0x7f73583d1ab0> tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-780/test_show_config_ini_comment_p0') def test_show_config_ini_comment_path(tox_project: ToxProjectCreator, tmp_path: Path) -> None: prj_path = tmp_path / "#magic" prj_path.mkdir() ini = """ [testenv] package = skip set_env = A=1 # comment # more comment commands = {envpython} -c 'import os; print(os.linesep.join(f"{k}={v}" for k, v in os.environ.items()))' [testenv:py] set_env = {[testenv]set_env} B = {tox_root} # just some comment """ project = tox_project({"tox.ini": dedent(ini)}, prj_path=prj_path) result = project.run("r", "-e", "py") > result.assert_success() ini = "\n [testenv]\n package = skip\n set_env =\n A=1 # comment\n # more comment\n commands = {en...ms()))'\n [testenv:py]\n set_env =\n {[testenv]set_env}\n B = {tox_root} # just some comment\n " prj_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-780/test_show_config_ini_comment_p0/#magic') project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_show_config_ini_comment_p0/#magic) at 140133381573120 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_show_config_ini_comment_p0/#...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-780/test_show_config_ini_comment_p0') tox_project = ._init at 0x7f73583d1ab0> tests/session/cmd/test_show_config.py:217: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_show_config_ini_comment_p0/#...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_show_config_ini_comment_p0/#magic E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_show_config_ini_comment_p0/#...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.05 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_show_config_ini_comment_p0/#...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError __________________________ test_label_core_can_define __________________________ tox_project = ._init at 0x7f7358520e50> def test_label_core_can_define(tox_project: ToxProjectCreator) -> None: ini = """ [tox] labels = test = py3{10,9} static = flake8, type """ project = tox_project({"tox.ini": ini}) > outcome = project.run("l", "--no-desc") ini = '\n [tox]\n labels =\n test = py3{10,9}\n static = flake8, type\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_label_core_can_define0/p) at 140133366276656 tox_project = ._init at 0x7f7358520e50> tests/session/test_env_select.py:74: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('l', '--no-desc') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7357849150> our_setup_state = .our_setup_state at 0x7f7357766b90> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_label_core_can_define0/p) at 140133366276656 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('l', '--no-desc') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('l', '--no-desc') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/list_env.py:29: in list_env active = dict.fromkeys(state.envs.iter()) active_only = False has_group_select = False option = Parsed(colored='no', verbose=2, quiet=0, exit_and_dump_after=0, config_file=None, work_dir=None, root_dir=None, comman...=False, list_no_description=True, labels=[], factors=[], skip_env='', list_default_only=False, start=2506010.692047839) state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:424: in iter for name, env_info in self._defined_envs.items(): only_active = True package = False self = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:254: in _defined_envs env_name_to_active = self._env_name_to_active() failed = {} self = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:225: in _env_name_to_active for a_collection, is_active in self._collect_names(): a_collection = Config(config_source=ToxIni(path=/tmp/pytest-of-tkloczko/pytest-780/test_label_core_can_define0/p/tox.ini)) env_name_to_active_map = {'.tox': False} is_active = False name = '.tox' self = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _collect_names(self) -> Iterator[tuple[Iterable[str], bool]]: """:return: sources of tox environments defined with name and if is marked as target to run""" if self._provision is not None: # pragma: no branch yield (self._provision[1],), False env_list, everything_active = self._state.conf.core["env_list"], False if self._cli_envs is None or self._cli_envs.is_default_list: yield env_list, True elif self._cli_envs.is_all: everything_active = True else: self._ensure_envs_valid() yield self._cli_envs, True yield self._state.conf, everything_active > label_envs = dict.fromkeys(chain.from_iterable(self._state.conf.core["labels"].values())) E AttributeError: 'list' object has no attribute 'values' env_list = EnvList([]) everything_active = False self = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:182: AttributeError ____________________________ test_label_core_select ____________________________ tox_project = ._init at 0x7f73583c6e60> def test_label_core_select(tox_project: ToxProjectCreator) -> None: ini = """ [tox] labels = test = py3{10,9} static = flake8, type """ project = tox_project({"tox.ini": ini}) > outcome = project.run("l", "--no-desc", "-m", "test") ini = '\n [tox]\n labels =\n test = py3{10,9}\n static = flake8, type\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_label_core_select0/p) at 140133365822800 tox_project = ._init at 0x7f73583c6e60> tests/session/test_env_select.py:87: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('l', '--no-desc', '-m', 'test') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73577d91b0> our_setup_state = .our_setup_state at 0x7f73583c7490> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_label_core_select0/p) at 140133365822800 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('l', '--no-desc', '-m', 'test') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('l', '--no-desc', '-m', 'test') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/list_env.py:29: in list_env active = dict.fromkeys(state.envs.iter()) active_only = True has_group_select = True option = Parsed(colored='no', verbose=2, quiet=0, exit_and_dump_after=0, config_file=None, work_dir=None, root_dir=None, comman..., list_no_description=True, labels=['test'], factors=[], skip_env='', list_default_only=False, start=2506010.763398901) state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:424: in iter for name, env_info in self._defined_envs.items(): only_active = True package = False self = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:254: in _defined_envs env_name_to_active = self._env_name_to_active() failed = {} self = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:225: in _env_name_to_active for a_collection, is_active in self._collect_names(): a_collection = Config(config_source=ToxIni(path=/tmp/pytest-of-tkloczko/pytest-780/test_label_core_select0/p/tox.ini)) env_name_to_active_map = {'.tox': False} is_active = False name = '.tox' self = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _collect_names(self) -> Iterator[tuple[Iterable[str], bool]]: """:return: sources of tox environments defined with name and if is marked as target to run""" if self._provision is not None: # pragma: no branch yield (self._provision[1],), False env_list, everything_active = self._state.conf.core["env_list"], False if self._cli_envs is None or self._cli_envs.is_default_list: yield env_list, True elif self._cli_envs.is_all: everything_active = True else: self._ensure_envs_valid() yield self._cli_envs, True yield self._state.conf, everything_active > label_envs = dict.fromkeys(chain.from_iterable(self._state.conf.core["labels"].values())) E AttributeError: 'list' object has no attribute 'values' env_list = EnvList([]) everything_active = False self = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:182: AttributeError __________________________ test_label_core_and_trait ___________________________ tox_project = ._init at 0x7f7358520160> def test_label_core_and_trait(tox_project: ToxProjectCreator) -> None: ini = """ [tox] env_list = py310, py39, flake8, type labels = static = flake8, type [testenv] labels = test """ project = tox_project({"tox.ini": ini}) > outcome = project.run("l", "--no-desc", "-m", "test", "static") ini = '\n [tox]\n env_list = py310, py39, flake8, type\n labels =\n static = flake8, type\n [testenv]\n labels = test\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_label_core_and_trait0/p) at 140133380370640 tox_project = ._init at 0x7f7358520160> tests/session/test_env_select.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('l', '--no-desc', '-m', 'test', 'static') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73585bb6d0> our_setup_state = .our_setup_state at 0x7f73583c5fc0> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_label_core_and_trait0/p) at 140133380370640 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('l', '--no-desc', '-m', 'test', 'static') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:46: in main return handler(state) args = ('l', '--no-desc', '-m', 'test', 'static') handler = provision = result = False state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/list_env.py:29: in list_env active = dict.fromkeys(state.envs.iter()) active_only = True has_group_select = True option = Parsed(colored='no', verbose=2, quiet=0, exit_and_dump_after=0, config_file=None, work_dir=None, root_dir=None, comman...description=True, labels=['test', 'static'], factors=[], skip_env='', list_default_only=False, start=2506010.856855636) state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:424: in iter for name, env_info in self._defined_envs.items(): only_active = True package = False self = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:254: in _defined_envs env_name_to_active = self._env_name_to_active() failed = {} self = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:225: in _env_name_to_active for a_collection, is_active in self._collect_names(): a_collection = Config(config_source=ToxIni(path=/tmp/pytest-of-tkloczko/pytest-780/test_label_core_and_trait0/p/tox.ini)) env_name_to_active_map = {'.tox': False, 'flake8': True, 'py310': True, 'py39': True, ...} is_active = False name = 'type' self = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _collect_names(self) -> Iterator[tuple[Iterable[str], bool]]: """:return: sources of tox environments defined with name and if is marked as target to run""" if self._provision is not None: # pragma: no branch yield (self._provision[1],), False env_list, everything_active = self._state.conf.core["env_list"], False if self._cli_envs is None or self._cli_envs.is_default_list: yield env_list, True elif self._cli_envs.is_all: everything_active = True else: self._ensure_envs_valid() yield self._cli_envs, True yield self._state.conf, everything_active > label_envs = dict.fromkeys(chain.from_iterable(self._state.conf.core["labels"].values())) E AttributeError: 'list' object has no attribute 'values' env_list = EnvList(['py310', 'py39', 'flake8', 'type']) everything_active = False self = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/env_select.py:182: AttributeError ________________________ test_matches_hyphenated_env[a] ________________________ env_name = 'a' tox_project = ._init at 0x7f7358406b00> @pytest.mark.parametrize("env_name", ["a", "b", "a-b", "b-a"]) def test_matches_hyphenated_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [tox] env_list=a-b [testenv] package=skip commands_pre = a: python -c 'print("a")' b: python -c 'print("b")' commands=python -c 'print("ok")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = 'a' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e a cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_0/p ...ibuteError: 'str' object has no attribute 'args' a: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_0/p) at 140133381179280 tox_ini = '\n [tox]\n env_list=a-b\n [testenv]\n package=skip\n commands_pre =\n a: python -c \'print("a")\'\n b: python -c \'print("b")\'\n commands=python -c \'print("ok")\'\n ' tox_project = ._init at 0x7f7358406b00> tests/session/test_env_select.py:219: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e a cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_0/p ...ibuteError: 'str' object has no attribute 'args' a: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e a E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_0/p E standard output E a: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 83, in run_commands E status_pre = run_command_set(tox_env, "commands_pre", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E a: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e a\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_0/p\n...ibuteError: 'str' object has no attribute 'args'\n a: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.05 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e a cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_0/p ...ibuteError: 'str' object has no attribute 'args' a: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ________________________ test_matches_hyphenated_env[b] ________________________ env_name = 'b' tox_project = ._init at 0x7f73584bcc10> @pytest.mark.parametrize("env_name", ["a", "b", "a-b", "b-a"]) def test_matches_hyphenated_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [tox] env_list=a-b [testenv] package=skip commands_pre = a: python -c 'print("a")' b: python -c 'print("b")' commands=python -c 'print("ok")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = 'b' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e b cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_0/p ...ibuteError: 'str' object has no attribute 'args' b: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_0/p) at 140133352543888 tox_ini = '\n [tox]\n env_list=a-b\n [testenv]\n package=skip\n commands_pre =\n a: python -c \'print("a")\'\n b: python -c \'print("b")\'\n commands=python -c \'print("ok")\'\n ' tox_project = ._init at 0x7f73584bcc10> tests/session/test_env_select.py:219: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e b cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_0/p ...ibuteError: 'str' object has no attribute 'args' b: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e b E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_0/p E standard output E b: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 83, in run_commands E status_pre = run_command_set(tox_env, "commands_pre", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E b: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e b\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_0/p\n...ibuteError: 'str' object has no attribute 'args'\n b: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e b cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_0/p ...ibuteError: 'str' object has no attribute 'args' b: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _______________________ test_matches_hyphenated_env[a-b] _______________________ env_name = 'a-b' tox_project = ._init at 0x7f73584be320> @pytest.mark.parametrize("env_name", ["a", "b", "a-b", "b-a"]) def test_matches_hyphenated_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [tox] env_list=a-b [testenv] package=skip commands_pre = a: python -c 'print("a")' b: python -c 'print("b")' commands=python -c 'print("ok")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = 'a-b' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e a-b cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_1/...uteError: 'str' object has no attribute 'args' a-b: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_1/p) at 140133364935712 tox_ini = '\n [tox]\n env_list=a-b\n [testenv]\n package=skip\n commands_pre =\n a: python -c \'print("a")\'\n b: python -c \'print("b")\'\n commands=python -c \'print("ok")\'\n ' tox_project = ._init at 0x7f73584be320> tests/session/test_env_select.py:219: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e a-b cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_1/...uteError: 'str' object has no attribute 'args' a-b: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e a-b E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_1/p E standard output E a-b: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 83, in run_commands E status_pre = run_command_set(tox_env, "commands_pre", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E a-b: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e a-b\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_1/...uteError: 'str' object has no attribute 'args'\n a-b: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e a-b cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_a_1/...uteError: 'str' object has no attribute 'args' a-b: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _______________________ test_matches_hyphenated_env[b-a] _______________________ env_name = 'b-a' tox_project = ._init at 0x7f73584bf5b0> @pytest.mark.parametrize("env_name", ["a", "b", "a-b", "b-a"]) def test_matches_hyphenated_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [tox] env_list=a-b [testenv] package=skip commands_pre = a: python -c 'print("a")' b: python -c 'print("b")' commands=python -c 'print("ok")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = 'b-a' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e b-a cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_1/...uteError: 'str' object has no attribute 'args' b-a: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_1/p) at 140133352958432 tox_ini = '\n [tox]\n env_list=a-b\n [testenv]\n package=skip\n commands_pre =\n a: python -c \'print("a")\'\n b: python -c \'print("b")\'\n commands=python -c \'print("ok")\'\n ' tox_project = ._init at 0x7f73584bf5b0> tests/session/test_env_select.py:219: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e b-a cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_1/...uteError: 'str' object has no attribute 'args' b-a: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e b-a E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_1/p E standard output E b-a: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 83, in run_commands E status_pre = run_command_set(tox_env, "commands_pre", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E b-a: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e b-a\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_1/...uteError: 'str' object has no attribute 'args'\n b-a: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e b-a cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_hyphenated_env_b_1/...uteError: 'str' object has no attribute 'args' b-a: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _______________________ test_matches_combined_env[3.10] ________________________ env_name = '3.10' tox_project = ._init at 0x7f73584bd2d0> @pytest.mark.parametrize( "env_name", [ f"3.{_MINOR}", f"3.{_MINOR}-cov", "3-cov", "3", f"py3.{_MINOR}", f"py3{_MINOR}-cov", f"py3.{_MINOR}-cov", ], ) def test_matches_combined_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [testenv] package=skip commands = !cov: python -c 'print("without cov")' cov: python -c 'print("with cov")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = '3.10' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e 3.10 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_100...teError: 'str' object has no attribute 'args' 3.10: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_100/p) at 140133362949456 tox_ini = '\n [testenv]\n package=skip\n commands =\n !cov: python -c \'print("without cov")\'\n cov: python -c \'print("with cov")\'\n ' tox_project = ._init at 0x7f73584bd2d0> tests/session/test_env_select.py:249: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e 3.10 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_100...teError: 'str' object has no attribute 'args' 3.10: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e 3.10 E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_100/p E standard output E 3.10: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E 3.10: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e 3.10\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_100...teError: 'str' object has no attribute 'args'\n 3.10: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e 3.10 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_100...teError: 'str' object has no attribute 'args' 3.10: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _____________________ test_matches_combined_env[3.10-cov] ______________________ env_name = '3.10-cov' tox_project = ._init at 0x7f73584a3f40> @pytest.mark.parametrize( "env_name", [ f"3.{_MINOR}", f"3.{_MINOR}-cov", "3-cov", "3", f"py3.{_MINOR}", f"py3{_MINOR}-cov", f"py3.{_MINOR}-cov", ], ) def test_matches_combined_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [testenv] package=skip commands = !cov: python -c 'print("without cov")' cov: python -c 'print("with cov")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = '3.10-cov' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e 3.10-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3...ror: 'str' object has no attribute 'args' 3.10-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_101/p) at 140133369089376 tox_ini = '\n [testenv]\n package=skip\n commands =\n !cov: python -c \'print("without cov")\'\n cov: python -c \'print("with cov")\'\n ' tox_project = ._init at 0x7f73584a3f40> tests/session/test_env_select.py:249: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e 3.10-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3...ror: 'str' object has no attribute 'args' 3.10-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e 3.10-cov E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_101/p E standard output E 3.10-cov: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E 3.10-cov: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e 3.10-cov\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3...ror: 'str' object has no attribute 'args'\n 3.10-cov: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e 3.10-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3...ror: 'str' object has no attribute 'args' 3.10-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _______________________ test_matches_combined_env[3-cov] _______________________ env_name = '3-cov' tox_project = ._init at 0x7f735868beb0> @pytest.mark.parametrize( "env_name", [ f"3.{_MINOR}", f"3.{_MINOR}-cov", "3-cov", "3", f"py3.{_MINOR}", f"py3{_MINOR}-cov", f"py3.{_MINOR}-cov", ], ) def test_matches_combined_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [testenv] package=skip commands = !cov: python -c 'print("without cov")' cov: python -c 'print("with cov")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = '3-cov' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e 3-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_co...eError: 'str' object has no attribute 'args' 3-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_co0/p) at 140133379484272 tox_ini = '\n [testenv]\n package=skip\n commands =\n !cov: python -c \'print("without cov")\'\n cov: python -c \'print("with cov")\'\n ' tox_project = ._init at 0x7f735868beb0> tests/session/test_env_select.py:249: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e 3-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_co...eError: 'str' object has no attribute 'args' 3-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e 3-cov E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_co0/p E standard output E 3-cov: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E 3-cov: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e 3-cov\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_co...eError: 'str' object has no attribute 'args'\n 3-cov: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e 3-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_co...eError: 'str' object has no attribute 'args' 3-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _________________________ test_matches_combined_env[3] _________________________ env_name = '3' tox_project = ._init at 0x7f73577d0700> @pytest.mark.parametrize( "env_name", [ f"3.{_MINOR}", f"3.{_MINOR}-cov", "3-cov", "3", f"py3.{_MINOR}", f"py3{_MINOR}-cov", f"py3.{_MINOR}-cov", ], ) def test_matches_combined_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [testenv] package=skip commands = !cov: python -c 'print("without cov")' cov: python -c 'print("with cov")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = '3' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e 3 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_102/p ...ibuteError: 'str' object has no attribute 'args' 3: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_102/p) at 140133381435072 tox_ini = '\n [testenv]\n package=skip\n commands =\n !cov: python -c \'print("without cov")\'\n cov: python -c \'print("with cov")\'\n ' tox_project = ._init at 0x7f73577d0700> tests/session/test_env_select.py:249: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e 3 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_102/p ...ibuteError: 'str' object has no attribute 'args' 3: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e 3 E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_102/p E standard output E 3: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E 3: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e 3\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_102/p\n...ibuteError: 'str' object has no attribute 'args'\n 3: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e 3 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_3_102/p ...ibuteError: 'str' object has no attribute 'args' 3: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ______________________ test_matches_combined_env[py3.10] _______________________ env_name = 'py3.10' tox_project = ._init at 0x7f73583d3a30> @pytest.mark.parametrize( "env_name", [ f"3.{_MINOR}", f"3.{_MINOR}-cov", "3-cov", "3", f"py3.{_MINOR}", f"py3{_MINOR}-cov", f"py3.{_MINOR}-cov", ], ) def test_matches_combined_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [testenv] package=skip commands = !cov: python -c 'print("without cov")' cov: python -c 'print("with cov")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = 'py3.10' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e py3.10 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_py3...Error: 'str' object has no attribute 'args' py3.10: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_py3_0/p) at 140133382170336 tox_ini = '\n [testenv]\n package=skip\n commands =\n !cov: python -c \'print("without cov")\'\n cov: python -c \'print("with cov")\'\n ' tox_project = ._init at 0x7f73583d3a30> tests/session/test_env_select.py:249: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py3.10 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_py3...Error: 'str' object has no attribute 'args' py3.10: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py3.10 E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_py3_0/p E standard output E py3.10: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py3.10: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py3.10\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_py3...Error: 'str' object has no attribute 'args'\n py3.10: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py3.10 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_py3...Error: 'str' object has no attribute 'args' py3.10: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _____________________ test_matches_combined_env[py310-cov] _____________________ env_name = 'py310-cov' tox_project = ._init at 0x7f7358521870> @pytest.mark.parametrize( "env_name", [ f"3.{_MINOR}", f"3.{_MINOR}-cov", "3-cov", "3", f"py3.{_MINOR}", f"py3{_MINOR}-cov", f"py3.{_MINOR}-cov", ], ) def test_matches_combined_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [testenv] package=skip commands = !cov: python -c 'print("without cov")' cov: python -c 'print("with cov")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = 'py310-cov' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e py310-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_...or: 'str' object has no attribute 'args' py310-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_py310/p) at 140133380598864 tox_ini = '\n [testenv]\n package=skip\n commands =\n !cov: python -c \'print("without cov")\'\n cov: python -c \'print("with cov")\'\n ' tox_project = ._init at 0x7f7358521870> tests/session/test_env_select.py:249: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py310-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_...or: 'str' object has no attribute 'args' py310-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py310-cov E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_py310/p E standard output E py310-cov: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py310-cov: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py310-cov\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_...or: 'str' object has no attribute 'args'\n py310-cov: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py310-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_...or: 'str' object has no attribute 'args' py310-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ____________________ test_matches_combined_env[py3.10-cov] _____________________ env_name = 'py3.10-cov' tox_project = ._init at 0x7f73583d0280> @pytest.mark.parametrize( "env_name", [ f"3.{_MINOR}", f"3.{_MINOR}-cov", "3-cov", "3", f"py3.{_MINOR}", f"py3{_MINOR}-cov", f"py3.{_MINOR}-cov", ], ) def test_matches_combined_env(env_name: str, tox_project: ToxProjectCreator) -> None: tox_ini = """ [testenv] package=skip commands = !cov: python -c 'print("without cov")' cov: python -c 'print("with cov")' """ proj = tox_project({"tox.ini": tox_ini}) outcome = proj.run("r", "-e", env_name) > outcome.assert_success() env_name = 'py3.10-cov' outcome = code: 2 cmd: /usr/bin/python3 -m tox r -e py3.10-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env...r: 'str' object has no attribute 'args' py3.10-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_py3_1/p) at 140133379831840 tox_ini = '\n [testenv]\n package=skip\n commands =\n !cov: python -c \'print("without cov")\'\n cov: python -c \'print("with cov")\'\n ' tox_project = ._init at 0x7f73583d0280> tests/session/test_env_select.py:249: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py3.10-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env...r: 'str' object has no attribute 'args' py3.10-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py3.10-cov E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env_py3_1/p E standard output E py3.10-cov: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py3.10-cov: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py3.10-cov\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env...r: 'str' object has no attribute 'args'\n py3.10-cov: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py3.10-cov cwd: /tmp/pytest-of-tkloczko/pytest-780/test_matches_combined_env...r: 'str' object has no attribute 'args' py3.10-cov: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _________________________ test_provision_requires_nok __________________________ tox_project = ._init at 0x7f73584049d0> def test_provision_requires_nok(tox_project: ToxProjectCreator) -> None: ini = "[tox]\nrequires = pkg-does-not-exist\n setuptools==1\nskipsdist=true\n" > outcome = tox_project({"tox.ini": ini}).run("c", "-e", "py") ini = '[tox]\nrequires = pkg-does-not-exist\n setuptools==1\nskipsdist=true\n' tox_project = ._init at 0x7f73584049d0> tests/test_provision.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'py') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73585f33d0> our_setup_state = .our_setup_state at 0x7f73583d1900> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_requires_nok0/p) at 140133380601984 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'py') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('c', '-e', 'py') provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f73582d1090> requires = ['pkg-does-not-exist', 'setuptools==1', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['pkg-does-not-exist', 'setuptools==1', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'pkg-does-not-exist' requires = ['pkg-does-not-exist', 'setuptools==1', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError __________________________ test_provision_no_recreate __________________________ tox_project = ._init at 0x7f7358406c20> def test_provision_no_recreate(tox_project: ToxProjectCreator) -> None: ini = "[tox]\nrequires = p\nskipsdist=true\n" > result = tox_project({"tox.ini": ini}).run("c", "-e", "py", "--no-provision") ini = '[tox]\nrequires = p\nskipsdist=true\n' tox_project = ._init at 0x7f7358406c20> tests/test_provision.py:178: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'py', '--no-provision') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f735772c730> our_setup_state = .our_setup_state at 0x7f73584069e0> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_no_recreate0/p) at 140133365120352 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'py', '--no-provision') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('c', '-e', 'py', '--no-provision') provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f73582d36d0> requires = ['p', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['p', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'p' requires = ['p', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError _______________________ test_provision_no_recreate_json ________________________ tox_project = ._init at 0x7f73584041f0> def test_provision_no_recreate_json(tox_project: ToxProjectCreator) -> None: ini = "[tox]\nrequires = p\nskipsdist=true\n" project = tox_project({"tox.ini": ini}) > result = project.run("c", "-e", "py", "--no-provision", "out.json") ini = '[tox]\nrequires = p\nskipsdist=true\n' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_no_recreate_jso0/p) at 140133376412304 tox_project = ._init at 0x7f73584041f0> tests/test_provision.py:186: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c', '-e', 'py', '--no-provision', 'out.json') code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f73581f4ac0> our_setup_state = .our_setup_state at 0x7f7358404c10> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_no_recreate_jso0/p) at 140133376412304 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c', '-e', 'py', '--no-provision', 'out.json') ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('c', '-e', 'py', '--no-provision', 'out.json') provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f7358405b40> requires = ['p', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['p', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'p' requires = ['p', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError __________________ test_provision_default_arguments_exists[r] __________________ tox_project = ._init at 0x7f7358404a60> subcommand = 'r' @pytest.mark.parametrize("subcommand", ["r", "p", "de", "l", "d", "c", "q", "e", "le"]) def test_provision_default_arguments_exists(tox_project: ToxProjectCreator, subcommand: str) -> None: ini = r""" [tox] requires = tox<4.14 [testenv] package = skip """ project = tox_project({"tox.ini": ini}) project.patch_execute(lambda r: 0 if "install" in r.run_id else None) > outcome = project.run(subcommand) ini = '\n [tox]\n requires =\n tox<4.14\n [testenv]\n package = skip\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen0/p) at 140133366228560 subcommand = 'r' tox_project = ._init at 0x7f7358404a60> tests/test_provision.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('r',) code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f735861c1f0> our_setup_state = .our_setup_state at 0x7f7358406290> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen0/p) at 140133366228560 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('r',) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('r',) provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f73583d11b0> requires = ['tox<4.14', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['tox<4.14', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'tox<4.14' requires = ['tox<4.14', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError __________________ test_provision_default_arguments_exists[p] __________________ tox_project = ._init at 0x7f73583d1d80> subcommand = 'p' @pytest.mark.parametrize("subcommand", ["r", "p", "de", "l", "d", "c", "q", "e", "le"]) def test_provision_default_arguments_exists(tox_project: ToxProjectCreator, subcommand: str) -> None: ini = r""" [tox] requires = tox<4.14 [testenv] package = skip """ project = tox_project({"tox.ini": ini}) project.patch_execute(lambda r: 0 if "install" in r.run_id else None) > outcome = project.run(subcommand) ini = '\n [tox]\n requires =\n tox<4.14\n [testenv]\n package = skip\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen1/p) at 140133376493264 subcommand = 'p' tox_project = ._init at 0x7f73583d1d80> tests/test_provision.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('p',) code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f735820b100> our_setup_state = .our_setup_state at 0x7f73575fe0e0> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen1/p) at 140133376493264 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('p',) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('p',) provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f73584a2e60> requires = ['tox<4.14', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['tox<4.14', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'tox<4.14' requires = ['tox<4.14', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError _________________ test_provision_default_arguments_exists[de] __________________ tox_project = ._init at 0x7f73584a28c0> subcommand = 'de' @pytest.mark.parametrize("subcommand", ["r", "p", "de", "l", "d", "c", "q", "e", "le"]) def test_provision_default_arguments_exists(tox_project: ToxProjectCreator, subcommand: str) -> None: ini = r""" [tox] requires = tox<4.14 [testenv] package = skip """ project = tox_project({"tox.ini": ini}) project.patch_execute(lambda r: 0 if "install" in r.run_id else None) > outcome = project.run(subcommand) ini = '\n [tox]\n requires =\n tox<4.14\n [testenv]\n package = skip\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen2/p) at 140133365549808 subcommand = 'de' tox_project = ._init at 0x7f73584a28c0> tests/test_provision.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('de',) code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f735862b370> our_setup_state = .our_setup_state at 0x7f73584112d0> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen2/p) at 140133365549808 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('de',) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('de',) provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f73584be3b0> requires = ['tox<4.14', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['tox<4.14', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'tox<4.14' requires = ['tox<4.14', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError __________________ test_provision_default_arguments_exists[l] __________________ tox_project = ._init at 0x7f73584bc550> subcommand = 'l' @pytest.mark.parametrize("subcommand", ["r", "p", "de", "l", "d", "c", "q", "e", "le"]) def test_provision_default_arguments_exists(tox_project: ToxProjectCreator, subcommand: str) -> None: ini = r""" [tox] requires = tox<4.14 [testenv] package = skip """ project = tox_project({"tox.ini": ini}) project.patch_execute(lambda r: 0 if "install" in r.run_id else None) > outcome = project.run(subcommand) ini = '\n [tox]\n requires =\n tox<4.14\n [testenv]\n package = skip\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen3/p) at 140133381018656 subcommand = 'l' tox_project = ._init at 0x7f73584bc550> tests/test_provision.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('l',) code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f735855cf10> our_setup_state = .our_setup_state at 0x7f73584be950> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen3/p) at 140133381018656 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('l',) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('l',) provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f73582d3520> requires = ['tox<4.14', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['tox<4.14', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'tox<4.14' requires = ['tox<4.14', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError __________________ test_provision_default_arguments_exists[d] __________________ tox_project = ._init at 0x7f73584becb0> subcommand = 'd' @pytest.mark.parametrize("subcommand", ["r", "p", "de", "l", "d", "c", "q", "e", "le"]) def test_provision_default_arguments_exists(tox_project: ToxProjectCreator, subcommand: str) -> None: ini = r""" [tox] requires = tox<4.14 [testenv] package = skip """ project = tox_project({"tox.ini": ini}) project.patch_execute(lambda r: 0 if "install" in r.run_id else None) > outcome = project.run(subcommand) ini = '\n [tox]\n requires =\n tox<4.14\n [testenv]\n package = skip\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen4/p) at 140133381078656 subcommand = 'd' tox_project = ._init at 0x7f73584becb0> tests/test_provision.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('d',) code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7356b8e110> our_setup_state = .our_setup_state at 0x7f73582d2200> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen4/p) at 140133381078656 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('d',) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('d',) provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f73582d1990> requires = ['tox<4.14', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['tox<4.14', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'tox<4.14' requires = ['tox<4.14', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError __________________ test_provision_default_arguments_exists[c] __________________ tox_project = ._init at 0x7f73582d3370> subcommand = 'c' @pytest.mark.parametrize("subcommand", ["r", "p", "de", "l", "d", "c", "q", "e", "le"]) def test_provision_default_arguments_exists(tox_project: ToxProjectCreator, subcommand: str) -> None: ini = r""" [tox] requires = tox<4.14 [testenv] package = skip """ project = tox_project({"tox.ini": ini}) project.patch_execute(lambda r: 0 if "install" in r.run_id else None) > outcome = project.run(subcommand) ini = '\n [tox]\n requires =\n tox<4.14\n [testenv]\n package = skip\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen5/p) at 140133382161264 subcommand = 'c' tox_project = ._init at 0x7f73582d3370> tests/test_provision.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('c',) code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f735835fdf0> our_setup_state = .our_setup_state at 0x7f73582d2680> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen5/p) at 140133382161264 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('c',) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('c',) provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f735835a440> requires = ['tox<4.14', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['tox<4.14', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'tox<4.14' requires = ['tox<4.14', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError __________________ test_provision_default_arguments_exists[q] __________________ tox_project = ._init at 0x7f73582d1120> subcommand = 'q' @pytest.mark.parametrize("subcommand", ["r", "p", "de", "l", "d", "c", "q", "e", "le"]) def test_provision_default_arguments_exists(tox_project: ToxProjectCreator, subcommand: str) -> None: ini = r""" [tox] requires = tox<4.14 [testenv] package = skip """ project = tox_project({"tox.ini": ini}) project.patch_execute(lambda r: 0 if "install" in r.run_id else None) > outcome = project.run(subcommand) ini = '\n [tox]\n requires =\n tox<4.14\n [testenv]\n package = skip\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen6/p) at 140133379388080 subcommand = 'q' tox_project = ._init at 0x7f73582d1120> tests/test_provision.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('q',) code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f735879c760> our_setup_state = .our_setup_state at 0x7f7358358700> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen6/p) at 140133379388080 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('q',) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('q',) provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f735835b0a0> requires = ['tox<4.14', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['tox<4.14', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'tox<4.14' requires = ['tox<4.14', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError __________________ test_provision_default_arguments_exists[e] __________________ tox_project = ._init at 0x7f7358359fc0> subcommand = 'e' @pytest.mark.parametrize("subcommand", ["r", "p", "de", "l", "d", "c", "q", "e", "le"]) def test_provision_default_arguments_exists(tox_project: ToxProjectCreator, subcommand: str) -> None: ini = r""" [tox] requires = tox<4.14 [testenv] package = skip """ project = tox_project({"tox.ini": ini}) project.patch_execute(lambda r: 0 if "install" in r.run_id else None) > outcome = project.run(subcommand) ini = '\n [tox]\n requires =\n tox<4.14\n [testenv]\n package = skip\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen7/p) at 140133365136112 subcommand = 'e' tox_project = ._init at 0x7f7358359fc0> tests/test_provision.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('e',) code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7357afa950> our_setup_state = .our_setup_state at 0x7f735835b010> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen7/p) at 140133365136112 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('e',) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('e',) provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f7358258790> requires = ['tox<4.14', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['tox<4.14', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'tox<4.14' requires = ['tox<4.14', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError _________________ test_provision_default_arguments_exists[le] __________________ tox_project = ._init at 0x7f735835beb0> subcommand = 'le' @pytest.mark.parametrize("subcommand", ["r", "p", "de", "l", "d", "c", "q", "e", "le"]) def test_provision_default_arguments_exists(tox_project: ToxProjectCreator, subcommand: str) -> None: ini = r""" [tox] requires = tox<4.14 [testenv] package = skip """ project = tox_project({"tox.ini": ini}) project.patch_execute(lambda r: 0 if "install" in r.run_id else None) > outcome = project.run(subcommand) ini = '\n [tox]\n requires =\n tox<4.14\n [testenv]\n package = skip\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen8/p) at 140133376557008 subcommand = 'le' tox_project = ._init at 0x7f735835beb0> tests/test_provision.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:287: in run tox_run(args) args = ('le',) code = None from_cwd = None m = <_pytest.monkeypatch.MonkeyPatch object at 0x7f7358249c00> our_setup_state = .our_setup_state at 0x7f7358258ee0> raise_on_config_fail = True self = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_provision_default_argumen8/p) at 140133376557008 state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:20: in run result = main(sys.argv[1:] if args is None else args) args = ('le',) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/run.py:42: in main result = provision(state) args = ('le',) provision = state = ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:90: in provision missing = _get_missing(requires) MANAGER = add_tox_requires_min_version = .add_tox_requires_min_version at 0x7f7358259e10> requires = ['tox<4.14', ] state = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ requires = ['tox<4.14', ] def _get_missing(requires: list[Requirement]) -> list[tuple[Requirement, str | None]]: missing: list[tuple[Requirement, str | None]] = [] for package in requires: > package_name = canonicalize_name(package.name) E AttributeError: 'str' object has no attribute 'name' missing = [] package = 'tox<4.14' requires = ['tox<4.14', ] ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/provision.py:132: AttributeError __________________________ test_python_set_hash_seed ___________________________ tox_project = ._init at 0x7f73573d71c0> def test_python_set_hash_seed(tox_project: ToxProjectCreator) -> None: ini = "[testenv]\npackage=skip\ncommands=python -c 'import os; print(os.environ[\"PYTHONHASHSEED\"])'" prj = tox_project({"tox.ini": ini}) result = prj.run("r", "-e", "py", "--hashseed", "10") > result.assert_success() ini = '[testenv]\npackage=skip\ncommands=python -c \'import os; print(os.environ["PYTHONHASHSEED"])\'' prj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_python_set_hash_seed0/p) at 140133376414848 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed 10 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_set_has...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73573d71c0> tests/tox_env/python/test_python_api.py:187: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed 10 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_set_has...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py --hashseed 10 E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_set_hash_seed0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py --hashseed 10\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_set_has...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed 10 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_set_has...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ________________________ test_python_generate_hash_seed ________________________ tox_project = ._init at 0x7f735814b010> def test_python_generate_hash_seed(tox_project: ToxProjectCreator) -> None: ini = "[testenv]\npackage=skip\ncommands=python -c 'import os; print(os.environ[\"PYTHONHASHSEED\"])'" prj = tox_project({"tox.ini": ini}) result = prj.run("r", "-e", "py") > result.assert_success() ini = '[testenv]\npackage=skip\ncommands=python -c \'import os; print(os.environ["PYTHONHASHSEED"])\'' prj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_python_generate_hash_seed0/p) at 140133381185280 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_generate_hash_seed0/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f735814b010> tests/tox_env/python/test_python_api.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_generate_hash_seed0/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_generate_hash_seed0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_generate_hash_seed0/p...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_generate_hash_seed0/p...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError __________________________ test_python_keep_hash_seed __________________________ tox_project = ._init at 0x7f735814add0> def test_python_keep_hash_seed(tox_project: ToxProjectCreator) -> None: ini = """ [testenv] package=skip set_env=PYTHONHASHSEED=12 commands=python -c 'import os; print(os.environ["PYTHONHASHSEED"])' """ result = tox_project({"tox.ini": ini}).run("r", "-e", "py") > result.assert_success() ini = '\n [testenv]\n package=skip\n set_env=PYTHONHASHSEED=12\n commands=python -c \'import os; print(os.environ["PYTHONHASHSEED"])\'\n ' result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_keep_hash_seed0/p sta...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f735814add0> tests/tox_env/python/test_python_api.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_keep_hash_seed0/p sta...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_keep_hash_seed0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_keep_hash_seed0/p\nsta...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_keep_hash_seed0/p sta...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ________________________ test_python_disable_hash_seed _________________________ tox_project = ._init at 0x7f735814a560> def test_python_disable_hash_seed(tox_project: ToxProjectCreator) -> None: ini = "[testenv]\npackage=skip\ncommands=python -c 'import os; print(os.environ.get(\"PYTHONHASHSEED\"))'" prj = tox_project({"tox.ini": ini}) result = prj.run("r", "-e", "py", "--hashseed", "notset") > result.assert_success() ini = '[testenv]\npackage=skip\ncommands=python -c \'import os; print(os.environ.get("PYTHONHASHSEED"))\'' prj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_python_disable_hash_seed0/p) at 140133361295920 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed notset cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_dis...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f735814a560> tests/tox_env/python/test_python_api.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed notset cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_dis...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py --hashseed notset E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_disable_hash_seed0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py --hashseed notset\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_dis...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed notset cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_dis...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _________________ test_python_hash_seed_from_env_and_override __________________ tox_project = ._init at 0x7f73581495a0> def test_python_hash_seed_from_env_and_override(tox_project: ToxProjectCreator) -> None: ini = "[testenv]\npackage=skip\ncommands=python -c 'import os; print(os.environ.get(\"PYTHONHASHSEED\"))'" with patch.dict("os.environ", {"PYTHONHASHSEED": "14"}): result = tox_project({"tox.ini": ini}).run("r", "-e", "py", "--hashseed", "15") > result.assert_success() ini = '[testenv]\npackage=skip\ncommands=python -c \'import os; print(os.environ.get("PYTHONHASHSEED"))\'' result = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed 15 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_hash_se...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73581495a0> tests/tox_env/python/test_python_api.py:251: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed 15 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_hash_se...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py --hashseed 15 E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_hash_seed_from_env0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py --hashseed 15\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_hash_se...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed 15 cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_hash_se...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError __________________ test_python_hash_seed_from_env_and_disable __________________ tox_project = ._init at 0x7f7358148160> def test_python_hash_seed_from_env_and_disable(tox_project: ToxProjectCreator) -> None: ini = "[testenv]\npackage=skip\ncommands=python -c 'import os; print(os.environ.get(\"PYTHONHASHSEED\"))'" with patch.dict("os.environ", {"PYTHONHASHSEED": "16"}): result = tox_project({"tox.ini": ini}).run("r", "-e", "py", "--hashseed", "notset") > result.assert_success() ini = '[testenv]\npackage=skip\ncommands=python -c \'import os; print(os.environ.get("PYTHONHASHSEED"))\'' result = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed notset cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_has...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f7358148160> tests/tox_env/python/test_python_api.py:259: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed notset cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_has...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py --hashseed notset E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_hash_seed_from_env1/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py --hashseed notset\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_has...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py --hashseed notset cwd: /tmp/pytest-of-tkloczko/pytest-780/test_python_has...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ________________________ test_dependency_groups_single _________________________ tox_project = ._init at 0x7f7358713880> def test_dependency_groups_single(tox_project: ToxProjectCreator) -> None: project = tox_project( { "tox.toml": """ [env_run_base] skip_install = true dependency_groups = ["test"] """, "pyproject.toml": """ [dependency-groups] test = [ "furo>=2024.8.6", "sphinx>=8.0.2", ] """, }, ) execute_calls = project.patch_execute() result = project.run("r", "-e", "py") > result.assert_success() execute_calls = project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_single0/p) at 140133360957712 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_single0/p ...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f7358713880> tests/tox_env/python/test_python_runner.py:201: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_single0/p ...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_single0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 47, in _evaluate E tox_env.setup() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/api.py", line 251, in setup E self._setup_env() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/runner.py", line 100, in _setup_env E self._install_dependency_groups() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/runner.py", line 107, in _install_dependency_groups E groups: set[str] = self.conf["dependency_groups"] E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py", line 117, in __getitem__ E return self.load(item) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py", line 128, in load E return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py", line 110, in __call__ E value = loader.load(key, self.of_type, self.factory, conf, args) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py", line 149, in load E converted = self.build(key, of_type, factory, conf, raw, args) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py", line 67, in build E return self.to(exploded, of_type, factory) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py", line 48, in to E return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py", line 83, in to_list E return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py", line 37, in validate E validate(va, entry_type) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py", line 66, in validate E elif not isinstance(val, of_type): E TypeError: isinstance() argument 2 cannot be a parameterized generic E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_single0/p\n...() argument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_single0/p ...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _______________________ test_dependency_groups_multiple ________________________ tox_project = ._init at 0x7f73584bdea0> def test_dependency_groups_multiple(tox_project: ToxProjectCreator) -> None: project = tox_project( { "tox.toml": """ [env_run_base] skip_install = true dependency_groups = ["test", "type"] """, "pyproject.toml": """ [dependency-groups] test = [ "furo>=2024.8.6", "sphinx>=8.0.2", ] type = [ "furo>=2024.8.6", "mypy>=1", ] """, }, ) execute_calls = project.patch_execute() result = project.run("r", "-e", "py") > result.assert_success() execute_calls = project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_multipl0/p) at 140133360648304 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_multipl0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tox_project = ._init at 0x7f73584bdea0> tests/tox_env/python/test_python_runner.py:233: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_multipl0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_multipl0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 47, in _evaluate E tox_env.setup() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/api.py", line 251, in setup E self._setup_env() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/runner.py", line 100, in _setup_env E self._install_dependency_groups() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/runner.py", line 107, in _install_dependency_groups E groups: set[str] = self.conf["dependency_groups"] E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py", line 117, in __getitem__ E return self.load(item) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py", line 128, in load E return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py", line 110, in __call__ E value = loader.load(key, self.of_type, self.factory, conf, args) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py", line 149, in load E converted = self.build(key, of_type, factory, conf, raw, args) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py", line 67, in build E return self.to(exploded, of_type, factory) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py", line 48, in to E return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py", line 83, in to_list E return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py", line 37, in validate E validate(va, entry_type) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py", line 66, in validate E elif not isinstance(val, of_type): E TypeError: isinstance() argument 2 cannot be a parameterized generic E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_multipl0/p...() argument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.05 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_multipl0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ________________________ test_dependency_groups_include ________________________ tox_project = ._init at 0x7f73582d3910> def test_dependency_groups_include(tox_project: ToxProjectCreator) -> None: project = tox_project( { "tox.toml": """ [env_run_base] skip_install = true dependency_groups = ["test", "type"] """, "pyproject.toml": """ [dependency-groups] test = [ "furo>=2024.8.6", "sphinx>=8.0.2", ] type = [ {include-group = "test"}, "mypy>=1", ] """, }, ) execute_calls = project.patch_execute() result = project.run("r", "-e", "py") > result.assert_success() execute_calls = project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_include0/p) at 140133377013984 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_include0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73582d3910> tests/tox_env/python/test_python_runner.py:269: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_include0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r -e py E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_include0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 47, in _evaluate E tox_env.setup() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/api.py", line 251, in setup E self._setup_env() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/runner.py", line 100, in _setup_env E self._install_dependency_groups() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/runner.py", line 107, in _install_dependency_groups E groups: set[str] = self.conf["dependency_groups"] E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py", line 117, in __getitem__ E return self.load(item) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/sets.py", line 128, in load E return config_definition.__call__(self._conf, self.loaders, ConfigLoadArgs(chain, self.name, self.env_name)) # noqa: PLC2801 E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/of_type.py", line 110, in __call__ E value = loader.load(key, self.of_type, self.factory, conf, args) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/api.py", line 149, in load E converted = self.build(key, of_type, factory, conf, raw, args) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py", line 67, in build E return self.to(exploded, of_type, factory) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/convert.py", line 48, in to E return list(self.to_list(raw, of_type=of_type)) # type: ignore[return-value] E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/__init__.py", line 83, in to_list E return iter(validate(value, of)) # type: ignore[call-overload,no-any-return] E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py", line 37, in validate E validate(va, entry_type) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/config/loader/toml/_validate.py", line 66, in validate E elif not isinstance(val, of_type): E TypeError: isinstance() argument 2 cannot be a parameterized generic E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.04 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_include0/p...() argument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_include0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _______________________ test_dependency_groups_not_table _______________________ tox_project = ._init at 0x7f73573bb9a0> def test_dependency_groups_not_table(tox_project: ToxProjectCreator) -> None: project = tox_project( { "tox.toml": """ [env_run_base] skip_install = true dependency_groups = ["test"] """, "pyproject.toml": """ dependency-groups = 1 """, }, ) result = project.run("r", "-e", "py") result.assert_failed() > assert "py: failed with dependency-groups is int instead of table\n" in result.out E assert 'py: failed with dependency-groups is int instead of table\n' in 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' E + where 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_not_tab0/p...() argument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.out project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_not_tab0/p) at 140133362782352 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_not_tab0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73573bb9a0> tests/tox_env/python/test_python_runner.py:297: AssertionError ________________________ test_dependency_groups_missing ________________________ tox_project = ._init at 0x7f73573ba950> def test_dependency_groups_missing(tox_project: ToxProjectCreator) -> None: project = tox_project( { "tox.toml": """ [env_run_base] skip_install = true dependency_groups = ["type"] """, "pyproject.toml": """ [dependency-groups] test = [ "furo>=2024.8.6", ] """, }, ) result = project.run("r", "-e", "py") result.assert_failed() > assert "py: failed with dependency group 'type' not found\n" in result.out E assert "py: failed with dependency group 'type' not found\n" in 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' E + where 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_missing0/p...() argument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.out project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_missing0/p) at 140133361197232 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_missing0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73573ba950> tests/tox_env/python/test_python_runner.py:319: AssertionError _______________________ test_dependency_groups_not_list ________________________ tox_project = ._init at 0x7f73573b9630> def test_dependency_groups_not_list(tox_project: ToxProjectCreator) -> None: project = tox_project( { "tox.toml": """ [env_run_base] skip_install = true dependency_groups = ["test"] """, "pyproject.toml": """ [dependency-groups] test = 1 """, }, ) result = project.run("r", "-e", "py") result.assert_failed() > assert "py: failed with dependency group 'test' is not a list\n" in result.out E assert "py: failed with dependency group 'test' is not a list\n" in 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' E + where 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_not_lis0/p...() argument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.out project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_not_lis0/p) at 140133362615728 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_not_lis0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73573b9630> tests/tox_env/python/test_python_runner.py:339: AssertionError ____________________ test_dependency_groups_bad_requirement ____________________ tox_project = ._init at 0x7f73573b9120> def test_dependency_groups_bad_requirement(tox_project: ToxProjectCreator) -> None: project = tox_project( { "tox.toml": """ [env_run_base] skip_install = true dependency_groups = ["test"] """, "pyproject.toml": """ [dependency-groups] test = [ "whatever --" ] """, }, ) result = project.run("r", "-e", "py") result.assert_failed() > assert ( "py: failed with 'whatever --' is not valid requirement due to " "Expected end or semicolon (after name and no valid version specifier)\n whatever --\n ^\n" in result.out ) E assert "py: failed with 'whatever --' is not valid requirement due to Expected end or semicolon (after name and no valid version specifier)\n whatever --\n ^\n" in 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' E + where 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_bad_req0/p...() argument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.out project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_bad_req0/p) at 140133360822608 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_bad_req0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73573b9120> tests/tox_env/python/test_python_runner.py:359: AssertionError _______________________ test_dependency_groups_bad_entry _______________________ tox_project = ._init at 0x7f73583d0f70> def test_dependency_groups_bad_entry(tox_project: ToxProjectCreator) -> None: project = tox_project( { "tox.toml": """ [env_run_base] skip_install = true dependency_groups = ["test"] """, "pyproject.toml": """ [dependency-groups] test = [ { magic = "ok" } ] """, }, ) result = project.run("r", "-e", "py") result.assert_failed() > assert "py: failed with invalid dependency group item: {'magic': 'ok'}\n" in result.out E assert "py: failed with invalid dependency group item: {'magic': 'ok'}\n" in 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' E + where 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_bad_ent0/p...() argument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.out project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_bad_ent0/p) at 140133377108640 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_bad_ent0/p...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73583d0f70> tests/tox_env/python/test_python_runner.py:383: AssertionError ________________________ test_dependency_groups_cyclic _________________________ tox_project = ._init at 0x7f73582d0ee0> def test_dependency_groups_cyclic(tox_project: ToxProjectCreator) -> None: project = tox_project( { "tox.toml": """ [env_run_base] skip_install = true dependency_groups = ["test"] """, "pyproject.toml": """ [dependency-groups] test = [ { include-group = "type" } ] type = [ { include-group = "test" } ] """, }, ) result = project.run("r", "-e", "py") result.assert_failed() > assert "py: failed with Cyclic dependency group include: 'test' -> ('test', 'type')\n" in result.out E assert "py: failed with Cyclic dependency group include: 'test' -> ('test', 'type')\n" in 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' E + where 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...rgument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n' = code: 2\ncmd: /usr/bin/python3 -m tox r -e py\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_cyclic0/p\n...() argument 2 cannot be a parameterized generic\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.04 seconds)\n.out project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_cyclic0/p) at 140133376591856 result = code: 2 cmd: /usr/bin/python3 -m tox r -e py cwd: /tmp/pytest-of-tkloczko/pytest-780/test_dependency_groups_cyclic0/p ...() argument 2 cannot be a parameterized generic py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.04 seconds) tox_project = ._init at 0x7f73582d0ee0> tests/tox_env/python/test_python_runner.py:404: AssertionError __________________________ test_build_wheel_external ___________________________ tox_project = ._init at 0x7f73572264d0> demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') @pytest.mark.usefixtures("enable_pip_pypi_access") def test_build_wheel_external(tox_project: ToxProjectCreator, demo_pkg_inline: Path) -> None: ini = """ [testenv] package = external package_env = .ext commands = python -c 'from demo_pkg_inline import do; do()' [testenv:.ext] deps = build package_glob = {envtmpdir}{/}dist{/}*.whl commands = pyproject-build -w . -o {envtmpdir}{/}dist """ project = tox_project({"tox.ini": ini}) result = project.run("r", "--root", str(demo_pkg_inline), "--workdir", str(project.path)) > result.assert_success() demo_pkg_inline = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline') ini = "\n [testenv]\n package = external\n package_env = .ext\n commands =\n python -c 'from demo_pkg_inl... package_glob = {envtmpdir}{/}dist{/}*.whl\n commands =\n pyproject-build -w . -o {envtmpdir}{/}dist\n " project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_build_wheel_external0/p) at 140133364934848 result = code: 2 cmd: /usr/bin/python3 -m tox r --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline --workdir...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (1.58 seconds) evaluation failed :( (1.62 seconds) tox_project = ._init at 0x7f73572264d0> tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py:106: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline --workdir...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (1.58 seconds) evaluation failed :( (1.62 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline --workdir /tmp/pytest-of-tkloczko/pytest-780/test_build_wheel_external0/p E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_build_wheel_external0/p E standard output E .ext: install_requires /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python -I -m pip install build E .ext: install_deps /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline> python -I -m pip install build E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 47, in _evaluate E tox_env.setup() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/api.py", line 252, in setup E self._setup_with_env() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/runner.py", line 146, in _setup_with_env E self._setup_pkg() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/runner.py", line 169, in _setup_pkg E self._packages = self._build_packages() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/runner.py", line 122, in _build_packages E packages = package_env.perform_packaging(self.conf) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/package.py", line 47, in _func E return meth(*args, **kwargs) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/virtual_env/package/cmd_builder.py", line 84, in perform_packaging E status = run_command_set(self, "commands", chdir, ignore_errors, []) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (1.58 seconds) E evaluation failed :( (1.62 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline --workdir...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (1.58 seconds)\n evaluation failed :( (1.62 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r --root /home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_inline --workdir...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (1.58 seconds) evaluation failed :( (1.62 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _____________________ test_build_wheel_external_fail_build _____________________ tox_project = ._init at 0x7f73573d64d0> def test_build_wheel_external_fail_build(tox_project: ToxProjectCreator) -> None: ini = """ [testenv] package = external [testenv:.pkg_external] commands = xyz """ project = tox_project({"tox.ini": ini}) result = project.run("r") result.assert_failed() > assert "stopping as failed to build package" in result.out, result.out E AssertionError: py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 47, in _evaluate E tox_env.setup() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/api.py", line 252, in setup E self._setup_with_env() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/runner.py", line 146, in _setup_with_env E self._setup_pkg() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/runner.py", line 169, in _setup_pkg E self._packages = self._build_packages() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/runner.py", line 122, in _build_packages E packages = package_env.perform_packaging(self.conf) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/package.py", line 47, in _func E return meth(*args, **kwargs) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/virtual_env/package/cmd_builder.py", line 84, in perform_packaging E status = run_command_set(self, "commands", chdir, ignore_errors, []) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.04 seconds) E evaluation failed :( (0.08 seconds) E E assert 'stopping as failed to build package' in 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...r: \'str\' object has no attribute \'args\'\n py: FAIL code 2 (0.04 seconds)\n evaluation failed :( (0.08 seconds)\n' E + where 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...r: \'str\' object has no attribute \'args\'\n py: FAIL code 2 (0.04 seconds)\n evaluation failed :( (0.08 seconds)\n' = code: 2\ncmd: /usr/bin/python3 -m tox r\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_build_wheel_external_fail0/p\nstand...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.04 seconds)\n evaluation failed :( (0.08 seconds)\n.out ini = '\n [testenv]\n package = external\n [testenv:.pkg_external]\n commands = xyz\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_build_wheel_external_fail0/p) at 140133360219904 result = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_build_wheel_external_fail0/p stand...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.04 seconds) evaluation failed :( (0.08 seconds) tox_project = ._init at 0x7f73573d64d0> tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py:121: AssertionError ___________________ test_build_wheel_external_fail_many_pkg ____________________ tox_project = ._init at 0x7f73573e5a20> def test_build_wheel_external_fail_many_pkg(tox_project: ToxProjectCreator) -> None: ini = """ [testenv] package = external [testenv:.pkg_external] commands = python -c 'from pathlib import Path; (Path(r"{env_tmp_dir}") / "dist").mkdir()' python -c 'from pathlib import Path; (Path(r"{env_tmp_dir}") / "dist" / "a").write_text("")' python -c 'from pathlib import Path; (Path(r"{env_tmp_dir}") / "dist" / "b").write_text("")' """ project = tox_project({"tox.ini": ini}) result = project.run("r") result.assert_failed() > assert "failed with found more than one package " in result.out, result.out E AssertionError: py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 47, in _evaluate E tox_env.setup() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/api.py", line 252, in setup E self._setup_with_env() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/runner.py", line 146, in _setup_with_env E self._setup_pkg() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/runner.py", line 169, in _setup_pkg E self._packages = self._build_packages() E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/runner.py", line 122, in _build_packages E packages = package_env.perform_packaging(self.conf) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/package.py", line 47, in _func E return meth(*args, **kwargs) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/tox_env/python/virtual_env/package/cmd_builder.py", line 84, in perform_packaging E status = run_command_set(self, "commands", chdir, ignore_errors, []) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.04 seconds) E evaluation failed :( (0.08 seconds) E E assert 'failed with found more than one package ' in 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...r: \'str\' object has no attribute \'args\'\n py: FAIL code 2 (0.04 seconds)\n evaluation failed :( (0.08 seconds)\n' E + where 'py: internal error\nTraceback (most recent call last):\n File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2...r: \'str\' object has no attribute \'args\'\n py: FAIL code 2 (0.04 seconds)\n evaluation failed :( (0.08 seconds)\n' = code: 2\ncmd: /usr/bin/python3 -m tox r\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_build_wheel_external_fail1/p\nstand...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.04 seconds)\n evaluation failed :( (0.08 seconds)\n.out ini = '\n [testenv]\n package = external\n [testenv:.pkg_external]\n commands =\n python -c \'from pathli...xt("")\'\n python -c \'from pathlib import Path; (Path(r"{env_tmp_dir}") / "dist" / "b").write_text("")\'\n ' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_build_wheel_external_fail1/p) at 140133376399184 result = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_build_wheel_external_fail1/p stand...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.04 seconds) evaluation failed :( (0.08 seconds) tox_project = ._init at 0x7f73573e5a20> tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py:150: AssertionError ____________________ test_project_package_with_deps[sdist] _____________________ tox_project = ._init at 0x7f7357062b00> demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') package = 'sdist' @pytest.mark.parametrize("package", ["sdist", "wheel", "editable", "editable-legacy", "skip"]) def test_project_package_with_deps(tox_project: ToxProjectCreator, demo_pkg_setuptools: Path, package: str) -> None: ini = f"[testenv]\npackage={package}\n[pkgenv]\ndeps = A" proj = tox_project({"tox.ini": ini}, base=demo_pkg_setuptools) execute_calls = proj.patch_execute(lambda r: 0 if "install" in r.run_id else None) result = proj.run("r", "--notest") > result.assert_success() demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') execute_calls = ini = '[testenv]\npackage=sdist\n[pkgenv]\ndeps = A' package = 'sdist' proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps0/p) at 140133358075760 result = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.04 seconds) evaluation failed :( (0.06 seconds) tox_project = ._init at 0x7f7357062b00> tests/tox_env/python/virtual_env/package/test_package_pyproject.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.04 seconds) evaluation failed :( (0.06 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 1 E cmd: /usr/bin/python3 -m tox r --notest E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps0/p E standard output E .pkg: install_requires> python -I -m pip install 'setuptools>=63' E .pkg: pip cannot install 'A' E py: FAIL code 1 (0.04 seconds) E evaluation failed :( (0.06 seconds) E E assert False E + where False = code: 1\ncmd: /usr/bin/python3 -m tox r --notest\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63'\n.pkg: pip cannot install 'A'\n py: FAIL code 1 (0.04 seconds)\n evaluation failed :( (0.06 seconds)\n.success self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.04 seconds) evaluation failed :( (0.06 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ____________________ test_project_package_with_deps[wheel] _____________________ tox_project = ._init at 0x7f73571f4ee0> demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') package = 'wheel' @pytest.mark.parametrize("package", ["sdist", "wheel", "editable", "editable-legacy", "skip"]) def test_project_package_with_deps(tox_project: ToxProjectCreator, demo_pkg_setuptools: Path, package: str) -> None: ini = f"[testenv]\npackage={package}\n[pkgenv]\ndeps = A" proj = tox_project({"tox.ini": ini}, base=demo_pkg_setuptools) execute_calls = proj.patch_execute(lambda r: 0 if "install" in r.run_id else None) result = proj.run("r", "--notest") > result.assert_success() demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') execute_calls = ini = '[testenv]\npackage=wheel\n[pkgenv]\ndeps = A' package = 'wheel' proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps1/p) at 140133365430160 result = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.03 seconds) evaluation failed :( (0.06 seconds) tox_project = ._init at 0x7f73571f4ee0> tests/tox_env/python/virtual_env/package/test_package_pyproject.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.03 seconds) evaluation failed :( (0.06 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 1 E cmd: /usr/bin/python3 -m tox r --notest E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps1/p E standard output E .pkg: install_requires> python -I -m pip install 'setuptools>=63' E .pkg: pip cannot install 'A' E py: FAIL code 1 (0.03 seconds) E evaluation failed :( (0.06 seconds) E E assert False E + where False = code: 1\ncmd: /usr/bin/python3 -m tox r --notest\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63'\n.pkg: pip cannot install 'A'\n py: FAIL code 1 (0.03 seconds)\n evaluation failed :( (0.06 seconds)\n.success self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.03 seconds) evaluation failed :( (0.06 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ___________________ test_project_package_with_deps[editable] ___________________ tox_project = ._init at 0x7f73572348b0> demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') package = 'editable' @pytest.mark.parametrize("package", ["sdist", "wheel", "editable", "editable-legacy", "skip"]) def test_project_package_with_deps(tox_project: ToxProjectCreator, demo_pkg_setuptools: Path, package: str) -> None: ini = f"[testenv]\npackage={package}\n[pkgenv]\ndeps = A" proj = tox_project({"tox.ini": ini}, base=demo_pkg_setuptools) execute_calls = proj.patch_execute(lambda r: 0 if "install" in r.run_id else None) result = proj.run("r", "--notest") > result.assert_success() demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') execute_calls = ini = '[testenv]\npackage=editable\n[pkgenv]\ndeps = A' package = 'editable' proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps2/p) at 140133381015200 result = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.03 seconds) evaluation failed :( (0.06 seconds) tox_project = ._init at 0x7f73572348b0> tests/tox_env/python/virtual_env/package/test_package_pyproject.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.03 seconds) evaluation failed :( (0.06 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 1 E cmd: /usr/bin/python3 -m tox r --notest E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps2/p E standard output E .pkg: install_requires> python -I -m pip install 'setuptools>=63' E .pkg: pip cannot install 'A' E py: FAIL code 1 (0.03 seconds) E evaluation failed :( (0.06 seconds) E E assert False E + where False = code: 1\ncmd: /usr/bin/python3 -m tox r --notest\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63'\n.pkg: pip cannot install 'A'\n py: FAIL code 1 (0.03 seconds)\n evaluation failed :( (0.06 seconds)\n.success self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.03 seconds) evaluation failed :( (0.06 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _______________ test_project_package_with_deps[editable-legacy] ________________ tox_project = ._init at 0x7f73571f6c20> demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') package = 'editable-legacy' @pytest.mark.parametrize("package", ["sdist", "wheel", "editable", "editable-legacy", "skip"]) def test_project_package_with_deps(tox_project: ToxProjectCreator, demo_pkg_setuptools: Path, package: str) -> None: ini = f"[testenv]\npackage={package}\n[pkgenv]\ndeps = A" proj = tox_project({"tox.ini": ini}, base=demo_pkg_setuptools) execute_calls = proj.patch_execute(lambda r: 0 if "install" in r.run_id else None) result = proj.run("r", "--notest") > result.assert_success() demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') execute_calls = ini = '[testenv]\npackage=editable-legacy\n[pkgenv]\ndeps = A' package = 'editable-legacy' proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps3/p) at 140133376745936 result = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.04 seconds) evaluation failed :( (0.06 seconds) tox_project = ._init at 0x7f73571f6c20> tests/tox_env/python/virtual_env/package/test_package_pyproject.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.04 seconds) evaluation failed :( (0.06 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 1 E cmd: /usr/bin/python3 -m tox r --notest E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps3/p E standard output E .pkg: install_requires> python -I -m pip install 'setuptools>=63' E .pkg: pip cannot install 'A' E py: FAIL code 1 (0.04 seconds) E evaluation failed :( (0.06 seconds) E E assert False E + where False = code: 1\ncmd: /usr/bin/python3 -m tox r --notest\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63'\n.pkg: pip cannot install 'A'\n py: FAIL code 1 (0.04 seconds)\n evaluation failed :( (0.06 seconds)\n.success self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_project_package_with_deps...l 'setuptools>=63' .pkg: pip cannot install 'A' py: FAIL code 1 (0.04 seconds) evaluation failed :( (0.06 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _____________________ test_pyproject_config_settings_sdist _____________________ tox_project = ._init at 0x7f73572267a0> demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') mocker = def test_pyproject_config_settings_sdist( tox_project: ToxProjectCreator, demo_pkg_setuptools: Path, mocker: MockerFixture, ) -> None: ini = """ [tox] env_list = sdist [testenv] wheel_build_env = .pkg package = sdist [testenv:.pkg] config_settings_get_requires_for_build_sdist = A = 1 config_settings_build_sdist = B = 2 config_settings_get_requires_for_build_wheel = C = 3 config_settings_prepare_metadata_for_build_wheel = D = 4 """ proj = tox_project({"tox.ini": ini}, base=demo_pkg_setuptools) proj.patch_execute(lambda r: 0 if "install" in r.run_id else None) write_stdin = mocker.spy(LocalSubprocessExecuteStatus, "write_stdin") result = proj.run("r", "--notest", from_cwd=proj.path) > result.assert_success() demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') ini = '\n [tox]\n env_list = sdist\n\n [testenv]\n wheel_build_env = .pkg\n package = sdist\n\n [testenv:....nfig_settings_get_requires_for_build_wheel = C = 3\n config_settings_prepare_metadata_for_build_wheel = D = 4\n ' mocker = proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings0/p) at 140133377076208 result = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...7_get_requires_for_build_sdist-xu61qy_x.json sdist: FAIL code 1 (0.50 seconds) evaluation failed :( (0.53 seconds) tox_project = ._init at 0x7f73572267a0> write_stdin = tests/tox_env/python/virtual_env/package/test_package_pyproject.py:331: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...7_get_requires_for_build_sdist-xu61qy_x.json sdist: FAIL code 1 (0.50 seconds) evaluation failed :( (0.53 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 1 E cmd: /usr/bin/python3 -m tox r --notest E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings0/p E standard output E .pkg: install_requires> python -I -m pip install 'setuptools>=63' E .pkg: _optional_hooks> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta E .pkg: get_requires_for_build_sdist> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta E sdist: packaging backend failed (code=1), with AttributeError: 'list' object has no attribute 'get' E Traceback (most recent call last): E File "/usr/lib/python3.10/site-packages/pyproject_api/_backend.py", line 93, in run E outcome = backend_proxy(parsed_message["cmd"], **parsed_message["kwargs"]) E File "/usr/lib/python3.10/site-packages/pyproject_api/_backend.py", line 34, in __call__ E return getattr(on_object, name)(*args, **kwargs) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings0/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 335, in get_requires_for_build_sdist E return self._get_build_requires(config_settings, requirements=[]) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings0/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires E sys.argv = [ E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings0/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 225, in _global_args E yield from self._get_config("--global-option", config_settings) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings0/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 192, in _get_config E opts = cfg.get(key) or [] E AttributeError: 'list' object has no attribute 'get' E Backend: run command get_requires_for_build_sdist with args {'config_settings': ['A = 1']} E Backend: Wrote response {'code': 1, 'exc_type': 'AttributeError', 'exc_msg': "'list' object has no attribute 'get'"} to /tmp/pep517_get_requires_for_build_sdist-xu61qy_x.json E sdist: FAIL code 1 (0.50 seconds) E evaluation failed :( (0.53 seconds) E E assert False E + where False = code: 1\ncmd: /usr/bin/python3 -m tox r --notest\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...7_get_requires_for_build_sdist-xu61qy_x.json\n sdist: FAIL code 1 (0.50 seconds)\n evaluation failed :( (0.53 seconds)\n.success self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...7_get_requires_for_build_sdist-xu61qy_x.json sdist: FAIL code 1 (0.50 seconds) evaluation failed :( (0.53 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _____________________ test_pyproject_config_settings_wheel _____________________ tox_project = ._init at 0x7f73584bcee0> demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') mocker = def test_pyproject_config_settings_wheel( tox_project: ToxProjectCreator, demo_pkg_setuptools: Path, mocker: MockerFixture, ) -> None: ini = """ [tox] env_list = wheel [testenv] wheel_build_env = .pkg package = wheel [testenv:.pkg] config_settings_get_requires_for_build_wheel = C = 3 config_settings_prepare_metadata_for_build_wheel = D = 4 config_settings_build_wheel = E = 5 """ proj = tox_project({"tox.ini": ini}, base=demo_pkg_setuptools) proj.patch_execute(lambda r: 0 if "install" in r.run_id else None) write_stdin = mocker.spy(LocalSubprocessExecuteStatus, "write_stdin") mocker.patch.object(Pep517VirtualEnvFrontend, "_can_skip_prepare", return_value=False) result = proj.run("r", "--notest", from_cwd=proj.path) > result.assert_success() demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') ini = '\n [tox]\n env_list = wheel\n\n [testenv]\n wheel_build_env = .pkg\n package = wheel\n\n [testenv:....l = C = 3\n config_settings_prepare_metadata_for_build_wheel = D = 4\n config_settings_build_wheel = E = 5\n ' mocker = proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings1/p) at 140133359729200 result = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...7_get_requires_for_build_wheel-ylemoedg.json wheel: FAIL code 1 (0.49 seconds) evaluation failed :( (0.51 seconds) tox_project = ._init at 0x7f73584bcee0> write_stdin = tests/tox_env/python/virtual_env/package/test_package_pyproject.py:371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...7_get_requires_for_build_wheel-ylemoedg.json wheel: FAIL code 1 (0.49 seconds) evaluation failed :( (0.51 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 1 E cmd: /usr/bin/python3 -m tox r --notest E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings1/p E standard output E .pkg: install_requires> python -I -m pip install 'setuptools>=63' E .pkg: _optional_hooks> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta E .pkg: get_requires_for_build_wheel> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta E wheel: packaging backend failed (code=1), with AttributeError: 'list' object has no attribute 'get' E Traceback (most recent call last): E File "/usr/lib/python3.10/site-packages/pyproject_api/_backend.py", line 93, in run E outcome = backend_proxy(parsed_message["cmd"], **parsed_message["kwargs"]) E File "/usr/lib/python3.10/site-packages/pyproject_api/_backend.py", line 34, in __call__ E return getattr(on_object, name)(*args, **kwargs) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings1/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 332, in get_requires_for_build_wheel E return self._get_build_requires(config_settings, requirements=[]) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings1/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires E sys.argv = [ E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings1/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 225, in _global_args E yield from self._get_config("--global-option", config_settings) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings1/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 192, in _get_config E opts = cfg.get(key) or [] E AttributeError: 'list' object has no attribute 'get' E Backend: run command get_requires_for_build_wheel with args {'config_settings': ['C = 3']} E Backend: Wrote response {'code': 1, 'exc_type': 'AttributeError', 'exc_msg': "'list' object has no attribute 'get'"} to /tmp/pep517_get_requires_for_build_wheel-ylemoedg.json E wheel: FAIL code 1 (0.49 seconds) E evaluation failed :( (0.51 seconds) E E assert False E + where False = code: 1\ncmd: /usr/bin/python3 -m tox r --notest\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...7_get_requires_for_build_wheel-ylemoedg.json\n wheel: FAIL code 1 (0.49 seconds)\n evaluation failed :( (0.51 seconds)\n.success self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...7_get_requires_for_build_wheel-ylemoedg.json wheel: FAIL code 1 (0.49 seconds) evaluation failed :( (0.51 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ___________________ test_pyproject_config_settings_editable ____________________ tox_project = ._init at 0x7f7357228040> demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') mocker = def test_pyproject_config_settings_editable( tox_project: ToxProjectCreator, demo_pkg_setuptools: Path, mocker: MockerFixture, ) -> None: ini = """ [tox] env_list = editable [testenv:.pkg] config_settings_get_requires_for_build_editable = F = 6 config_settings_prepare_metadata_for_build_editable = G = 7 config_settings_build_editable = H = 8 [testenv] wheel_build_env = .pkg package = editable """ proj = tox_project({"tox.ini": ini}, base=demo_pkg_setuptools) proj.patch_execute(lambda r: 0 if "install" in r.run_id else None) write_stdin = mocker.spy(LocalSubprocessExecuteStatus, "write_stdin") mocker.patch.object(Pep517VirtualEnvFrontend, "_can_skip_prepare", return_value=False) result = proj.run("r", "--notest", from_cwd=proj.path) > result.assert_success() demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') ini = '\n [tox]\n env_list = editable\n\n [testenv:.pkg]\n config_settings_get_requires_for_build_editable = F =...n config_settings_build_editable = H = 8\n\n [testenv]\n wheel_build_env = .pkg\n package = editable\n ' mocker = proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings2/p) at 140133358377360 result = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...requires_for_build_editable-wz05nd97.json editable: FAIL code 1 (0.44 seconds) evaluation failed :( (0.47 seconds) tox_project = ._init at 0x7f7357228040> write_stdin = tests/tox_env/python/virtual_env/package/test_package_pyproject.py:410: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...requires_for_build_editable-wz05nd97.json editable: FAIL code 1 (0.44 seconds) evaluation failed :( (0.47 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 1 E cmd: /usr/bin/python3 -m tox r --notest E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings2/p E standard output E .pkg: install_requires> python -I -m pip install 'setuptools>=63' E .pkg: _optional_hooks> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta E .pkg: get_requires_for_build_editable> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta E editable: packaging backend failed (code=1), with AttributeError: 'list' object has no attribute 'get' E Traceback (most recent call last): E File "/usr/lib/python3.10/site-packages/pyproject_api/_backend.py", line 93, in run E outcome = backend_proxy(parsed_message["cmd"], **parsed_message["kwargs"]) E File "/usr/lib/python3.10/site-packages/pyproject_api/_backend.py", line 34, in __call__ E return getattr(on_object, name)(*args, **kwargs) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings2/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 477, in get_requires_for_build_editable E return self.get_requires_for_build_wheel(config_settings) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings2/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 332, in get_requires_for_build_wheel E return self._get_build_requires(config_settings, requirements=[]) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings2/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires E sys.argv = [ E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings2/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 225, in _global_args E yield from self._get_config("--global-option", config_settings) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings2/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 192, in _get_config E opts = cfg.get(key) or [] E AttributeError: 'list' object has no attribute 'get' E Backend: run command get_requires_for_build_editable with args {'config_settings': ['F = 6']} E Backend: Wrote response {'code': 1, 'exc_type': 'AttributeError', 'exc_msg': "'list' object has no attribute 'get'"} to /tmp/pep517_get_requires_for_build_editable-wz05nd97.json E editable: FAIL code 1 (0.44 seconds) E evaluation failed :( (0.47 seconds) E E assert False E + where False = code: 1\ncmd: /usr/bin/python3 -m tox r --notest\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...requires_for_build_editable-wz05nd97.json\n editable: FAIL code 1 (0.44 seconds)\n evaluation failed :( (0.47 seconds)\n.success self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...requires_for_build_editable-wz05nd97.json editable: FAIL code 1 (0.44 seconds) evaluation failed :( (0.47 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ________________ test_pyproject_config_settings_editable_legacy ________________ tox_project = ._init at 0x7f7357128040> demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') mocker = def test_pyproject_config_settings_editable_legacy( tox_project: ToxProjectCreator, demo_pkg_setuptools: Path, mocker: MockerFixture, ) -> None: ini = """ [tox] env_list = editable [testenv:.pkg] config_settings_get_requires_for_build_sdist = A = 1 config_settings_get_requires_for_build_wheel = C = 3 config_settings_prepare_metadata_for_build_wheel = D = 4 [testenv] wheel_build_env = .pkg package = editable-legacy """ proj = tox_project({"tox.ini": ini}, base=demo_pkg_setuptools) proj.patch_execute(lambda r: 0 if "install" in r.run_id else None) write_stdin = mocker.spy(LocalSubprocessExecuteStatus, "write_stdin") mocker.patch.object(Pep517VirtualEnvFrontend, "_can_skip_prepare", return_value=False) result = proj.run("r", "--notest", from_cwd=proj.path) > result.assert_success() demo_pkg_setuptools = PosixPath('/home/tkloczko/rpmbuild/BUILD/tox-4.23.0/tests/demo_pkg_setuptools') ini = '\n [tox]\n env_list = editable\n\n [testenv:.pkg]\n config_settings_get_requires_for_build_sdist = A = 1\...are_metadata_for_build_wheel = D = 4\n\n [testenv]\n wheel_build_env = .pkg\n package = editable-legacy\n ' mocker = proj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings3/p) at 140133381064544 result = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...et_requires_for_build_wheel-rlffoh8y.json editable: FAIL code 1 (0.47 seconds) evaluation failed :( (0.50 seconds) tox_project = ._init at 0x7f7357128040> write_stdin = tests/tox_env/python/virtual_env/package/test_package_pyproject.py:449: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...et_requires_for_build_wheel-rlffoh8y.json editable: FAIL code 1 (0.47 seconds) evaluation failed :( (0.50 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 1 E cmd: /usr/bin/python3 -m tox r --notest E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings3/p E standard output E .pkg: install_requires> python -I -m pip install 'setuptools>=63' E .pkg: _optional_hooks> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta E .pkg: get_requires_for_build_wheel> python /usr/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta E editable: packaging backend failed (code=1), with AttributeError: 'list' object has no attribute 'get' E Traceback (most recent call last): E File "/usr/lib/python3.10/site-packages/pyproject_api/_backend.py", line 93, in run E outcome = backend_proxy(parsed_message["cmd"], **parsed_message["kwargs"]) E File "/usr/lib/python3.10/site-packages/pyproject_api/_backend.py", line 34, in __call__ E return getattr(on_object, name)(*args, **kwargs) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings3/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 332, in get_requires_for_build_wheel E return self._get_build_requires(config_settings, requirements=[]) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings3/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires E sys.argv = [ E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings3/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 225, in _global_args E yield from self._get_config("--global-option", config_settings) E File "/tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings3/p/.tox/.pkg/lib/python3.10/site-packages/setuptools/build_meta.py", line 192, in _get_config E opts = cfg.get(key) or [] E AttributeError: 'list' object has no attribute 'get' E Backend: run command get_requires_for_build_wheel with args {'config_settings': ['C = 3']} E Backend: Wrote response {'code': 1, 'exc_type': 'AttributeError', 'exc_msg': "'list' object has no attribute 'get'"} to /tmp/pep517_get_requires_for_build_wheel-rlffoh8y.json E editable: FAIL code 1 (0.47 seconds) E evaluation failed :( (0.50 seconds) E E assert False E + where False = code: 1\ncmd: /usr/bin/python3 -m tox r --notest\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...et_requires_for_build_wheel-rlffoh8y.json\n editable: FAIL code 1 (0.47 seconds)\n evaluation failed :( (0.50 seconds)\n.success self = code: 1 cmd: /usr/bin/python3 -m tox r --notest cwd: /tmp/pytest-of-tkloczko/pytest-780/test_pyproject_config_settings...et_requires_for_build_wheel-rlffoh8y.json editable: FAIL code 1 (0.47 seconds) evaluation failed :( (0.50 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _________________________ test_ensure_temp_dir_exists __________________________ tox_project = ._init at 0x7f73572faef0> def test_ensure_temp_dir_exists(tox_project: ToxProjectCreator) -> None: ini = "[testenv]\ncommands=python -c 'import os; os.path.exists(r\"{temp_dir}\")'" project = tox_project({"tox.ini": ini}) result = project.run() > result.assert_success() ini = '[testenv]\ncommands=python -c \'import os; os.path.exists(r"{temp_dir}")\'' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_ensure_temp_dir_exists0/p) at 140133360231920 result = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_ensure_temp_dir_exists0/p standard o...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.08 seconds) tox_project = ._init at 0x7f73572faef0> tests/tox_env/test_api.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_ensure_temp_dir_exists0/p standard o...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.08 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_ensure_temp_dir_exists0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.08 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_ensure_temp_dir_exists0/p\nstandard o...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.08 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_ensure_temp_dir_exists0/p standard o...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.08 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError _______________________ test_setenv_section_substitution _______________________ tox_project = ._init at 0x7f735814a050> def test_setenv_section_substitution(tox_project: ToxProjectCreator) -> None: ini = """[variables] var = VAR = val [testenv] setenv = {[variables]var} commands = python -c 'import os; os.environ["VAR"]'""" project = tox_project({"tox.ini": ini}) result = project.run() > result.assert_success() ini = '[variables]\n var = VAR = val\n [testenv]\n setenv = {[variables]var}\n commands = python -c \'import os; os.environ["VAR"]\'' project = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_setenv_section_substituti0/p) at 140133357845856 result = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_setenv_section_substituti0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tox_project = ._init at 0x7f735814a050> tests/tox_env/test_api.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_setenv_section_substituti0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_setenv_section_substituti0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_setenv_section_substituti0/p\nstandar...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.05 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox cwd: /tmp/pytest-of-tkloczko/pytest-780/test_setenv_section_substituti0/p standar...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ________________________ test_allow_list_external_fail _________________________ tox_project = ._init at 0x7f7359c24940> fake_exe_on_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-780/a0/a4889a66b5d24280b8fe07412f7e7608') def test_allow_list_external_fail(tox_project: ToxProjectCreator, fake_exe_on_path: Path) -> None: prj = tox_project({"tox.ini": f"[testenv]\npackage=skip\ncommands={fake_exe_on_path.stem}"}) execute_calls = prj.patch_execute(lambda r: 0 if "cmd" in r.run_id else None) result = prj.run("r") > result.assert_failed(1) execute_calls = fake_exe_on_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-780/a0/a4889a66b5d24280b8fe07412f7e7608') prj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_allow_list_external_fail0/p) at 140133358595920 result = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_allow_list_external_fail0/p standa...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tox_project = ._init at 0x7f7359c24940> tests/tox_env/test_tox_env_api.py:33: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_allow_list_external_fail0/p standa...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) code = 1 def assert_failed(self, code: int | None = None) -> None: status_match = self.code != 0 if code is None else self.code == code > assert status_match, f"should be {code}, got {self}" # noqa: S101 E AssertionError: should be 1, got code: 2 E cmd: /usr/bin/python3 -m tox r E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_allow_list_external_fail0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False code = 1 self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_allow_list_external_fail0/p standa...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) status_match = False ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:361: AssertionError _________________________________ test_env_log _________________________________ tox_project = ._init at 0x7f7359c4ff40> def test_env_log(tox_project: ToxProjectCreator) -> None: cmd = "commands=python -c 'import sys; print(1); print(2); print(3, file=sys.stderr); print(4, file=sys.stderr)'" env_vars = " UNPREDICTABLE = 🪟" prj = tox_project({"tox.ini": f"[testenv]\npackage=skip\nset_env =\n{env_vars}\n{cmd}"}) result_first = prj.run("r") > result_first.assert_success() cmd = "commands=python -c 'import sys; print(1); print(2); print(3, file=sys.stderr); print(4, file=sys.stderr)'" env_vars = ' UNPREDICTABLE = 🪟' prj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_env_log0/p) at 140133358437616 result_first = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_env_log0/p standard output py: int...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tox_project = ._init at 0x7f7359c4ff40> tests/tox_env/test_tox_env_api.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_env_log0/p standard output py: int...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_env_log0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_env_log0/p\nstandard output\npy: int...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.05 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_env_log0/p standard output py: int...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError ___________________ test_change_dir_is_created_if_not_exist ____________________ tox_project = ._init at 0x7f7357063490> def test_change_dir_is_created_if_not_exist(tox_project: ToxProjectCreator) -> None: prj = tox_project({"tox.ini": "[testenv]\npackage=skip\nchange_dir=a{/}b\ncommands=python --version"}) result_first = prj.run("r") > result_first.assert_success() prj = ToxProject(path=/tmp/pytest-of-tkloczko/pytest-780/test_change_dir_is_created_if_0/p) at 140133376813632 result_first = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_change_dir_is_created_if_0/p stand...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) tox_project = ._init at 0x7f7357063490> tests/tox_env/test_tox_env_api.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_change_dir_is_created_if_0/p stand...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) def assert_success(self) -> None: > assert self.success, repr(self) # noqa: S101 E AssertionError: code: 2 E cmd: /usr/bin/python3 -m tox r E cwd: /tmp/pytest-of-tkloczko/pytest-780/test_change_dir_is_created_if_0/p E standard output E py: internal error E Traceback (most recent call last): E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 48, in _evaluate E code, outcomes = run_commands(tox_env, no_test) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 85, in run_commands E status_main = run_command_set(tox_env, "commands", chdir, ignore_errors, outcomes) E File "/home/tkloczko/rpmbuild/BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/session/cmd/run/single.py", line 107, in run_command_set E cmd.args, E AttributeError: 'str' object has no attribute 'args' E py: FAIL code 2 (0.02 seconds) E evaluation failed :( (0.05 seconds) E E assert False E + where False = code: 2\ncmd: /usr/bin/python3 -m tox r\ncwd: /tmp/pytest-of-tkloczko/pytest-780/test_change_dir_is_created_if_0/p\nstand...buteError: 'str' object has no attribute 'args'\n py: FAIL code 2 (0.02 seconds)\n evaluation failed :( (0.05 seconds)\n.success self = code: 2 cmd: /usr/bin/python3 -m tox r cwd: /tmp/pytest-of-tkloczko/pytest-780/test_change_dir_is_created_if_0/p stand...buteError: 'str' object has no attribute 'args' py: FAIL code 2 (0.02 seconds) evaluation failed :( (0.05 seconds) ../../BUILDROOT/python-tox-4.23.0-2.fc37.x86_64/usr/lib/python3.10/site-packages/tox/pytest.py:357: AssertionError =========================== short test summary info ============================ SKIPPED [1] tests/session/cmd/test_devenv.py:18: integration tests not run (no --run-integration flag) SKIPPED [1] tests/session/cmd/test_sequential.py:59: integration tests not run (no --run-integration flag) SKIPPED [1] tests/session/cmd/test_sequential.py:159: integration tests not run (no --run-integration flag) SKIPPED [1] tests/test_provision.py:131: integration tests not run (no --run-integration flag) SKIPPED [1] tests/test_provision.py:164: integration tests not run (no --run-integration flag) SKIPPED [2] tests/test_provision.py:198: integration tests not run (no --run-integration flag) SKIPPED [1] tests/test_provision.py:221: integration tests not run (no --run-integration flag) SKIPPED [2] tests/test_provision.py:230: integration tests not run (no --run-integration flag) SKIPPED [1] tests/tox_env/python/virtual_env/test_setuptools.py:19: integration tests not run (no --run-integration flag) FAILED tests/config/cli/test_cli_ini.py::test_ini_exhaustive_parallel_values FAILED tests/config/loader/test_memory_loader.py::test_memory_loader[value3-set-outcome3] FAILED tests/config/loader/test_memory_loader.py::test_memory_loader[value5-dict-outcome5] FAILED tests/config/loader/test_memory_loader.py::test_memory_loader[value15-set-outcome15] FAILED tests/config/loader/test_memory_loader.py::test_memory_loader[value16-list-outcome16] FAILED tests/config/loader/test_memory_loader.py::test_memory_loader[value17-dict-outcome17] FAILED tests/config/loader/test_memory_loader.py::test_memory_loader_fails_invalid[value1-set-ValueError-invalid literal for int] FAILED tests/config/loader/test_memory_loader.py::test_memory_loader_fails_invalid[value2-list-ValueError-invalid literal for int] FAILED tests/config/loader/test_memory_loader.py::test_memory_loader_fails_invalid[value3-dict-ValueError-invalid literal for int] FAILED tests/config/loader/test_memory_loader.py::test_memory_loader_fails_invalid[value4-dict-ValueError-invalid literal for int] FAILED tests/config/loader/test_str_convert.py::test_str_convert_ok[1-value17-set] FAILED tests/config/loader/test_str_convert.py::test_str_convert_ok[1-value18-list] FAILED tests/config/loader/test_str_convert.py::test_str_convert_ok[1=2-value19-dict] FAILED tests/config/loader/test_str_convert.py::test_str_convert_ok[a=1\n\nc=2-value20-dict] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo "bar baz"-expected0] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo "bar baz"ext-expected1] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo="bar baz"-expected2] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo 'bar baz'-expected3] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo 'bar baz'ext-expected4] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo='bar baz'-expected5] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo=\\"bar baz\\"-expected6] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo="bar baz\\"-expected7] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo='bar baz' quuc-expected8] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo='bar baz\\' quuc-expected9] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo=\\"bar baz\\' quuc-expected10] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo=\\\\\\"bar baz\\"-expected11] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo=\\\\"bar baz\\"-expected12] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo\\\n "bar\\\n baz"-expected13] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo\\\n "bar \\\n baz"-expected14] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo \\\n "bar\\\n baz"-expected15] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo \\\n "bar \\\n baz"-expected16] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo \\\n \\"bar \\\n baz"-expected17] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-foo \\\n bar \\\n baz-expected18] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-SPECIAL:\\foo\\bar --quuz='baz atan'-expected19] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-X:\\\\foo\\\\bar --quuz='baz atan'-expected20] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-/foo/bar --quuz='baz atan'-expected21] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users\\""-expected22] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users\\"-expected23] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users"-expected24] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-cc --arg \\"C:\\\\Users"-expected25] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users\\ "-expected26] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users\\\\"-expected27] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-cc --arg "C:\\\\Users\\\\ "-expected28] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[win32-cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\-expected29] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo "bar baz"-expected0] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo "bar baz"ext-expected1] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo="bar baz"-expected2] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo 'bar baz'-expected3] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo 'bar baz'ext-expected4] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo='bar baz'-expected5] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo=\\"bar baz\\"-expected6] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo="bar baz\\"-expected7] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo='bar baz' quuc-expected8] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo='bar baz\\' quuc-expected9] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo=\\"bar baz\\' quuc-expected10] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo=\\\\\\"bar baz\\"-expected11] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo=\\\\"bar baz\\"-expected12] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo\\\n "bar\\\n baz"-expected13] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo\\\n "bar \\\n baz"-expected14] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo \\\n "bar\\\n baz"-expected15] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo \\\n "bar \\\n baz"-expected16] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo \\\n \\"bar \\\n baz"-expected17] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-foo \\\n bar \\\n baz-expected18] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-SPECIAL:\\foo\\bar --quuz='baz atan'-expected19] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-X:\\\\foo\\\\bar --quuz='baz atan'-expected20] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-/foo/bar --quuz='baz atan'-expected21] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users\\""-expected22] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users\\"-expected23] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users"-expected24] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-cc --arg \\"C:\\\\Users"-expected25] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users\\ "-expected26] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users\\\\"-expected27] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-cc --arg "C:\\\\Users\\\\ "-expected28] FAILED tests/config/loader/test_str_convert.py::test_shlex_platform_specific_ini[linux2-cc --arg C:\\\\Users\\\\ --arg2 "SPECIAL:\\Temp\\f o o" --arg3="\\\\FOO\\share\\Path name" --arg4 SPECIAL:\\Temp\\-expected29] FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_list_ok - Ty... FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_list_nok_element FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_dict_ok - Ty... FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_dict_nok - A... FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_dict_nok_key FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_dict_nok_value FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_command_ok FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_command_nok FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_list_optional_ok FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_list_optional_nok FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_list_literal_ok FAILED tests/config/loader/test_toml_loader.py::test_toml_loader_list_literal_nok FAILED tests/config/source/test_toml_pyproject.py::test_config_in_toml_core FAILED tests/config/source/test_toml_pyproject.py::test_config_in_toml_non_default FAILED tests/config/source/test_toml_pyproject.py::test_config_in_toml_extra FAILED tests/config/source/test_toml_pyproject.py::test_config_in_toml_replace_posargs_default FAILED tests/config/source/test_toml_pyproject.py::test_config_in_toml_replace_posargs_empty FAILED tests/config/source/test_toml_pyproject.py::test_config_in_toml_replace_posargs_empty_optional FAILED tests/config/source/test_toml_pyproject.py::test_config_in_toml_replace_posargs_set FAILED tests/config/source/test_toml_pyproject.py::test_config_in_toml_replace_ref_of FAILED tests/config/source/test_toml_pyproject.py::test_config_in_toml_replace_ref_env FAILED tests/config/source/test_toml_pyproject.py::test_config_requires - Typ... FAILED tests/config/source/test_toml_tox.py::test_config_in_toml_core - TypeE... FAILED tests/config/source/test_toml_tox.py::test_config_in_toml_non_default FAILED tests/config/source/test_toml_tox.py::test_config_in_toml_extra - Type... FAILED tests/config/test_sets.py::test_config_set - AssertionError: assert ['... FAILED tests/config/test_sets.py::test_config_dict - AssertionError: assert [... FAILED tests/config/test_sets.py::test_config_bad_dict - Failed: DID NOT RAIS... FAILED tests/plugin/test_plugin.py::test_plugin_hooks_and_order - AssertionEr... FAILED tests/plugin/test_plugin.py::test_plugin_extend_pass_env - AssertionEr... FAILED tests/plugin/test_plugin.py::test_plugin_extend_set_env - AssertionErr... FAILED tests/session/cmd/test_parallel.py::test_parallel_general - AssertionError:  ⠋ [0/6] c: FAIL ✖ in 0.02 seconds FAILED tests/session/cmd/test_parallel.py::test_parallel_run_live_out - Asser... FAILED tests/session/cmd/test_parallel.py::test_parallel_show_output_with_pkg FAILED tests/session/cmd/test_sequential.py::test_run_ignore_cmd_exit_code[-] FAILED tests/session/cmd/test_sequential.py::test_run_ignore_cmd_exit_code[- ] FAILED tests/session/cmd/test_sequential.py::test_run_sequential_fail - Asser... FAILED tests/session/cmd/test_sequential.py::test_run_sequential_quiet - Asse... FAILED tests/session/cmd/test_sequential.py::test_rerun_sequential_skip - Ass... FAILED tests/session/cmd/test_sequential.py::test_rerun_sequential_wheel - As... FAILED tests/session/cmd/test_sequential.py::test_recreate_package - Assertio... FAILED tests/session/cmd/test_sequential.py::test_env_tmp_dir_reset - Asserti... FAILED tests/session/cmd/test_sequential.py::test_commands_pre_fail_post_runs FAILED tests/session/cmd/test_sequential.py::test_commands_pre_pass_post_runs_main_fails FAILED tests/session/cmd/test_sequential.py::test_commands_post_fails_exit_code FAILED tests/session/cmd/test_sequential.py::test_commands_ignore_errors[0-8-0-8] FAILED tests/session/cmd/test_sequential.py::test_commands_ignore_errors[0-0-8-8] FAILED tests/session/cmd/test_sequential.py::test_commands_ignore_errors[8-0-0-8] FAILED tests/session/cmd/test_sequential.py::test_ignore_outcome - AssertionE... FAILED tests/session/cmd/test_sequential.py::test_sequential_inserted_env_vars FAILED tests/session/cmd/test_sequential.py::test_missing_command_success_if_ignored FAILED tests/session/cmd/test_show_config.py::test_show_config_commands - ass... FAILED tests/session/cmd/test_show_config.py::test_show_config_ini_comment_path FAILED tests/session/test_env_select.py::test_label_core_can_define - Attribu... FAILED tests/session/test_env_select.py::test_label_core_select - AttributeEr... FAILED tests/session/test_env_select.py::test_label_core_and_trait - Attribut... FAILED tests/session/test_env_select.py::test_matches_hyphenated_env[a] - Ass... FAILED tests/session/test_env_select.py::test_matches_hyphenated_env[b] - Ass... FAILED tests/session/test_env_select.py::test_matches_hyphenated_env[a-b] - A... FAILED tests/session/test_env_select.py::test_matches_hyphenated_env[b-a] - A... FAILED tests/session/test_env_select.py::test_matches_combined_env[3.10] - As... FAILED tests/session/test_env_select.py::test_matches_combined_env[3.10-cov] FAILED tests/session/test_env_select.py::test_matches_combined_env[3-cov] - A... FAILED tests/session/test_env_select.py::test_matches_combined_env[3] - Asser... FAILED tests/session/test_env_select.py::test_matches_combined_env[py3.10] - ... FAILED tests/session/test_env_select.py::test_matches_combined_env[py310-cov] FAILED tests/session/test_env_select.py::test_matches_combined_env[py3.10-cov] FAILED tests/test_provision.py::test_provision_requires_nok - AttributeError:... FAILED tests/test_provision.py::test_provision_no_recreate - AttributeError: ... FAILED tests/test_provision.py::test_provision_no_recreate_json - AttributeEr... FAILED tests/test_provision.py::test_provision_default_arguments_exists[r] - ... FAILED tests/test_provision.py::test_provision_default_arguments_exists[p] - ... FAILED tests/test_provision.py::test_provision_default_arguments_exists[de] FAILED tests/test_provision.py::test_provision_default_arguments_exists[l] - ... FAILED tests/test_provision.py::test_provision_default_arguments_exists[d] - ... FAILED tests/test_provision.py::test_provision_default_arguments_exists[c] - ... FAILED tests/test_provision.py::test_provision_default_arguments_exists[q] - ... FAILED tests/test_provision.py::test_provision_default_arguments_exists[e] - ... FAILED tests/test_provision.py::test_provision_default_arguments_exists[le] FAILED tests/tox_env/python/test_python_api.py::test_python_set_hash_seed - A... FAILED tests/tox_env/python/test_python_api.py::test_python_generate_hash_seed FAILED tests/tox_env/python/test_python_api.py::test_python_keep_hash_seed - ... FAILED tests/tox_env/python/test_python_api.py::test_python_disable_hash_seed FAILED tests/tox_env/python/test_python_api.py::test_python_hash_seed_from_env_and_override FAILED tests/tox_env/python/test_python_api.py::test_python_hash_seed_from_env_and_disable FAILED tests/tox_env/python/test_python_runner.py::test_dependency_groups_single FAILED tests/tox_env/python/test_python_runner.py::test_dependency_groups_multiple FAILED tests/tox_env/python/test_python_runner.py::test_dependency_groups_include FAILED tests/tox_env/python/test_python_runner.py::test_dependency_groups_not_table FAILED tests/tox_env/python/test_python_runner.py::test_dependency_groups_missing FAILED tests/tox_env/python/test_python_runner.py::test_dependency_groups_not_list FAILED tests/tox_env/python/test_python_runner.py::test_dependency_groups_bad_requirement FAILED tests/tox_env/python/test_python_runner.py::test_dependency_groups_bad_entry FAILED tests/tox_env/python/test_python_runner.py::test_dependency_groups_cyclic FAILED tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external FAILED tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external_fail_build FAILED tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external_fail_many_pkg FAILED tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_project_package_with_deps[sdist] FAILED tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_project_package_with_deps[wheel] FAILED tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_project_package_with_deps[editable] FAILED tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_project_package_with_deps[editable-legacy] FAILED tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_config_settings_sdist FAILED tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_config_settings_wheel FAILED tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_config_settings_editable FAILED tests/tox_env/python/virtual_env/package/test_package_pyproject.py::test_pyproject_config_settings_editable_legacy FAILED tests/tox_env/test_api.py::test_ensure_temp_dir_exists - AssertionErro... FAILED tests/tox_env/test_api.py::test_setenv_section_substitution - Assertio... FAILED tests/tox_env/test_tox_env_api.py::test_allow_list_external_fail - Ass... FAILED tests/tox_env/test_tox_env_api.py::test_env_log - AssertionError: code: 2 FAILED tests/tox_env/test_tox_env_api.py::test_change_dir_is_created_if_not_exist ==== 184 failed, 1609 passed, 11 skipped, 4 deselected in 89.83s (0:01:29) =====