Skip to content

Commit

Permalink
catch MissingRequiredFiles from .require()
Browse files Browse the repository at this point in the history
  • Loading branch information
Jelleas committed Jan 16, 2024
1 parent afc14b9 commit bd05031
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
3 changes: 2 additions & 1 deletion checkpy/entities/exception.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,5 @@ class TooManyFilesError(CheckpyError):

class MissingRequiredFiles(CheckpyError):
def __init__(self, missingFiles: _typing.List[str]):
super().__init__(message=f"Missing the following required files: {', '.join(missingFiles)}")
super().__init__(message=f"Missing the following required file{'s' if len(missingFiles) != 1 else ''}: {', '.join(missingFiles)}")
self.missingFiles = tuple(missingFiles)
10 changes: 8 additions & 2 deletions checkpy/tester/tester.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,13 +235,19 @@ def run(self):
dessert.util._reprcompare = explainCompare

with sandbox():
module = importlib.import_module(self.moduleName)
try:
module = importlib.import_module(self.moduleName)
except exception.MissingRequiredFiles as e:
result = TesterResult(self.filePath.name)
result.addOutput(printer.displayError(e))
self._sendResult(result)
return
module._fileName = self.filePath.name # type: ignore [attr-defined]

self._runTestsFromModule(module)

def _runTestsFromModule(self, module: ModuleType):
self._sendSignal(_Signal(isTiming = False))
self._sendSignal(_Signal(isTiming=False))

result = TesterResult(self.filePath.name)
result.addOutput(printer.displayTestName(self.filePath.name))
Expand Down

0 comments on commit bd05031

Please sign in to comment.