@@ -116,6 +116,7 @@ def g3(self):
116116def test_curried_qualname ():
117117 if not PY3 :
118118 return
119+
119120 def preserves_identity (obj ):
120121 return pickle .loads (pickle .dumps (obj )) is obj
121122
@@ -124,22 +125,6 @@ def preserves_identity(obj):
124125 assert preserves_identity (GlobalCurried .func .NestedCurried )
125126 assert preserves_identity (GlobalCurried .func .NestedCurried .func .f2 )
126127 assert preserves_identity (GlobalCurried .func .Nested .f3 )
127- if not PY33 and not PY34 :
128- assert preserves_identity (GlobalCurried .func .g1 )
129- assert preserves_identity (GlobalCurried .func .NestedCurried .func .g2 )
130- assert preserves_identity (GlobalCurried .func .Nested )
131- assert preserves_identity (GlobalCurried .func .Nested .g3 )
132-
133- # Rely on curry.__getattr__
134- assert preserves_identity (GlobalCurried .f1 )
135- assert preserves_identity (GlobalCurried .NestedCurried )
136- assert preserves_identity (GlobalCurried .NestedCurried .f2 )
137- assert preserves_identity (GlobalCurried .Nested .f3 )
138- if not PY33 and not PY34 :
139- assert preserves_identity (GlobalCurried .g1 )
140- assert preserves_identity (GlobalCurried .NestedCurried .g2 )
141- assert preserves_identity (GlobalCurried .Nested )
142- assert preserves_identity (GlobalCurried .Nested .g3 )
143128
144129 global_curried1 = GlobalCurried (1 )
145130 global_curried2 = pickle .loads (pickle .dumps (global_curried1 ))
@@ -156,31 +141,50 @@ def preserves_identity(obj):
156141 assert func1 is not func2
157142 assert func1 (4 ) == func2 (4 ) == 10
158143
159- nested_curried1 = GlobalCurried .NestedCurried (1 )
144+ nested_curried1 = GlobalCurried .func . NestedCurried (1 )
160145 nested_curried2 = pickle .loads (pickle .dumps (nested_curried1 ))
161146 assert nested_curried1 is not nested_curried2
162147 assert nested_curried1 (2 ).f2 (3 , 4 ) == nested_curried2 (2 ).f2 (3 , 4 ) == 10
163148
164- nested_curried3 = nested_curried1 (2 )
165- nested_curried4 = pickle .loads (pickle .dumps (nested_curried3 ))
166- assert nested_curried3 is not nested_curried4
167- assert nested_curried3 .f2 (3 , 4 ) == nested_curried4 .f2 (3 , 4 ) == 10
168-
169- func1 = nested_curried1 (2 ).f2 (3 )
170- func2 = pickle .loads (pickle .dumps (func1 ))
171- assert func1 is not func2
172- assert func1 (4 ) == func2 (4 ) == 10
173-
174- if not PY33 and not PY34 :
175- nested3 = GlobalCurried .Nested (1 , 2 )
176- nested4 = pickle .loads (pickle .dumps (nested3 ))
177- assert nested3 is not nested4
178- assert nested3 .f3 (3 , 4 ) == nested4 .f3 (3 , 4 ) == 10
179-
180- func1 = nested3 .f3 (3 )
181- func2 = pickle .loads (pickle .dumps (func1 ))
182- assert func1 is not func2
183- assert func1 (4 ) == func2 (4 ) == 10
149+ # If we add `curry.__getattr__` forwarding, the following tests will pass
150+
151+ # if not PY33 and not PY34:
152+ # assert preserves_identity(GlobalCurried.func.g1)
153+ # assert preserves_identity(GlobalCurried.func.NestedCurried.func.g2)
154+ # assert preserves_identity(GlobalCurried.func.Nested)
155+ # assert preserves_identity(GlobalCurried.func.Nested.g3)
156+ #
157+ # # Rely on curry.__getattr__
158+ # assert preserves_identity(GlobalCurried.f1)
159+ # assert preserves_identity(GlobalCurried.NestedCurried)
160+ # assert preserves_identity(GlobalCurried.NestedCurried.f2)
161+ # assert preserves_identity(GlobalCurried.Nested.f3)
162+ # if not PY33 and not PY34:
163+ # assert preserves_identity(GlobalCurried.g1)
164+ # assert preserves_identity(GlobalCurried.NestedCurried.g2)
165+ # assert preserves_identity(GlobalCurried.Nested)
166+ # assert preserves_identity(GlobalCurried.Nested.g3)
167+ #
168+ # nested_curried3 = nested_curried1(2)
169+ # nested_curried4 = pickle.loads(pickle.dumps(nested_curried3))
170+ # assert nested_curried3 is not nested_curried4
171+ # assert nested_curried3.f2(3, 4) == nested_curried4.f2(3, 4) == 10
172+ #
173+ # func1 = nested_curried1(2).f2(3)
174+ # func2 = pickle.loads(pickle.dumps(func1))
175+ # assert func1 is not func2
176+ # assert func1(4) == func2(4) == 10
177+ #
178+ # if not PY33 and not PY34:
179+ # nested3 = GlobalCurried.func.Nested(1, 2)
180+ # nested4 = pickle.loads(pickle.dumps(nested3))
181+ # assert nested3 is not nested4
182+ # assert nested3.f3(3, 4) == nested4.f3(3, 4) == 10
183+ #
184+ # func1 = nested3.f3(3)
185+ # func2 = pickle.loads(pickle.dumps(func1))
186+ # assert func1 is not func2
187+ # assert func1(4) == func2(4) == 10
184188
185189
186190def test_curried_bad_qualname ():
0 commit comments