diff --git a/reporter/components/reporter.py b/reporter/components/reporter.py index c52ba50..f9c2509 100644 --- a/reporter/components/reporter.py +++ b/reporter/components/reporter.py @@ -8,6 +8,10 @@ from ..components.payload_validator import PayloadValidator +class CoverageFileNotFound(Exception): + pass + + class Reporter: def __init__(self, args): self.args = args @@ -21,6 +25,10 @@ def run(self): """ + if not os.path.isfile(self.args.file): + message = "Coverage file `" + self.args.file + "` file not found. " + raise CoverageFileNotFound(message) + xml_filepath = self.__create_xml_report(self.args.file) formatter = Formatter(xml_filepath) payload = formatter.payload() diff --git a/reporter/components/runner.py b/reporter/components/runner.py index 4f9afe0..6fdcc36 100644 --- a/reporter/components/runner.py +++ b/reporter/components/runner.py @@ -17,7 +17,7 @@ from ..__init__ import __version__ as reporter_version from ..components.argument_parser import ArgumentParser from ..components.payload_validator import InvalidPayload -from ..components.reporter import Reporter +from ..components.reporter import CoverageFileNotFound, Reporter class Runner: @@ -45,11 +45,12 @@ def run(self, args=sys.argv[1:], env=os.environ): reporter = Reporter(parsed_args) exit_status = reporter.run() return exit_status - except CoverageException as e: + except CoverageFileNotFound as e: return self.__handle_error( - "Coverage file `" + parsed_args.file + "` file not found. " - "Use --file to specifiy an alternate location." + str(e) + "\nUse --file to specifiy an alternate location." ) + except CoverageException as e: + return self.__handle_error(str(e), support=True) except InvalidPayload as e: return self.__handle_error("Invalid Payload: " + str(e), support=True) except requests.exceptions.HTTPError as e: