import pathlib import sys import unittest import mypy.api test_modules = ['rsa', 'tests'] class MypyRunnerTest(unittest.TestCase): def test_run_mypy(self): proj_root = pathlib.Path(__file__).parent.parent args = [ '--incremental', '--ignore-missing-imports', f'--python-version={sys.version_info.major}.{sys.version_info.minor}' ] + [str(proj_root / dirname) for dirname in test_modules] result = mypy.api.run(args) stdout, stderr, status = result messages = [] if stderr: messages.append(stderr) if stdout: messages.append(stdout) if status: messages.append('Mypy failed with status %d' % status) if messages and not all('Success' in message for message in messages): self.fail('\n'.join(['Mypy errors:'] + messages))