gtn/.venv/Lib/site-packages/mypy/test/test_ref_info.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

"""Test exporting line-level reference information (undocumented feature)"""
from __future__ import annotations
import json
import os
import sys
from mypy import build
from mypy.modulefinder import BuildSource
from mypy.options import Options
from mypy.test.config import test_temp_dir
from mypy.test.data import DataDrivenTestCase, DataSuite
from mypy.test.helpers import assert_string_arrays_equal
class RefInfoSuite(DataSuite):
required_out_section = True
files = ["ref-info.test"]
def run_case(self, testcase: DataDrivenTestCase) -> None:
options = Options()
options.use_builtins_fixtures = True
options.show_traceback = True
options.export_ref_info = True # This is the flag we are testing
src = "\n".join(testcase.input)
result = build.build(
sources=[BuildSource("main", None, src)], options=options, alt_lib_path=test_temp_dir
)
assert not result.errors
major, minor = sys.version_info[:2]
ref_path = os.path.join(options.cache_dir, f"{major}.{minor}", "__main__.refs.json")
with open(ref_path) as refs_file:
data = json.load(refs_file)
a = []
for item in data:
a.append(f"{item['line']}:{item['column']}:{item['target']}")
assert_string_arrays_equal(
testcase.output, a, f"Invalid output ({testcase.file}, line {testcase.line})"
)