testapi.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from __future__ import annotations
  2. import sys
  3. from io import StringIO
  4. import mypy.api
  5. from mypy.test.helpers import Suite
  6. class APISuite(Suite):
  7. def setUp(self) -> None:
  8. self.sys_stdout = sys.stdout
  9. self.sys_stderr = sys.stderr
  10. sys.stdout = self.stdout = StringIO()
  11. sys.stderr = self.stderr = StringIO()
  12. def tearDown(self) -> None:
  13. sys.stdout = self.sys_stdout
  14. sys.stderr = self.sys_stderr
  15. assert self.stdout.getvalue() == ""
  16. assert self.stderr.getvalue() == ""
  17. def test_capture_bad_opt(self) -> None:
  18. """stderr should be captured when a bad option is passed."""
  19. _, stderr, _ = mypy.api.run(["--some-bad-option"])
  20. assert isinstance(stderr, str)
  21. assert stderr != ""
  22. def test_capture_empty(self) -> None:
  23. """stderr should be captured when a bad option is passed."""
  24. _, stderr, _ = mypy.api.run([])
  25. assert isinstance(stderr, str)
  26. assert stderr != ""
  27. def test_capture_help(self) -> None:
  28. """stdout should be captured when --help is passed."""
  29. stdout, _, _ = mypy.api.run(["--help"])
  30. assert isinstance(stdout, str)
  31. assert stdout != ""
  32. def test_capture_version(self) -> None:
  33. """stdout should be captured when --version is passed."""
  34. stdout, _, _ = mypy.api.run(["--version"])
  35. assert isinstance(stdout, str)
  36. assert stdout != ""