diff --git a/readthedocs/doc_builder/config.py b/readthedocs/doc_builder/config.py index 04b63a23f23..8cfc8e9eab4 100644 --- a/readthedocs/doc_builder/config.py +++ b/readthedocs/doc_builder/config.py @@ -4,6 +4,8 @@ from __future__ import ( absolute_import, division, print_function, unicode_literals) +from os import path + from readthedocs.config import BuildConfig, ConfigError, InvalidConfig from readthedocs.config import load as load_config @@ -68,7 +70,7 @@ def load_yaml_config(version): config = BuildConfig( env_config=env_config, raw_config={}, - source_file='empty', + source_file=path.join(checkout_path, 'empty'), source_position=0, ) config.validate() diff --git a/readthedocs/rtd_tests/tests/test_doc_building.py b/readthedocs/rtd_tests/tests/test_doc_building.py index 6ed3843aa78..8d809e94778 100644 --- a/readthedocs/rtd_tests/tests/test_doc_building.py +++ b/readthedocs/rtd_tests/tests/test_doc_building.py @@ -1153,7 +1153,10 @@ def assertArgsStartsWith(self, args, function_mock): if arg is not mock.ANY: self.assertTrue(arg_mock.startswith(arg)) - def test_install_core_requirements_sphinx(self): + @patch('readthedocs.projects.models.Project.checkout_path') + def test_install_core_requirements_sphinx(self, checkout_path): + tmpdir = tempfile.mkdtemp() + checkout_path.return_value = tmpdir python_env = Virtualenv( version=self.version_sphinx, build_env=self.build_env_mock, @@ -1171,7 +1174,10 @@ def test_install_core_requirements_sphinx(self): self.build_env_mock.run.assert_called_once() self.assertArgsStartsWith(args, self.build_env_mock.run) - def test_install_core_requirements_mkdocs(self): + @patch('readthedocs.projects.models.Project.checkout_path') + def test_install_core_requirements_mkdocs(self, checkout_path): + tmpdir = tempfile.mkdtemp() + checkout_path.return_value = tmpdir python_env = Virtualenv( version=self.version_mkdocs, build_env=self.build_env_mock @@ -1187,7 +1193,8 @@ def test_install_core_requirements_mkdocs(self): self.build_env_mock.run.assert_called_once() self.assertArgsStartsWith(args, self.build_env_mock.run) - def test_install_user_requirements(self): + @patch('readthedocs.projects.models.Project.checkout_path') + def test_install_user_requirements(self, checkout_path): """ If a projects does not specify a requirements file, RTD will choose one automatically. @@ -1198,6 +1205,8 @@ def test_install_user_requirements(self): - ``pip_requirements.txt`` - ``requirements.txt`` """ + tmpdir = tempfile.mkdtemp() + checkout_path.return_value = tmpdir self.build_env_mock.project = self.project_sphinx self.build_env_mock.version = self.version_sphinx python_env = Virtualenv( @@ -1267,7 +1276,10 @@ def test_install_user_requirements(self): python_env.install_user_requirements() self.build_env_mock.run.assert_not_called() - def test_install_core_requirements_sphinx_conda(self): + @patch('readthedocs.projects.models.Project.checkout_path') + def test_install_core_requirements_sphinx_conda(self, checkout_path): + tmpdir = tempfile.mkdtemp() + checkout_path.return_value = tmpdir python_env = Conda( version=self.version_sphinx, build_env=self.build_env_mock, @@ -1307,7 +1319,10 @@ def test_install_core_requirements_sphinx_conda(self): mock.call(*args_pip, bin_path=mock.ANY) ]) - def test_install_core_requirements_mkdocs_conda(self): + @patch('readthedocs.projects.models.Project.checkout_path') + def test_install_core_requirements_mkdocs_conda(self, checkout_path): + tmpdir = tempfile.mkdtemp() + checkout_path.return_value = tmpdir python_env = Conda( version=self.version_mkdocs, build_env=self.build_env_mock, @@ -1343,7 +1358,10 @@ def test_install_core_requirements_mkdocs_conda(self): mock.call(*args_pip, bin_path=mock.ANY) ]) - def test_install_user_requirements_conda(self): + @patch('readthedocs.projects.models.Project.checkout_path') + def test_install_user_requirements_conda(self, checkout_path): + tmpdir = tempfile.mkdtemp() + checkout_path.return_value = tmpdir python_env = Conda( version=self.version_sphinx, build_env=self.build_env_mock,