Sybren A. Stüvel 782293b360 MyPy test fix
Newer versions of MyPy aren't silent any more when they complete succesfully,
so test for 'Success' in the message before failing the test.
2020-03-17 12:29:40 +01:00

33 lines
1.1 KiB
Python

import pathlib
import sys
import unittest
import mypy.api
import blender_asset_tracer
class MypyRunnerTest(unittest.TestCase):
def test_run_mypy(self):
# This test doesn't work with Tox, it raises an AssertionError:
# /path/to/blender-asset-tracer/.tox/py37/lib/python3.7/site-packages is in the PYTHONPATH.
# Please change directory so it is not.
for path in sys.path:
if '/.tox/' in path and path.endswith('/site-packages'):
self.skipTest("Mypy doesn't like Tox")
path = pathlib.Path(blender_asset_tracer.__file__).parent
result = mypy.api.run(['--incremental', '--ignore-missing-imports', str(path)])
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(msg.startswith('Success: ') for msg in messages):
self.fail('\n'.join(['Mypy errors:'] + messages))