from io import StringIO import sys import mypy.api from mypy.test.helpers import Suite class APISuite(Suite): def setUp(self) -> None: self.sys_stdout = sys.stdout self.sys_stderr = sys.stderr sys.stdout = self.stdout = StringIO() sys.stderr = self.stderr = StringIO() def tearDown(self) -> None: sys.stdout = self.sys_stdout sys.stderr = self.sys_stderr assert self.stdout.getvalue() == '' assert self.stderr.getvalue() == '' def test_capture_bad_opt(self) -> None: """stderr should be captured when a bad option is passed.""" _, stderr, _ = mypy.api.run(['--some-bad-option']) assert isinstance(stderr, str) assert stderr != '' def test_capture_empty(self) -> None: """stderr should be captured when a bad option is passed.""" _, stderr, _ = mypy.api.run([]) assert isinstance(stderr, str) assert stderr != '' def test_capture_help(self) -> None: """stdout should be captured when --help is passed.""" stdout, _, _ = mypy.api.run(['--help']) assert isinstance(stdout, str) assert stdout != '' def test_capture_version(self) -> None: """stdout should be captured when --version is passed.""" stdout, _, _ = mypy.api.run(['--version']) assert isinstance(stdout, str) assert stdout != ''