From 3d701fd4b91ddd9db745145d72ce3d60ea44e84e Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Thu, 6 Sep 2018 14:27:36 +0200 Subject: [PATCH] Python3 as default interpreter for new projects Use `python3` as default interpreter to build the project when it's imported/created. --- readthedocs/projects/forms.py | 2 +- .../0028_default_interpreter_py3.py | 20 +++++++++++++++++++ readthedocs/projects/models.py | 2 +- readthedocs/rtd_tests/tests/test_api.py | 2 +- .../tests/test_config_integration.py | 6 +++--- 5 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 readthedocs/projects/migrations/0028_default_interpreter_py3.py diff --git a/readthedocs/projects/forms.py b/readthedocs/projects/forms.py index 1c5a2304f87..32f6ed7f46e 100644 --- a/readthedocs/projects/forms.py +++ b/readthedocs/projects/forms.py @@ -172,7 +172,7 @@ class ProjectAdvancedForm(ProjectTriggerBuildMixin, ProjectForm): python_interpreter = forms.ChoiceField( choices=constants.PYTHON_CHOICES, - initial='python', + initial='python3', help_text=_('The Python interpreter used to create the virtual ' 'environment.'), ) diff --git a/readthedocs/projects/migrations/0028_default_interpreter_py3.py b/readthedocs/projects/migrations/0028_default_interpreter_py3.py new file mode 100644 index 00000000000..a11a82150dd --- /dev/null +++ b/readthedocs/projects/migrations/0028_default_interpreter_py3.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.13 on 2018-09-06 07:26 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('projects', '0027_remove_json_with_html_feature'), + ] + + operations = [ + migrations.AlterField( + model_name='project', + name='python_interpreter', + field=models.CharField(choices=[('python', 'CPython 2.x'), ('python3', 'CPython 3.x')], default='python3', help_text='The Python interpreter used to create the virtual environment.', max_length=20, verbose_name='Python Interpreter'), + ), + ] diff --git a/readthedocs/projects/models.py b/readthedocs/projects/models.py index 9cfb0b92c45..4d6a3bbb2c1 100644 --- a/readthedocs/projects/models.py +++ b/readthedocs/projects/models.py @@ -206,7 +206,7 @@ class Project(models.Model): _('Python Interpreter'), max_length=20, choices=constants.PYTHON_CHOICES, - default='python', + default='python3', help_text=_('The Python interpreter used to create the virtual ' 'environment.')) diff --git a/readthedocs/rtd_tests/tests/test_api.py b/readthedocs/rtd_tests/tests/test_api.py index 66c7fd22c0d..eab2b84197d 100644 --- a/readthedocs/rtd_tests/tests/test_api.py +++ b/readthedocs/rtd_tests/tests/test_api.py @@ -948,7 +948,7 @@ def test_get_version_by_id(self): 'language': 'en', 'name': 'Pip', 'programming_language': 'words', - 'python_interpreter': 'python', + 'python_interpreter': 'python3', 'repo': 'https://github.com/pypa/pip', 'repo_type': 'git', 'requirements_file': None, diff --git a/readthedocs/rtd_tests/tests/test_config_integration.py b/readthedocs/rtd_tests/tests/test_config_integration.py index 1673cacf2b6..0f85fe0a8e2 100644 --- a/readthedocs/rtd_tests/tests/test_config_integration.py +++ b/readthedocs/rtd_tests/tests/test_config_integration.py @@ -90,7 +90,7 @@ def test_python_supported_versions_default_image_1_0(self, load_config): ], 'use_system_packages': self.project.use_system_packages, 'requirements_file': self.project.requirements_file, - 'python_version': 2, + 'python_version': 3, 'sphinx_configuration': mock.ANY, 'build_image': 'readthedocs/build:1.0', 'doctype': self.project.documentation_type, @@ -127,8 +127,8 @@ def test_python_supported_versions_image_latest(self, load_config): def test_python_default_version(self, load_config): load_config.side_effect = create_load() config = load_yaml_config(self.version) - self.assertEqual(config.python.version, 2) - self.assertEqual(config.python_interpreter, 'python2.7') + self.assertEqual(config.python.version, 3) + self.assertEqual(config.python_interpreter, 'python3.6') def test_python_set_python_version_on_project(self, load_config): load_config.side_effect = create_load()