mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-07 06:24:27 +08:00
Check final+classvar support for dataclass transform
This commit is contained in:
@@ -522,13 +522,19 @@ def test_extensions_dataclass_transform_signature(
|
|||||||
"""
|
"""
|
||||||
name: str
|
name: str
|
||||||
foo = 3
|
foo = 3
|
||||||
price: float
|
blob: ClassVar[str]
|
||||||
|
price: Final[float]
|
||||||
quantity: int = 0.0
|
quantity: int = 0.0
|
||||||
|
|
||||||
X("""
|
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()
|
(sig,) = Script(code).get_signatures()
|
||||||
expected_params = (
|
expected_params = (
|
||||||
@@ -542,7 +548,7 @@ def test_extensions_dataclass_transform_signature(
|
|||||||
quantity, = sig.params[-1].infer()
|
quantity, = sig.params[-1].infer()
|
||||||
assert quantity.name == 'int'
|
assert quantity.name == 'int'
|
||||||
price, = sig.params[-2].infer()
|
price, = sig.params[-2].infer()
|
||||||
assert price.name == 'float'
|
assert price.name == 'object'
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -554,12 +560,18 @@ def test_dataclass_transform_signature(
|
|||||||
code = dedent('''
|
code = dedent('''
|
||||||
name: str
|
name: str
|
||||||
foo = 3
|
foo = 3
|
||||||
price: float
|
blob: ClassVar[str]
|
||||||
|
price: Final[float]
|
||||||
quantity: int = 0.0
|
quantity: int = 0.0
|
||||||
|
|
||||||
X(''')
|
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()
|
sig, = Script(code).get_signatures()
|
||||||
expected_params = (
|
expected_params = (
|
||||||
@@ -573,7 +585,7 @@ def test_dataclass_transform_signature(
|
|||||||
quantity, = sig.params[-1].infer()
|
quantity, = sig.params[-1].infer()
|
||||||
assert quantity.name == 'int'
|
assert quantity.name == 'int'
|
||||||
price, = sig.params[-2].infer()
|
price, = sig.params[-2].infer()
|
||||||
assert price.name == 'float'
|
assert price.name == 'object'
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
|
|||||||
Reference in New Issue
Block a user