2021-07-22 10:14:43 +02: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))