33 lines
1.1 KiB
Python
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))
|