@@ -140,6 +140,15 @@ class _FrozenChild(MutableBase):
140140FrozenChild = frozen_dataclass_sealable (_FrozenChild )
141141
142142
143+ # Class used for pickling tests, defined at module level
144+ @frozen_dataclass_sealable
145+ class PickleTest :
146+ name : str
147+ values : list [int ] = field (
148+ default_factory = list , metadata = {"mutable_during_init" : True }
149+ )
150+
151+
143152# Core behavior tests
144153# -----------------
145154
@@ -666,8 +675,8 @@ class Inner:
666675
667676 @frozen_dataclass_sealable
668677 class Outer :
669- inner : Inner = field (default = None , metadata = {"mutable_during_init" : True })
670678 data : str = field (metadata = {"mutable_during_init" : True })
679+ inner : Inner = field (default = None , metadata = {"mutable_during_init" : True })
671680
672681 # Case 1: Deep sealing (deep=True)
673682 inner_obj = Inner (val = 42 )
@@ -809,8 +818,12 @@ def test_mutable_containers_after_sealing() -> None:
809818
810819 @frozen_dataclass_sealable
811820 class ContainerHolder :
812- items : list [int ] = field (default_factory = list )
813- mapping : dict [str , int ] = field (default_factory = dict )
821+ items : list [int ] = field (
822+ default_factory = list , metadata = {"mutable_during_init" : True }
823+ )
824+ mapping : dict [str , int ] = field (
825+ default_factory = dict , metadata = {"mutable_during_init" : True }
826+ )
814827
815828 obj = ContainerHolder ()
816829 obj .items .extend ([1 , 2 , 3 ])
@@ -866,13 +879,6 @@ def test_pickling_sealed_objects() -> None:
866879 """Test that sealed objects can be pickled and unpickled while preserving their sealed state."""
867880 import pickle
868881
869- @frozen_dataclass_sealable
870- class PickleTest :
871- name : str
872- values : list [int ] = field (
873- default_factory = list , metadata = {"mutable_during_init" : True }
874- )
875-
876882 # Create and configure object
877883 obj = PickleTest (name = "test" )
878884 obj .values .extend ([1 , 2 , 3 ])
@@ -968,13 +974,13 @@ class Level3:
968974
969975 @frozen_dataclass_sealable
970976 class Level2 :
971- level3 : Level3 = field (default = None , metadata = {"mutable_during_init" : True })
972977 name : str = field (metadata = {"mutable_during_init" : True })
978+ level3 : Level3 = field (default = None , metadata = {"mutable_during_init" : True })
973979
974980 @frozen_dataclass_sealable
975981 class Level1 :
976- level2 : Level2 = field (default = None , metadata = {"mutable_during_init" : True })
977982 data : str = field (metadata = {"mutable_during_init" : True })
983+ level2 : Level2 = field (default = None , metadata = {"mutable_during_init" : True })
978984
979985 # Create nested structure
980986 level3 = Level3 (value = 42 )
@@ -987,7 +993,7 @@ class Level1:
987993 level1 .data = "modified top"
988994
989995 # Deep seal from the top level
990- level1 .seal (deep = True )
996+ level1 .seal (deep = True ) # This should seal all levels
991997
992998 # All levels should now be sealed
993999 with pytest .raises (AttributeError ):
@@ -1013,10 +1019,10 @@ class RegularClass:
10131019
10141020 @frozen_dataclass_sealable
10151021 class MixedContainer :
1022+ data : str = field (metadata = {"mutable_during_init" : True })
10161023 regular : RegularClass = field (
10171024 default = None , metadata = {"mutable_during_init" : True }
10181025 )
1019- data : str = field (metadata = {"mutable_during_init" : True })
10201026
10211027 # Create objects
10221028 regular = RegularClass (name = "test" , value = 42 )
0 commit comments