demosdemon: tests pass! 🎉 
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 5d7eae23..f5447f88 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -24,6 +24,7 @@ Eugene Yunak
 Fernando L. Pereira
 Florian Preinstorfer
 Florian Schulze
+Gonéri Le Bouder
 Hazal Ozturk
 Henk-Jaap Wagenaar
 Ian Stapleton Cordasco
@@ -32,6 +33,7 @@ Ionel Maries Cristian
 Itxaka Serrano
 Jake Windle
 Jannis Leidel
+Joachim Brandon LeBlanc
 Johannes Christ
 Jon Dufresne
 Josh Smeaton
diff --git a/MANIFEST.in b/MANIFEST.in
index 0a9d6ae9..ed0088a1 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -4,7 +4,7 @@ include CONTRIBUTORS
 include LICENSE
 include setup.py
 include tox.ini
-graft doc
+graft docs
 graft tests
 
 global-exclude __pycache__
diff --git a/docs/changelog/1153.bugfix.rst b/docs/changelog/1153.bugfix.rst
new file mode 100644
index 00000000..bfe6c356
--- /dev/null
+++ b/docs/changelog/1153.bugfix.rst
@@ -0,0 +1,1 @@
+Using ``py2`` and ``py3`` with a specific ``basepython`` will no longer raise a warning unless the major version conflicts - by :user:`demosdemon`.
diff --git a/docs/changelog/1155.bugix.rst b/docs/changelog/1155.bugix.rst
new file mode 100644
index 00000000..c9f208d7
--- /dev/null
+++ b/docs/changelog/1155.bugix.rst
@@ -0,0 +1,1 @@
+The ``-eALL`` command line argument now expands the ``envlist`` key and includes all its environment.
diff --git a/src/tox/config/__init__.py b/src/tox/config/__init__.py
index bf4252e3..c50c713b 100644
--- a/src/tox/config/__init__.py
+++ b/src/tox/config/__init__.py
@@ -571,7 +571,8 @@ def tox_addoption(parser):
                 proposed_version = "".join(
                     str(i) for i in python_info_for_proposed.version_info[0:2]
                 )
-                if implied_version != proposed_version:
+                # '27'.startswith('2') or '27'.startswith('27')
+                if not proposed_version.startswith(implied_version):
                     # TODO(stephenfin): Raise an exception here in tox 4.0
                     warnings.warn(
                         "conflicting basepython version (set {}, should be {}) for env '{}';"
@@ -1155,39 +1156,54 @@ class ParseIni(object):
                 reader.addsubstitutions(**{env_attr.name: res})
         return tc
 
-    def _getenvdata(self, reader, config):
-        candidates = (
-            os.environ.get(PARALLEL_ENV_VAR_KEY),
-            self.config.option.env,
-            os.environ.get("TOXENV"),
-            reader.getstring("envlist", replace=False),
-        )
-        env_str = next((i for i in candidates if i), [])
+    def _getallenvs(self, reader, extra_env_list=None):
+        extra_env_list = extra_env_list or []
+        env_str = reader.getstring("envlist", replace=False)
         env_list = _split_env(env_str)
+        for env in extra_env_list:
+            if env not in env_list:
+                env_list.append(env)
 
-        # collect section envs
         all_envs = OrderedDict((i, None) for i in env_list)
-        if "ALL" in all_envs:
-            all_envs.pop("ALL")
         for section in self._cfg:
             if section.name.startswith(testenvprefix):
                 all_envs[section.name[len(testenvprefix) :]] = None
         if not all_envs:
             all_envs["python"] = None
+        return list(all_envs.keys())
+
+    def _getenvdata(self, reader, config):
+        from_option = self.config.option.env
+        from_environ = os.environ.get("TOXENV")
+        from_config = reader.getstring("envlist", replace=False)
+
+        env_list = []
+        if (from_option and "ALL" in from_option) or (
+            not from_option and from_environ and "ALL" in from_environ.split(",")
+        ):
+            all_envs = self._getallenvs(reader)
+        else:
+            candidates = (
+                os.environ.get(PARALLEL_ENV_VAR_KEY),
+                from_option,
+                from_environ,
+                from_config,
+            )
+            env_str = next((i for i in candidates if i), [])
+            env_list = _split_env(env_str)
+            all_envs = self._getallenvs(reader, env_list)
+
+        if not env_list:
+            env_list = all_envs
 
         package_env = config.isolated_build_env
         if config.isolated_build is True and package_env in all_envs:
-            all_envs.pop(package_env)
-
-        if not env_list or "ALL" in env_list:
-            env_list = list(all_envs.keys())
+            all_envs.remove(package_env)
 
         if config.isolated_build is True and package_env in env_list:
             msg = "isolated_build_env {} cannot be part of envlist".format(package_env)
             raise tox.exception.ConfigError(msg)
-
-        all_env_list = list(all_envs.keys())
-        return env_list, all_env_list
+        return env_list, all_envs
 
 
 def _split_env(env):

using py2 and py3 in factors causes a "conflicting basepython version" warning
I've narrowed it down to this line
https://github.com/tox-dev/tox/blob/d6cd8d42fa06cc02d747ebe92b3179bc677f0591/src/tox/config/__init__.py#L574
diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py
index 00524bc4..33969985 100644
--- a/tests/unit/config/test_config.py
+++ b/tests/unit/config/test_config.py
@@ -1910,6 +1910,46 @@ class TestConfigTestEnv:
         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_single_digit_factors(self, newconfig, monkeypatch):
+        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]
+
+        with pytest.warns(None) as lying:
+            config = newconfig(
+                """
+                [testenv:py{0}]
+                basepython=python{0}.{1}
+                commands = python --version
+                """.format(
+                    major, minor - 1
+                )
+            )
+
+        env_config = config.envconfigs["py{}".format(major)]
+        assert env_config.basepython == "python{}.{}".format(major, minor - 1)
+        assert len(lying) == 0, "\n".join(repr(r.message) for r in lying)
+
+        with pytest.warns(None) as truthful:
+            config = newconfig(
+                """
+                [testenv:py{0}]
+                basepython=python{0}.{1}
+                commands = python --version
+                """.format(
+                    major, minor
+                )
+            )
+
+        env_config = config.envconfigs["py{}".format(major)]
+        assert env_config.basepython == "python{}.{}".format(major, minor)
+        assert len(truthful) == 0, "\n".join(repr(r.message) for r in truthful)
+
     def test_default_factors_conflict_ignore(self, newconfig, capsys):
         with pytest.warns(None) as record:
             config = newconfig(
@@ -2065,7 +2105,7 @@ class TestGlobalOptions:
         config = newconfig([], "")
         assert not config.sdistsrc
 
-    def test_env_selection(self, newconfig, monkeypatch):
+    def test_env_selection_with_section_name(self, newconfig, monkeypatch):
         inisource = """
             [tox]
             envlist = py36
@@ -2091,6 +2131,18 @@ class TestGlobalOptions:
         config = newconfig(["-espam"], inisource)
         assert config.envlist == ["spam"]
 
+    def test_env_selection_expanded_envlist(self, newconfig, monkeypatch):
+        inisource = """
+            [tox]
+            envlist = py{36,35,27}
+            [testenv:py36]
+            basepython=python3.6
+        """
+        config = newconfig([], inisource)
+        assert config.envlist == ["py36", "py35", "py27"]
+        config = newconfig(["-eALL"], inisource)
+        assert config.envlist == ["py36", "py35", "py27"]
+
     def test_py_venv(self, newconfig):
         config = newconfig(["-epy"], "")
         env = config.envconfigs["py"]

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio
3.6
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
certifi==2021.5.30
coverage==6.2
distlib==0.3.9
execnet==1.9.0
filelock==3.4.1
importlib-metadata==4.8.3
importlib-resources==5.4.0
iniconfig==1.1.1
packaging==21.3
platformdirs==2.4.0
pluggy==0.13.1
py==1.11.0
pyparsing==3.1.4
pytest==7.0.1
pytest-asyncio==0.16.0
pytest-cov==4.0.0
pytest-mock==3.6.1
pytest-xdist==3.0.2
six==1.17.0
toml==0.10.2
tomli==1.2.3
-e git+https://github.com/tox-dev/tox.git@d6cd8d42fa06cc02d747ebe92b3179bc677f0591#egg=tox
typing_extensions==4.1.1
virtualenv==20.17.1
zipp==3.6.0

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
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - 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
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - coverage==6.2
      - distlib==0.3.9
      - execnet==1.9.0
      - filelock==3.4.1
      - importlib-metadata==4.8.3
      - importlib-resources==5.4.0
      - iniconfig==1.1.1
      - packaging==21.3
      - platformdirs==2.4.0
      - pluggy==0.13.1
      - py==1.11.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - pytest-asyncio==0.16.0
      - pytest-cov==4.0.0
      - pytest-mock==3.6.1
      - pytest-xdist==3.0.2
      - six==1.17.0
      - toml==0.10.2
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - virtualenv==20.17.1
      - zipp==3.6.0
prefix: /opt/conda/envs/tox

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