Skip to content

Commit ed6caed

Browse files
committed
Update test_decorators.py from 3.13.7
1 parent 37324b4 commit ed6caed

File tree

1 file changed

+1
-125
lines changed

1 file changed

+1
-125
lines changed

Lib/test/test_decorators.py

Lines changed: 1 addition & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -291,46 +291,7 @@ def bar(): return 42
291291
self.assertEqual(bar(), 42)
292292
self.assertEqual(actions, expected_actions)
293293

294-
def test_wrapped_descriptor_inside_classmethod(self):
295-
class BoundWrapper:
296-
def __init__(self, wrapped):
297-
self.__wrapped__ = wrapped
298-
299-
def __call__(self, *args, **kwargs):
300-
return self.__wrapped__(*args, **kwargs)
301-
302-
class Wrapper:
303-
def __init__(self, wrapped):
304-
self.__wrapped__ = wrapped
305-
306-
def __get__(self, instance, owner):
307-
bound_function = self.__wrapped__.__get__(instance, owner)
308-
return BoundWrapper(bound_function)
309-
310-
def decorator(wrapped):
311-
return Wrapper(wrapped)
312-
313-
class Class:
314-
@decorator
315-
@classmethod
316-
def inner(cls):
317-
# This should already work.
318-
return 'spam'
319-
320-
@classmethod
321-
@decorator
322-
def outer(cls):
323-
# Raised TypeError with a message saying that the 'Wrapper'
324-
# object is not callable.
325-
return 'eggs'
326-
327-
self.assertEqual(Class.inner(), 'spam')
328-
self.assertEqual(Class.outer(), 'eggs')
329-
self.assertEqual(Class().inner(), 'spam')
330-
self.assertEqual(Class().outer(), 'eggs')
331-
332-
# TODO: RUSTPYTHON
333-
@unittest.expectedFailure
294+
@unittest.expectedFailure # TODO: RUSTPYTHON
334295
def test_bound_function_inside_classmethod(self):
335296
class A:
336297
def foo(self, cls):
@@ -341,91 +302,6 @@ class B:
341302

342303
self.assertEqual(B.bar(), 'spam')
343304

344-
def test_wrapped_classmethod_inside_classmethod(self):
345-
class MyClassMethod1:
346-
def __init__(self, func):
347-
self.func = func
348-
349-
def __call__(self, cls):
350-
if hasattr(self.func, '__get__'):
351-
return self.func.__get__(cls, cls)()
352-
return self.func(cls)
353-
354-
def __get__(self, instance, owner=None):
355-
if owner is None:
356-
owner = type(instance)
357-
return MethodType(self, owner)
358-
359-
class MyClassMethod2:
360-
def __init__(self, func):
361-
if isinstance(func, classmethod):
362-
func = func.__func__
363-
self.func = func
364-
365-
def __call__(self, cls):
366-
return self.func(cls)
367-
368-
def __get__(self, instance, owner=None):
369-
if owner is None:
370-
owner = type(instance)
371-
return MethodType(self, owner)
372-
373-
for myclassmethod in [MyClassMethod1, MyClassMethod2]:
374-
class A:
375-
@myclassmethod
376-
def f1(cls):
377-
return cls
378-
379-
@classmethod
380-
@myclassmethod
381-
def f2(cls):
382-
return cls
383-
384-
@myclassmethod
385-
@classmethod
386-
def f3(cls):
387-
return cls
388-
389-
@classmethod
390-
@classmethod
391-
def f4(cls):
392-
return cls
393-
394-
@myclassmethod
395-
@MyClassMethod1
396-
def f5(cls):
397-
return cls
398-
399-
@myclassmethod
400-
@MyClassMethod2
401-
def f6(cls):
402-
return cls
403-
404-
self.assertIs(A.f1(), A)
405-
self.assertIs(A.f2(), A)
406-
self.assertIs(A.f3(), A)
407-
self.assertIs(A.f4(), A)
408-
self.assertIs(A.f5(), A)
409-
self.assertIs(A.f6(), A)
410-
a = A()
411-
self.assertIs(a.f1(), A)
412-
self.assertIs(a.f2(), A)
413-
self.assertIs(a.f3(), A)
414-
self.assertIs(a.f4(), A)
415-
self.assertIs(a.f5(), A)
416-
self.assertIs(a.f6(), A)
417-
418-
def f(cls):
419-
return cls
420-
421-
self.assertIs(myclassmethod(f).__get__(a)(), A)
422-
self.assertIs(myclassmethod(f).__get__(a, A)(), A)
423-
self.assertIs(myclassmethod(f).__get__(A, A)(), A)
424-
self.assertIs(myclassmethod(f).__get__(A)(), type(A))
425-
self.assertIs(classmethod(f).__get__(a)(), A)
426-
self.assertIs(classmethod(f).__get__(a, A)(), A)
427-
self.assertIs(classmethod(f).__get__(A, A)(), A)
428-
self.assertIs(classmethod(f).__get__(A)(), type(A))
429305

430306
class TestClassDecorators(unittest.TestCase):
431307

0 commit comments

Comments
 (0)