#575 Change logging when Koji build not found
Merged 3 years ago by vmaljulin. Opened 3 years ago by vmaljulin.
vmaljulin/greenwave RHELWF-418  into  master

file modified
+3 -1
@@ -6,7 +6,7 @@ 

  import os

  import re

  import greenwave.resources

- from werkzeug.exceptions import BadRequest

+ from werkzeug.exceptions import BadRequest, NotFound

  from flask import current_app

  from greenwave.utils import remove_duplicates, to_hashable

  from greenwave.safe_yaml import (
@@ -544,6 +544,8 @@ 

              sub_policies = self._get_sub_policies(policy, subject)

          except SafeYAMLError:

              logging.exception('Failed to parse policies for %r', subject)

+         except NotFound:

+             logging.error('Koji build not found for %r', subject)

          except Exception:

              logging.exception('Failed to retrieve policies for %r', subject)

  

@@ -12,6 +12,7 @@ 

      retrieve_scm_from_koji_build, retrieve_scm_from_koji, retrieve_yaml_remote_rule,

      NoSourceException

  )

+ from greenwave.app_factory import create_app

  

  KOJI_URL = 'https://koji.fedoraproject.org/kojihub'

  
@@ -96,6 +97,21 @@ 

      assert pkg_name == 'foo'

  

  

+ def test_retrieve_scm_from_koji_build_not_found():

+     nvr = 'foo-1.2.3-1.fc29'

+     app = create_app('greenwave.config.TestingConfig')

+     with app.app_context():

+         expected_error = '404 Not Found: Failed to find Koji build for "{}" at "{}"'.format(

+             nvr, app.config['KOJI_BASE_URL']

+         )

+         with mock.patch('xmlrpc.client.ServerProxy') as koji_server:

+             proxy = mock.MagicMock()

+             proxy.getBuild.return_value = {}

+             koji_server.return_value = proxy

+             with pytest.raises(NotFound, match=expected_error):

+                 retrieve_scm_from_koji(nvr)

+ 

+ 

  def test_retrieve_scm_from_build_with_missing_rev():

      nvr = 'foo-1.2.3-1.fc29'

      build = {

JIRA: RHELWF-418

Signed-off-by: Valerij Maljulin vmaljuli@redhat.com

Add tests. Scenario to consider: Koji build is not found but remote rule file is required (in policies: RemoteRule {required: true}).

rebased onto e09e91e67c78e546e1162e84a7ae3240bf1e1e00

3 years ago

rebased onto bdf23be

3 years ago

Pull-Request has been merged by vmaljulin

3 years ago