From e0797be6813a93fc83b059d91f0cc6bd16e113b2 Mon Sep 17 00:00:00 2001 From: Eric Masseran Date: Sat, 15 Mar 2025 16:02:23 +0100 Subject: [PATCH] Check final+classvar support for dataclass transform --- test/test_inference/test_signature.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/test/test_inference/test_signature.py b/test/test_inference/test_signature.py index cf89709b..cf4ef436 100644 --- a/test/test_inference/test_signature.py +++ b/test/test_inference/test_signature.py @@ -522,13 +522,19 @@ def test_extensions_dataclass_transform_signature( """ name: str foo = 3 - price: float + blob: ClassVar[str] + price: Final[float] quantity: int = 0.0 X(""" ) - code = "from typing_extensions import dataclass_transform\n" + start + code + code = ( + "from typing_extensions import dataclass_transform\n" + + "from typing import ClassVar, Final\n" + + start + + code + ) (sig,) = Script(code).get_signatures() expected_params = ( @@ -542,7 +548,7 @@ def test_extensions_dataclass_transform_signature( quantity, = sig.params[-1].infer() assert quantity.name == 'int' price, = sig.params[-2].infer() - assert price.name == 'float' + assert price.name == 'object' @pytest.mark.parametrize( @@ -554,12 +560,18 @@ def test_dataclass_transform_signature( code = dedent(''' name: str foo = 3 - price: float + blob: ClassVar[str] + price: Final[float] quantity: int = 0.0 X(''') - code = 'from typing import dataclass_transform\n' + start + code + code = ( + "from typing import dataclass_transform\n" + + "from typing import ClassVar, Final\n" + + start + + code + ) sig, = Script(code).get_signatures() expected_params = ( @@ -573,7 +585,7 @@ def test_dataclass_transform_signature( quantity, = sig.params[-1].infer() assert quantity.name == 'int' price, = sig.params[-2].infer() - assert price.name == 'float' + assert price.name == 'object' @pytest.mark.parametrize(