diff --git a/module_build_service/utils/submit.py b/module_build_service/utils/submit.py index 6a69a208..d692b778 100644 --- a/module_build_service/utils/submit.py +++ b/module_build_service/utils/submit.py @@ -523,6 +523,9 @@ def submit_module_build(username, url, mmd, optional_params=None): validate_mmd(mmd) mmds = generate_expanded_mmds(db.session, mmd, raise_if_stream_ambigous, default_streams) + if not mmds: + raise ValidationError('No dependency combination was satisfied. Please verify the ' + 'buildrequires in your modulemd have previously been built.') modules = [] # True if all module builds are skipped so MBS will actually not rebuild diff --git a/tests/test_views/test_views.py b/tests/test_views/test_views.py index 9ae5dffc..cedf27b0 100644 --- a/tests/test_views/test_views.py +++ b/tests/test_views/test_views.py @@ -1275,6 +1275,29 @@ class TestViews: assert set(dep.get_buildrequires()['platform'].get()) == expected_br assert set(dep.get_requires()['platform'].get()) == expected_req + @patch('module_build_service.auth.get_user', return_value=user) + @patch('module_build_service.scm.SCM') + def test_submit_build_invalid_basemodule_stream(self, mocked_scm, mocked_get_user): + FakeSCM(mocked_scm, 'testmodule', 'testmodule.yaml', + '620ec77321b2ea7b0d67d82992dda3e1d67055b4') + + data = { + 'branch': 'master', + 'scmurl': 'https://src.stg.fedoraproject.org/modules/' + 'testmodule.git?#68931c90de214d9d13feefbd35246a81b6cb8d49', + 'buildrequire_overrides': {'platform': ['28.0.0']}, + 'require_overrides': {'platform': ['f28.0.0']} + } + rv = self.client.post('/module-build-service/1/module-builds/', data=json.dumps(data)) + result = json.loads(rv.data) + assert result == { + 'error': 'Bad Request', + 'status': 400, + 'message': ('No dependency combination was satisfied. Please verify the ' + 'buildrequires in your modulemd have previously been built.') + } + assert rv.status_code == 400 + @pytest.mark.parametrize('dep_type', ('buildrequire', 'require')) @patch('module_build_service.auth.get_user', return_value=user) @patch('module_build_service.scm.SCM')