Beispiel #1
0
 def wrapper(*args, **kwargs):
     try:
         return function(*args, **kwargs)
     except ValidationError as error:
         sys.exit(error.exit_code)
     except SpectaclesException as error:
         logger.error(
             f"{error}\n\n"
             + printer.dim(
                 "For support, please create an issue at "
                 "https://github.com/spectacles-ci/spectacles/issues"
             )
             + "\n"
         )
         sys.exit(error.exit_code)
     except Exception as error:
         logger.debug(error, exc_info=True)
         logger.error(
             f'Encountered unexpected {error.__class__.__name__}: "{error}"\n'
             f"Full error traceback logged to {LOG_FILEPATH}\n\n"
             + printer.dim(
                 "For support, please create an issue at "
                 "https://github.com/spectacles-ci/spectacles/issues"
             )
             + "\n"
         )
         sys.exit(1)
Beispiel #2
0
 def wrapper(*args, **kwargs):
     try:
         return function(*args, **kwargs)
     except GenericValidationError as error:
         sys.exit(error.exit_code)
     except LookerApiError as error:
         logger.error(f"\n{error}\n\n" + printer.dim(
             "Run in verbose mode (-v) or check your log file to see the full "
             "response from the Looker API. "
             "For support, please create an issue at "
             "https://github.com/spectacles-ci/spectacles/issues") + "\n")
         looker_api_response = json.dumps(error.looker_api_response,
                                          indent=2)
         logger.debug(
             f"Spectacles received a {error.status} response code from "
             f"the Looker API with the following details: {looker_api_response}\n"
         )
         sys.exit(error.exit_code)
     except SpectaclesException as error:
         logger.error(f"\n{error}\n\n" + printer.dim(
             "For support, please create an issue at "
             "https://github.com/spectacles-ci/spectacles/issues") + "\n")
         sys.exit(error.exit_code)
     except KeyboardInterrupt as error:
         logger.debug(error, exc_info=True)
         logger.info("Spectacles was manually interrupted.")
         sys.exit(1)
     except Exception as error:
         logger.debug(error, exc_info=True)
         logger.error(
             f'\nEncountered unexpected {error.__class__.__name__}: "{error}"\n'
             f"Full error traceback logged to file.\n\n" + printer.dim(
                 "For support, please create an issue at "
                 "https://github.com/spectacles-ci/spectacles/issues") +
             "\n")
         sys.exit(1)