From 1101844ad68716cdfa016c40db488396bd5a85eb Mon Sep 17 00:00:00 2001 From: David Andersson <51036209+jdkandersson@users.noreply.github.com> Date: Wed, 10 Apr 2024 02:48:36 +1000 Subject: [PATCH] fix(flask): don't enforce definition of base, build-base and platforms (#529) --------- Co-authored-by: Tiago Nobrega --- rockcraft/extensions/gunicorn.py | 7 ------- tests/unit/extensions/test_gunicorn.py | 22 +++++++++++++++++++--- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/rockcraft/extensions/gunicorn.py b/rockcraft/extensions/gunicorn.py index fd3109096..2d3fc4a09 100644 --- a/rockcraft/extensions/gunicorn.py +++ b/rockcraft/extensions/gunicorn.py @@ -141,13 +141,6 @@ def get_root_snippet(self) -> Dict[str, Any]: }, }, } - if ( - "build-base" not in self.yaml_data - and self.yaml_data.get("base", "bare") == "bare" - ): - snippet["build-base"] = "ubuntu@22.04" - if "platforms" not in self.yaml_data: - snippet["platforms"] = {"amd64": {}} snippet["parts"] = self._gen_parts() return snippet diff --git a/tests/unit/extensions/test_gunicorn.py b/tests/unit/extensions/test_gunicorn.py index b492eb99f..ae620893d 100644 --- a/tests/unit/extensions/test_gunicorn.py +++ b/tests/unit/extensions/test_gunicorn.py @@ -28,7 +28,11 @@ def flask_extension(mock_extensions, monkeypatch): @pytest.fixture(name="flask_input_yaml") def flask_input_yaml_fixture(): - return {"base": "ubuntu@22.04", "extensions": ["flask-framework"]} + return { + "base": "ubuntu@22.04", + "platforms": {"amd64": {}}, + "extensions": ["flask-framework"], + } @pytest.fixture(name="django_input_yaml") @@ -276,6 +280,8 @@ def test_flask_extension_bare(tmp_path): flask_input_yaml = { "extensions": ["flask-framework"], "base": "bare", + "build-base": "ubuntu@22.04", + "platforms": {"amd64": {}}, "parts": {"flask/install-app": {"prime": ["-flask/app/.git"]}}, } applied = extensions.apply_extensions(tmp_path, flask_input_yaml) @@ -284,13 +290,17 @@ def test_flask_extension_bare(tmp_path): "override-build": "mkdir -m 777 ${CRAFT_PART_INSTALL}/tmp", "stage-packages": ["bash_bins", "coreutils_bins", "ca-certificates_data"], } - assert applied["build-base"] == "ubuntu@22.04" @pytest.mark.usefixtures("flask_extension") def test_flask_extension_no_requirements_txt_error(tmp_path): (tmp_path / "app.py").write_text("app = object()") - flask_input_yaml = {"extensions": ["flask-framework"], "base": "bare"} + flask_input_yaml = { + "extensions": ["flask-framework"], + "base": "bare", + "build-base": "ubuntu@22.04", + "platforms": {"amd64": {}}, + } with pytest.raises(ExtensionError) as exc: extensions.apply_extensions(tmp_path, flask_input_yaml) assert "requirements.txt" in str(exc) @@ -303,6 +313,8 @@ def test_flask_extension_incorrect_prime_prefix_error(tmp_path): flask_input_yaml = { "extensions": ["flask-framework"], "base": "bare", + "build-base": "ubuntu@22.04", + "platforms": {"amd64": {}}, "parts": {"flask-framework/install-app": {"prime": ["app.py"]}}, } (tmp_path / "requirements.txt").write_text("flask") @@ -317,6 +329,8 @@ def test_flask_extension_incorrect_wsgi_path_error(tmp_path): flask_input_yaml = { "extensions": ["flask-framework"], "base": "bare", + "build-base": "ubuntu@22.04", + "platforms": {"amd64": {}}, "parts": {"flask/install-app": {"prime": ["flask/app/requirement.txt"]}}, } (tmp_path / "requirements.txt").write_text("flask") @@ -339,6 +353,8 @@ def test_flask_extension_flask_service_override_disable_wsgi_path_check(tmp_path flask_input_yaml = { "extensions": ["flask-framework"], "base": "bare", + "build-base": "ubuntu@22.04", + "platforms": {"amd64": {}}, "services": { "flask": { "command": "/bin/python3 -m gunicorn -c /flask/gunicorn.conf.py webapp:app"