#27 Log separately the BeanBagException so we can log better why they failed
Merged 3 years ago by pingou. Opened 3 years ago by pingou.

@@ -160,10 +160,12 @@ 

          client = Mock()

          pdc.return_value = client

  

-         error = Exception("Failed to query resource")

-         error.response = Mock()

-         error.response.url = "https://kojipkgs/..../42"

-         error.response.text = "AHAH"

+         response = Mock()

+         response.url = "https://kojipkgs/..../42"

+         response.text = "AHAH"

+         error = beanbag.bbexcept.BeanBagException(

+             response, msg="Failed to query resource"

+         )

          import_compose.side_effect = error

  

          old_composes.return_value = [
@@ -189,11 +191,10 @@ 

              ]

          )

  

-         assert len(caplog.records) == 3

-         assert (

-             caplog.records[-1].message

-             == "Failed to import 'https://kojipkgs.../123' - 'https://kojipkgs/..../42' 'AHAH'"

-         )

+         assert len(caplog.records) == 9

+         assert caplog.records[-3].message == "Failed to query resource"

+         assert caplog.records[-2].message == "https://kojipkgs/..../42"

+         assert caplog.records[-1].message == "AHAH"

  

      @patch("toddlers.plugins.pdc_import_compose.PDCImportCompose._import_compose")

      @patch("toddlers.plugins.pdc_import_compose.pdc_client_for_config")

@@ -70,16 +70,13 @@ 

          for _, compose_id, url in old_composes:

              try:

                  self._import_compose(pdc, compose_id, url)

-             except Exception as e:

-                 if getattr(e, "response", None):

-                     _log.exception(

-                         "Failed to import %r - %r %r",

-                         url,

-                         e.response.url,

-                         e.response.text,

-                     )

-                 else:

-                     _log.exception("Failed to import %r", url)

+             except beanbag.bbexcept.BeanBagException as e:

+                 _log.exception("Failed to import (BeenBagException): %s", url)

+                 _log.error(e.msg)

+                 _log.error(e.response.url)

+                 _log.error(e.response.text)

+             except Exception:

+                 _log.exception("Failed to import %r", url)

  

      def _process_single_compose(self, config, pdc, message):

          """Handle an incoming bus message.