Return an exception to the user if no dependency combination is determined

This commit is contained in:
mprahl
2019-02-25 11:59:54 -05:00
committed by mprahl
parent f6a4befefe
commit d5f9c5872f
2 changed files with 26 additions and 0 deletions

View File

@@ -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

View File

@@ -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')