diff --git a/changelog/908.bugfix.rst b/changelog/908.bugfix.rst
new file mode 100644
index 00000000..d559d120
--- /dev/null
+++ b/changelog/908.bugfix.rst
@@ -0,0 +1,1 @@
+instead of assuming the Python version from the base python name ask the interpreter to reveal the version for the ``ignore_basepython_conflict`` flag - by :user:`gaborbernat`
diff --git a/doc/config.rst b/doc/config.rst
index cb47a68f..d1f99e4b 100644
--- a/doc/config.rst
+++ b/doc/config.rst
@@ -80,13 +80,19 @@ and will first lookup global tox settings in this section:
 
     .. versionadded:: 3.1.0
 
-    If ``True``, :confval:`basepython` settings that conflict with the Python
-    variant for environments using default factors, such as ``py27`` or
-    ``py35``, will be ignored. This allows you to configure
-    :confval:`basepython` in the global testenv without affecting these
-    factors. If ``False``, the default, a warning will be emitted if a conflict
-    is identified. In a future version of tox, this warning will become an
-    error.
+    tox allows setting the python version for an environment via the :confval:`basepython`
+    setting. If that's not set tox can set a default value from the environment name (
+    e.g. ``py37`` implies Python 3.7). Matching up the python version with the environment
+    name has became expected at this point, leading to surprises when some configs don't
+    do so. To help with sanity of users a warning will be emitted whenever the environment
+    name version does not matches up with this expectation. In a future version of tox,
+    this warning will become an error.
+
+    Furthermore, we allow hard enforcing this rule (and bypassing the warning) by setting
+    this flag to ``True``. In such cases we ignore the :confval:`basepython` and instead
+    always use the base python implied from the Python name. This allows you to
+    configure :confval:`basepython` in the global testenv without affecting environments
+    that have implied base python versions.
 
 .. confval:: requires=LIST
 
diff --git a/src/tox/config.py b/src/tox/config.py
index 12ac98c5..79862a93 100755
--- a/src/tox/config.py
+++ b/src/tox/config.py
@@ -21,7 +21,7 @@ import toml
 
 import tox
 from tox.constants import INFO
-from tox.interpreters import Interpreters
+from tox.interpreters import Interpreters, NoInterpreterInfo
 
 hookimpl = tox.hookimpl
 """DEPRECATED - REMOVE - this is left for compatibility with plugins importing this from here.
@@ -532,35 +532,40 @@ def tox_addoption(parser):
     )
 
     def basepython_default(testenv_config, value):
-        """Configure a sane interpreter for the environment.
+        """either user set or proposed from the factor name
 
-        If the environment contains a default factor, this will always be the
-        interpreter associated with that factor overriding anything manually
-        set.
+        in both cases we check that the factor name implied python version and the resolved
+        python interpreter version match up; if they don't we warn, unless ignore base
+        python conflict is set in which case the factor name implied version if forced
         """
         for factor in testenv_config.factors:
-            match = tox.PYTHON.PY_FACTORS_RE.match(factor)
-            if match:
-                base_exe = tox.PYTHON.PY_FACTORS_MAP[match.group(1)]
-                version = ".".join(match.group(2) or "")
-                default = "{}{}".format(base_exe, version)
-
-                if value is None or testenv_config.config.ignore_basepython_conflict:
-                    return default
-
-                if str(value) != default:
+            if factor in tox.PYTHON.DEFAULT_FACTORS:
+                implied_python = tox.PYTHON.DEFAULT_FACTORS[factor]
+                break
+        else:
+            implied_python, factor = None, None
+
+        if testenv_config.config.ignore_basepython_conflict and implied_python is not None:
+            return implied_python
+
+        proposed_python = (implied_python or sys.executable) if value is None else str(value)
+        if implied_python is not None and implied_python != proposed_python:
+            testenv_config.basepython = proposed_python
+            implied_version = tox.PYTHON.PY_FACTORS_RE.match(factor).group(2)
+            python_info_for_proposed = testenv_config.python_info
+            if not isinstance(python_info_for_proposed, NoInterpreterInfo):
+                proposed_version = "".join(
+                    str(i) for i in python_info_for_proposed.version_info[0:2]
+                )
+                if implied_version != proposed_version:
                     # TODO(stephenfin): Raise an exception here in tox 4.0
                     warnings.warn(
-                        "Conflicting basepython for environment '{}'; resolve conflict "
-                        "or configure ignore_basepython_conflict".format(
-                            testenv_config.envname, str(value), default
+                        "conflicting basepython version (set {}, should be {}) for env '{}';"
+                        "resolve conflict or set ignore_basepython_conflict".format(
+                            proposed_version, implied_version, testenv_config.envname
                         )
                     )
-
-        if value is None:
-            return sys.executable
-
-        return str(value)
+        return proposed_python
 
     parser.add_testenv_attribute(
         name="basepython",
diff --git a/tox.ini b/tox.ini
index 98eeaa7b..74786338 100644
--- a/tox.ini
+++ b/tox.ini
@@ -99,7 +99,7 @@ commands = echo {posargs}
 [flake8]
 max-complexity = 22
 max-line-length = 99
-ignore = E203, W503
+ignore = E203, W503, C901
 
 [coverage:run]
 branch = true

avoid spurious warning about basepython setting for default factors
Specifying a ``basepython`` setting for any environment including a ``pyXY`` factor (including the ``pyXY`` environments themselves) can trigger a spurious warning about the configured interpreter, even if the interpreter does provide the expected version.

The warning should only be generated if the specified interpreter does not conform to the expected version.  Checking the return code from a command like this should do the trick:

~~~~~~~~
{envdir}/bin/python -c 'import sys; sys.exit(sys.version_info[:2] != (X, Y))'
~~~~~~~~

A return code of 0 indicates the interpreter specified conforms to the version indicated by the ``pyXY`` factor; 1 indicates a different version is provided, and anything else would be a real shock.

The the return code is 0, the indicated interpreter should be used regardless of the setting of the ``ignore_basepython_conflict`` setting, and no warning should be generated.

Previous discussion from the mailing list:
https://mail.python.org/mm3/archives/list/tox-dev@python.org/thread/CY2PB35PDX4IZAT73FRDCLSGQ4L2CPR4/
diff --git a/tests/unit/test_config.py b/tests/unit/test_config.py
index 3b53bad2..78afe57e 100644
--- a/tests/unit/test_config.py
+++ b/tests/unit/test_config.py
@@ -1645,7 +1645,7 @@ class TestConfigTestEnv:
             assert config.basepython == "python{}.{}".format(name[2], name[3])
 
     def test_default_factors_conflict(self, newconfig, capsys):
-        with pytest.warns(UserWarning, match=r"Conflicting basepython .*"):
+        with pytest.warns(UserWarning, match=r"conflicting basepython .*"):
             config = newconfig(
                 """
                 [testenv]
@@ -1658,6 +1658,31 @@ class TestConfigTestEnv:
         envconfig = config.envconfigs["py27"]
         assert envconfig.basepython == "python3"
 
+    def test_default_factors_conflict_lying_name(
+        self, newconfig, capsys, tmpdir, recwarn, monkeypatch
+    ):
+        # we first need to create a lying Python here, let's mock out here
+        from tox.interpreters import Interpreters
+
+        def get_executable(self, envconfig):
+            return sys.executable
+
+        monkeypatch.setattr(Interpreters, "get_executable", get_executable)
+
+        major, minor = sys.version_info[0:2]
+        config = newconfig(
+            """
+            [testenv:py{0}{1}]
+            basepython=python{0}.{2}
+            commands = python --version
+        """.format(
+                major, minor, minor - 1
+            )
+        )
+        env_config = config.envconfigs["py{}{}".format(major, minor)]
+        assert env_config.basepython == "python{}.{}".format(major, minor - 1)
+        assert not recwarn.list, "\n".join(repr(i.message) for i in recwarn.list)
+
     def test_default_factors_conflict_ignore(self, newconfig, capsys):
         with pytest.warns(None) as record:
             config = newconfig(

pip install -e .[dev]
parse_log_pytest
pytest
pytest pytest-cov pytest-xdist pytest-mock
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///croot/attrs_1668696182826/work
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
distlib==0.3.9
execnet==2.0.2
filelock==3.12.2
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
importlib-metadata==6.7.0
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
packaging @ file:///croot/packaging_1671697413597/work
platformdirs==4.0.0
pluggy==0.13.1
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pytest==7.1.2
pytest-cov==4.1.0
pytest-mock==3.11.1
pytest-xdist==3.5.0
six==1.17.0
toml==0.10.2
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
-e git+https://github.com/tox-dev/tox.git@c8e07a4cc86814d72c425633a3fa73c05f902fc9#egg=tox
typing_extensions==4.7.1
virtualenv==20.26.6
zipp @ file:///croot/zipp_1672387121353/work

name: tox
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.1.0=py37h06a4308_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - flit-core=3.6.0=pyhd3eb1b0_0
  - importlib_metadata=4.11.3=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=22.0=py37h06a4308_0
  - pip=22.3.1=py37h06a4308_0
  - py=1.11.0=pyhd3eb1b0_0
  - pytest=7.1.2=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py37h06a4308_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.11.0=py37h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==7.2.7
      - distlib==0.3.9
      - execnet==2.0.2
      - filelock==3.12.2
      - importlib-metadata==6.7.0
      - platformdirs==4.0.0
      - pluggy==0.13.1
      - pytest-cov==4.1.0
      - pytest-mock==3.11.1
      - pytest-xdist==3.5.0
      - six==1.17.0
      - toml==0.10.2
      - tox==3.3.1.dev16+gc8e07a4c
      - typing-extensions==4.7.1
      - virtualenv==20.26.6
prefix: /opt/conda/envs/tox

tests/unit/test_config.py::TestConfigTestEnv::test_default_factors_conflict tests/unit/test_config.py::TestConfigTestEnv::test_default_factors_conflict_lying_name
tests/unit/test_config.py::TestVenvConfig::test_force_dep_with_url
tests/unit/test_config.py::TestVenvConfig::test_config_parsing_minimal tests/unit/test_config.py::TestVenvConfig::test_config_parsing_multienv tests/unit/test_config.py::TestVenvConfig::test_envdir_set_manually tests/unit/test_config.py::TestVenvConfig::test_envdir_set_manually_with_substitutions tests/unit/test_config.py::TestVenvConfig::test_force_dep_version tests/unit/test_config.py::TestVenvConfig::test_process_deps tests/unit/test_config.py::TestVenvConfig::test_is_same_dep tests/unit/test_config.py::TestConfigPlatform::test_config_parse_platform tests/unit/test_config.py::TestConfigPlatform::test_config_parse_platform_rex tests/unit/test_config.py::TestConfigPlatform::test_config_parse_platform_with_factors[win] tests/unit/test_config.py::TestConfigPlatform::test_config_parse_platform_with_factors[lin] tests/unit/test_config.py::TestConfigPlatform::test_config_parse_platform_with_factors[osx] tests/unit/test_config.py::TestConfigPackage::test_defaults tests/unit/test_config.py::TestConfigPackage::test_defaults_distshare tests/unit/test_config.py::TestConfigPackage::test_defaults_changed_dir tests/unit/test_config.py::TestConfigPackage::test_project_paths tests/unit/test_config.py::TestParseconfig::test_search_parents tests/unit/test_config.py::TestParseconfig::test_explicit_config_path tests/unit/test_config.py::test_get_homedir tests/unit/test_config.py::TestGetcontextname::test_blank tests/unit/test_config.py::TestGetcontextname::test_jenkins tests/unit/test_config.py::TestGetcontextname::test_hudson_legacy tests/unit/test_config.py::TestIniParserAgainstCommandsKey::test_command_substitution_from_other_section tests/unit/test_config.py::TestIniParserAgainstCommandsKey::test_command_substitution_from_other_section_multiline tests/unit/test_config.py::TestIniParserAgainstCommandsKey::test_command_substitution_from_other_section_posargs tests/unit/test_config.py::TestIniParserAgainstCommandsKey::test_command_section_and_posargs_substitution tests/unit/test_config.py::TestIniParserAgainstCommandsKey::test_command_env_substitution tests/unit/test_config.py::TestIniParserAgainstCommandsKey::test_command_env_substitution_global tests/unit/test_config.py::TestIniParserAgainstCommandsKey::test_regression_issue595 tests/unit/test_config.py::TestIniParser::test_getstring_single tests/unit/test_config.py::TestIniParser::test_missing_substitution tests/unit/test_config.py::TestIniParser::test_getstring_fallback_sections tests/unit/test_config.py::TestIniParser::test_getstring_substitution tests/unit/test_config.py::TestIniParser::test_getlist tests/unit/test_config.py::TestIniParser::test_getdict tests/unit/test_config.py::TestIniParser::test_normal_env_sub_works tests/unit/test_config.py::TestIniParser::test_missing_env_sub_raises_config_error_in_non_testenv tests/unit/test_config.py::TestIniParser::test_missing_env_sub_populates_missing_subs tests/unit/test_config.py::TestIniParser::test_getstring_environment_substitution_with_default tests/unit/test_config.py::TestIniParser::test_value_matches_section_substitution tests/unit/test_config.py::TestIniParser::test_value_doesn_match_section_substitution tests/unit/test_config.py::TestIniParser::test_getstring_other_section_substitution tests/unit/test_config.py::TestIniParser::test_argvlist tests/unit/test_config.py::TestIniParser::test_argvlist_windows_escaping tests/unit/test_config.py::TestIniParser::test_argvlist_multiline tests/unit/test_config.py::TestIniParser::test_argvlist_quoting_in_command tests/unit/test_config.py::TestIniParser::test_argvlist_comment_after_command tests/unit/test_config.py::TestIniParser::test_argvlist_command_contains_hash tests/unit/test_config.py::TestIniParser::test_argvlist_positional_substitution tests/unit/test_config.py::TestIniParser::test_argvlist_quoted_posargs tests/unit/test_config.py::TestIniParser::test_argvlist_posargs_with_quotes tests/unit/test_config.py::TestIniParser::test_positional_arguments_are_only_replaced_when_standing_alone tests/unit/test_config.py::TestIniParser::test_posargs_are_added_escaped_issue310 tests/unit/test_config.py::TestIniParser::test_substitution_with_multiple_words tests/unit/test_config.py::TestIniParser::test_getargv tests/unit/test_config.py::TestIniParser::test_getpath tests/unit/test_config.py::TestIniParser::test_getbool tests/unit/test_config.py::TestIniParserPrefix::test_basic_section_access tests/unit/test_config.py::TestIniParserPrefix::test_fallback_sections tests/unit/test_config.py::TestIniParserPrefix::test_value_matches_prefixed_section_substitution tests/unit/test_config.py::TestIniParserPrefix::test_value_doesn_match_prefixed_section_substitution tests/unit/test_config.py::TestIniParserPrefix::test_other_section_substitution tests/unit/test_config.py::TestConfigTestEnv::test_commentchars_issue33 tests/unit/test_config.py::TestConfigTestEnv::test_defaults tests/unit/test_config.py::TestConfigTestEnv::test_sitepackages_switch tests/unit/test_config.py::TestConfigTestEnv::test_installpkg_tops_develop tests/unit/test_config.py::TestConfigTestEnv::test_specific_command_overrides tests/unit/test_config.py::TestConfigTestEnv::test_whitelist_externals tests/unit/test_config.py::TestConfigTestEnv::test_changedir tests/unit/test_config.py::TestConfigTestEnv::test_ignore_errors tests/unit/test_config.py::TestConfigTestEnv::test_envbindir tests/unit/test_config.py::TestConfigTestEnv::test_envbindir_jython[jython] tests/unit/test_config.py::TestConfigTestEnv::test_envbindir_jython[pypy] tests/unit/test_config.py::TestConfigTestEnv::test_envbindir_jython[pypy3] tests/unit/test_config.py::TestConfigTestEnv::test_passenv_as_multiline_list[win32] tests/unit/test_config.py::TestConfigTestEnv::test_passenv_as_multiline_list[linux2] tests/unit/test_config.py::TestConfigTestEnv::test_passenv_as_space_separated_list[win32] tests/unit/test_config.py::TestConfigTestEnv::test_passenv_as_space_separated_list[linux2] tests/unit/test_config.py::TestConfigTestEnv::test_passenv_with_factor tests/unit/test_config.py::TestConfigTestEnv::test_passenv_from_global_env tests/unit/test_config.py::TestConfigTestEnv::test_passenv_glob_from_global_env tests/unit/test_config.py::TestConfigTestEnv::test_changedir_override tests/unit/test_config.py::TestConfigTestEnv::test_install_command_setting tests/unit/test_config.py::TestConfigTestEnv::test_install_command_must_contain_packages tests/unit/test_config.py::TestConfigTestEnv::test_install_command_substitutions tests/unit/test_config.py::TestConfigTestEnv::test_pip_pre tests/unit/test_config.py::TestConfigTestEnv::test_pip_pre_cmdline_override tests/unit/test_config.py::TestConfigTestEnv::test_simple tests/unit/test_config.py::TestConfigTestEnv::test_substitution_error tests/unit/test_config.py::TestConfigTestEnv::test_substitution_defaults tests/unit/test_config.py::TestConfigTestEnv::test_substitution_notfound_issue246 tests/unit/test_config.py::TestConfigTestEnv::test_substitution_notfound_issue515 tests/unit/test_config.py::TestConfigTestEnv::test_substitution_nested_env_defaults tests/unit/test_config.py::TestConfigTestEnv::test_substitution_positional tests/unit/test_config.py::TestConfigTestEnv::test_substitution_noargs_issue240 tests/unit/test_config.py::TestConfigTestEnv::test_substitution_double tests/unit/test_config.py::TestConfigTestEnv::test_posargs_backslashed_or_quoted tests/unit/test_config.py::TestConfigTestEnv::test_rewrite_posargs tests/unit/test_config.py::TestConfigTestEnv::test_rewrite_simple_posargs tests/unit/test_config.py::TestConfigTestEnv::test_take_dependencies_from_other_testenv[envlist0-deps0] tests/unit/test_config.py::TestConfigTestEnv::test_take_dependencies_from_other_testenv[envlist1-deps1] tests/unit/test_config.py::TestConfigTestEnv::test_take_dependencies_from_other_section tests/unit/test_config.py::TestConfigTestEnv::test_multilevel_substitution tests/unit/test_config.py::TestConfigTestEnv::test_recursive_substitution_cycle_fails tests/unit/test_config.py::TestConfigTestEnv::test_single_value_from_other_secton tests/unit/test_config.py::TestConfigTestEnv::test_factors tests/unit/test_config.py::TestConfigTestEnv::test_factor_ops tests/unit/test_config.py::TestConfigTestEnv::test_envconfigs_based_on_factors tests/unit/test_config.py::TestConfigTestEnv::test_default_factors tests/unit/test_config.py::TestConfigTestEnv::test_default_factors_conflict_ignore tests/unit/test_config.py::TestConfigTestEnv::test_factors_in_boolean tests/unit/test_config.py::TestConfigTestEnv::test_factors_in_setenv tests/unit/test_config.py::TestConfigTestEnv::test_factor_use_not_checked tests/unit/test_config.py::TestConfigTestEnv::test_factors_groups_touch tests/unit/test_config.py::TestConfigTestEnv::test_period_in_factor tests/unit/test_config.py::TestConfigTestEnv::test_ignore_outcome tests/unit/test_config.py::TestGlobalOptions::test_notest tests/unit/test_config.py::TestGlobalOptions::test_verbosity tests/unit/test_config.py::TestGlobalOptions::test_quiet[args0-0] tests/unit/test_config.py::TestGlobalOptions::test_quiet[args1-1] tests/unit/test_config.py::TestGlobalOptions::test_quiet[args2-2] tests/unit/test_config.py::TestGlobalOptions::test_quiet[args3-3] tests/unit/test_config.py::TestGlobalOptions::test_substitution_jenkins_default tests/unit/test_config.py::TestGlobalOptions::test_substitution_jenkins_context tests/unit/test_config.py::TestGlobalOptions::test_sdist_specification tests/unit/test_config.py::TestGlobalOptions::test_env_selection tests/unit/test_config.py::TestGlobalOptions::test_py_venv tests/unit/test_config.py::TestGlobalOptions::test_correct_basepython_chosen_from_default_factors tests/unit/test_config.py::TestGlobalOptions::test_envlist_expansion tests/unit/test_config.py::TestGlobalOptions::test_envlist_cross_product tests/unit/test_config.py::TestGlobalOptions::test_envlist_multiline tests/unit/test_config.py::TestGlobalOptions::test_minversion tests/unit/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_true tests/unit/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_false tests/unit/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_cli_no_arg tests/unit/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_cli_not_specified tests/unit/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_cli_overrides_true tests/unit/test_config.py::TestGlobalOptions::test_skip_missing_interpreters_cli_overrides_false tests/unit/test_config.py::TestGlobalOptions::test_defaultenv_commandline tests/unit/test_config.py::TestGlobalOptions::test_defaultenv_partial_override tests/unit/test_config.py::TestHashseedOption::test_default tests/unit/test_config.py::TestHashseedOption::test_passing_integer tests/unit/test_config.py::TestHashseedOption::test_passing_string tests/unit/test_config.py::TestHashseedOption::test_passing_empty_string tests/unit/test_config.py::TestHashseedOption::test_passing_no_argument tests/unit/test_config.py::TestHashseedOption::test_setenv tests/unit/test_config.py::TestHashseedOption::test_noset tests/unit/test_config.py::TestHashseedOption::test_noset_with_setenv tests/unit/test_config.py::TestHashseedOption::test_one_random_hashseed tests/unit/test_config.py::TestHashseedOption::test_setenv_in_one_testenv tests/unit/test_config.py::TestSetenv::test_getdict_lazy tests/unit/test_config.py::TestSetenv::test_getdict_lazy_update tests/unit/test_config.py::TestSetenv::test_setenv_uses_os_environ tests/unit/test_config.py::TestSetenv::test_setenv_default_os_environ tests/unit/test_config.py::TestSetenv::test_setenv_uses_other_setenv tests/unit/test_config.py::TestSetenv::test_setenv_recursive_direct tests/unit/test_config.py::TestSetenv::test_setenv_overrides tests/unit/test_config.py::TestSetenv::test_setenv_with_envdir_and_basepython tests/unit/test_config.py::TestSetenv::test_setenv_ordering_1 tests/unit/test_config.py::TestSetenv::test_setenv_cross_section_subst_issue294 tests/unit/test_config.py::TestSetenv::test_setenv_cross_section_subst_twice tests/unit/test_config.py::TestSetenv::test_setenv_cross_section_mixed tests/unit/test_config.py::TestIndexServer::test_indexserver tests/unit/test_config.py::TestIndexServer::test_parse_indexserver tests/unit/test_config.py::TestIndexServer::test_multiple_homedir_relative_local_indexservers tests/unit/test_config.py::TestConfigConstSubstitutions::test_replace_pathsep_unix[:] tests/unit/test_config.py::TestConfigConstSubstitutions::test_replace_pathsep_unix[;] tests/unit/test_config.py::TestConfigConstSubstitutions::test_pathsep_regex tests/unit/test_config.py::TestParseEnv::test_parse_recreate tests/unit/test_config.py::TestCmdInvocation::test_help tests/unit/test_config.py::TestCmdInvocation::test_version_simple tests/unit/test_config.py::TestCmdInvocation::test_version_no_plugins tests/unit/test_config.py::TestCmdInvocation::test_version_with_normal_plugin tests/unit/test_config.py::TestCmdInvocation::test_version_with_fileless_module tests/unit/test_config.py::TestCmdInvocation::test_config_specific_ini tests/unit/test_config.py::TestCmdInvocation::test_no_tox_ini tests/unit/test_config.py::TestCmdInvocation::test_override_workdir tests/unit/test_config.py::TestCmdInvocation::test_showconfig_with_force_dep_version tests/unit/test_config.py::test_env_spec[-e tests/unit/test_config.py::TestCommandParser::test_command_parser_for_word tests/unit/test_config.py::TestCommandParser::test_command_parser_for_posargs tests/unit/test_config.py::TestCommandParser::test_command_parser_for_multiple_words tests/unit/test_config.py::TestCommandParser::test_command_parser_for_substitution_with_spaces tests/unit/test_config.py::TestCommandParser::test_command_parser_with_complex_word_set tests/unit/test_config.py::TestCommandParser::test_command_with_runs_of_whitespace tests/unit/test_config.py::TestCommandParser::test_command_with_split_line_in_subst_arguments tests/unit/test_config.py::TestCommandParser::test_command_parsing_for_issue_10 tests/unit/test_config.py::TestCommandParser::test_commands_with_backslash tests/unit/test_config.py::test_plugin_require tests/unit/test_config.py::test_isolated_build_env_cannot_be_in_envlist tests/unit/test_config.py::test_config_via_pyproject_legacy tests/unit/test_config.py::test_config_bad_pyproject_specified tests/unit/test_config.py::test_config_bad_config_type_specified
doc/config.rst tox.ini changelog/908.bugfix.rst src/tox/config.py
doc/config.rst tox.ini changelog/908.bugfix.rst src/tox/config.py