gtn/.venv/Lib/site-packages/mypy/test/testerrorstream.py
Tipragot 628be439b8 Ajout d'un environement de développement.
Cela permet de ne pas avoir de problèmes de compatibilité
car python est dans le git.
2023-10-26 15:33:03 +02:00

46 lines
1.4 KiB
Python

"""Tests for mypy incremental error output."""
from __future__ import annotations
from mypy import build
from mypy.errors import CompileError
from mypy.modulefinder import BuildSource
from mypy.options import Options
from mypy.test.data import DataDrivenTestCase, DataSuite
from mypy.test.helpers import assert_string_arrays_equal
class ErrorStreamSuite(DataSuite):
required_out_section = True
base_path = "."
files = ["errorstream.test"]
def run_case(self, testcase: DataDrivenTestCase) -> None:
test_error_stream(testcase)
def test_error_stream(testcase: DataDrivenTestCase) -> None:
"""Perform a single error streaming test case.
The argument contains the description of the test case.
"""
options = Options()
options.show_traceback = True
options.hide_error_codes = True
logged_messages: list[str] = []
def flush_errors(msgs: list[str], serious: bool) -> None:
if msgs:
logged_messages.append("==== Errors flushed ====")
logged_messages.extend(msgs)
sources = [BuildSource("main", "__main__", "\n".join(testcase.input))]
try:
build.build(sources=sources, options=options, flush_errors=flush_errors)
except CompileError as e:
assert e.messages == []
assert_string_arrays_equal(
testcase.output, logged_messages, f"Invalid output ({testcase.file}, line {testcase.line})"
)