Skip to content

Commit 3eccde7

Browse files
authored
Merge pull request #8783 from readthedocs/humitos/system-packages
Config file: system_site_packages overwritten from project's setting
2 parents 64a7a31 + 9377c74 commit 3eccde7

File tree

3 files changed

+35
-9
lines changed

3 files changed

+35
-9
lines changed

readthedocs/config/config.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -938,13 +938,9 @@ def validate_python(self):
938938
]
939939

940940
with self.catch_validation_error('python.system_packages'):
941-
system_packages = self.defaults.get(
942-
'use_system_packages',
943-
False,
944-
)
945941
system_packages = self.pop_config(
946942
'python.system_packages',
947-
system_packages,
943+
False,
948944
)
949945
python['use_system_site_packages'] = validate_bool(system_packages)
950946

readthedocs/config/tests/test_config.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -1604,25 +1604,23 @@ def test_python_system_packages_check_default(self):
16041604
build.validate()
16051605
assert build.python.use_system_site_packages is False
16061606

1607-
def test_python_system_packages_respects_default(self):
1607+
def test_python_system_packages_dont_respects_default(self):
16081608
build = self.get_build_config(
16091609
{},
16101610
{'defaults': {'use_system_packages': True}},
16111611
)
16121612
build.validate()
1613-
assert build.python.use_system_site_packages is True
1613+
assert build.python.use_system_site_packages is False
16141614

16151615
def test_python_system_packages_priority_over_default(self):
16161616
build = self.get_build_config(
16171617
{'python': {'system_packages': False}},
1618-
{'defaults': {'use_system_packages': True}},
16191618
)
16201619
build.validate()
16211620
assert build.python.use_system_site_packages is False
16221621

16231622
build = self.get_build_config(
16241623
{'python': {'system_packages': True}},
1625-
{'defaults': {'use_system_packages': False}},
16261624
)
16271625
build.validate()
16281626
assert build.python.use_system_site_packages is True

readthedocs/rtd_tests/tests/test_config_integration.py

+32
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,38 @@ def test_system_packages(self, run, checkout_path, tmpdir):
767767
assert '--system-site-packages' in args
768768
assert config.python.use_system_site_packages
769769

770+
@patch('readthedocs.doc_builder.environments.BuildEnvironment.run')
771+
def test_system_packages_project_overrides(self, run, checkout_path, tmpdir):
772+
773+
# Define `project.use_system_packages` as if it was marked in the Advanced settings.
774+
self.version.project.use_system_packages = True
775+
self.version.project.save()
776+
777+
checkout_path.return_value = str(tmpdir)
778+
self.create_config_file(
779+
tmpdir,
780+
{
781+
# Do not define `system_packages: True` in the config file.
782+
'python': {},
783+
},
784+
)
785+
786+
update_docs = self.get_update_docs_task()
787+
config = update_docs.config
788+
789+
python_env = Virtualenv(
790+
version=self.version,
791+
build_env=update_docs.build_env,
792+
config=config,
793+
)
794+
update_docs.python_env = python_env
795+
update_docs.python_env.setup_base()
796+
797+
args, kwargs = run.call_args
798+
799+
assert '--system-site-packages' not in args
800+
assert not config.python.use_system_site_packages
801+
770802
@pytest.mark.parametrize(
771803
'value,result',
772804
[

0 commit comments

Comments
 (0)