@@ -1222,10 +1222,9 @@ class Model:
1222
1222
val .validate_assignment (m , 'x' , 'abc' )
1223
1223
1224
1224
1225
+ @pytest .mark .skipif (sys .version_info < (3 , 10 ), reason = 'slots are only supported for dataclasses in Python > 3.10' )
1225
1226
def test_dataclass_slots_field_before_validator ():
1226
- kwargs = {'slots' : True }
1227
-
1228
- @dataclasses .dataclass (** kwargs )
1227
+ @dataclasses .dataclass (slots = True )
1229
1228
class Foo :
1230
1229
a : int
1231
1230
b : str
@@ -1256,10 +1255,9 @@ def validate_b(cls, v: bytes, info: core_schema.FieldValidationInfo) -> bytes:
1256
1255
assert dataclasses .asdict (foo ) == {'a' : 1 , 'b' : 'hello world!' }
1257
1256
1258
1257
1258
+ @pytest .mark .skipif (sys .version_info < (3 , 10 ), reason = 'slots are only supported for dataclasses in Python > 3.10' )
1259
1259
def test_dataclass_slots_field_after_validator ():
1260
- kwargs = {'slots' : True }
1261
-
1262
- @dataclasses .dataclass (** kwargs )
1260
+ @dataclasses .dataclass (slots = True )
1263
1261
class Foo :
1264
1262
a : int
1265
1263
b : str
@@ -1290,23 +1288,29 @@ def validate_b(cls, v: str, info: core_schema.FieldValidationInfo) -> str:
1290
1288
assert dataclasses .asdict (foo ) == {'a' : 1 , 'b' : 'hello world!' }
1291
1289
1292
1290
1293
- @dataclasses .dataclass (slots = True )
1291
+ if sys .version_info < (3 , 10 ):
1292
+ kwargs = {}
1293
+ else :
1294
+ kwargs = {'slots' : True }
1295
+
1296
+
1297
+ @dataclasses .dataclass (** kwargs )
1294
1298
class FooDataclassSlots :
1295
1299
a : str
1296
1300
b : bool
1297
1301
1298
1302
1299
- @dataclasses .dataclass (slots = True )
1303
+ @dataclasses .dataclass (** kwargs )
1300
1304
class FooDataclassSameSlots (FooDataclassSlots ):
1301
1305
pass
1302
1306
1303
1307
1304
- @dataclasses .dataclass (slots = True )
1308
+ @dataclasses .dataclass (** kwargs )
1305
1309
class FooDataclassMoreSlots (FooDataclassSlots ):
1306
1310
c : str
1307
1311
1308
1312
1309
- @dataclasses .dataclass (slots = True )
1313
+ @dataclasses .dataclass (** kwargs )
1310
1314
class DuplicateDifferentSlots :
1311
1315
a : str
1312
1316
b : bool
@@ -1349,6 +1353,7 @@ class DuplicateDifferentSlots:
1349
1353
),
1350
1354
],
1351
1355
)
1356
+ @pytest .mark .skipif (sys .version_info < (3 , 10 ), reason = 'slots are only supported for dataclasses in Python > 3.10' )
1352
1357
def test_slots_dataclass_subclass (revalidate_instances , input_value , expected ):
1353
1358
schema = core_schema .dataclass_schema (
1354
1359
FooDataclassSlots ,
0 commit comments