Add decorator tests - sandwich mode

This commit is contained in:
Eric Masseran
2025-05-05 00:37:38 +02:00
parent 5f4afa27e5
commit eb80dc08f3

View File

@@ -346,6 +346,20 @@ def test_wraps_signature(Script, code, signature):
["y"], ["y"],
True, True,
], ],
[
dedent(
"""
@dataclass
class Y():
y: int
class Z(Y): # Not included
z = 5
@dataclass
class X(Z):"""
),
["y"],
True,
],
# init=False # init=False
[ [
dedent( dedent(
@@ -384,6 +398,7 @@ def test_wraps_signature(Script, code, signature):
"transformed_with_params", "transformed_with_params",
"subclass_transformed", "subclass_transformed",
"both_transformed", "both_transformed",
"intermediate_not_transformed",
"init_false", "init_false",
"init_false_multiple", "init_false_multiple",
"custom_init", "custom_init",
@@ -469,6 +484,34 @@ dataclass_transform_cases = [
pass pass
@create_model @create_model
class X:'''), [], True], class X:'''), [], True],
[dedent('''
@dataclass_transform
def create_model():
pass
class Y:
y: int
@create_model
class X(Y):'''), [], True],
[dedent('''
@dataclass_transform
def create_model():
pass
@create_model
class Y:
y: int
@create_model
class X(Y):'''), ["y"], True],
[dedent('''
@dataclass_transform
def create_model():
pass
@create_model
class Y:
y: int
class Z(Y):
z: int
@create_model
class X(Z):'''), ["y"], True],
# Metaclass based # Metaclass based
[dedent(''' [dedent('''
@dataclass_transform @dataclass_transform
@@ -547,7 +590,10 @@ ids = [
"subclass_transformer", "subclass_transformer",
"base_transformed", "base_transformed",
"base_transformed_with_params", "base_transformed_with_params",
"decorator_transformed", "decorator_transformed_direct",
"decorator_transformed_subclass",
"decorator_transformed_both",
"decorator_transformed_intermediate_not",
"metaclass_transformed", "metaclass_transformed",
"custom_init", "custom_init",
"base_transformed_init_false", "base_transformed_init_false",