From b4dd9bb5c3d55467048fdbe287a579f443353de9 Mon Sep 17 00:00:00 2001 From: Stefan Behnel Date: Wed, 29 Dec 2010 23:53:29 +0100 Subject: [PATCH] enable extended test case for ticket #593 --- tests/bugs.txt | 1 - tests/run/decorators_T593.pyx | 41 +++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/tests/bugs.txt b/tests/bugs.txt index c97798ef..5f0b8715 100644 --- a/tests/bugs.txt +++ b/tests/bugs.txt @@ -18,7 +18,6 @@ ipow_crash_T562 pure_mode_cmethod_inheritance_T583 genexpr_iterable_lookup_T600 for_from_pyvar_loop_T601 -decorators_T593 # CPython regression tests that don't current work: pyregr.test_threadsignals diff --git a/tests/run/decorators_T593.pyx b/tests/run/decorators_T593.pyx index 39edde60..71737d01 100644 --- a/tests/run/decorators_T593.pyx +++ b/tests/run/decorators_T593.pyx @@ -24,6 +24,47 @@ def testclass(klass): class Foo: pass +def class_in_closure(x): + """ + >>> C1, c0 = class_in_closure(5) + >>> C1().smeth1() + (5, ()) + >>> C1.smeth1(1,2) + (5, (1, 2)) + >>> C1.smeth1() + (5, ()) + >>> c0.smeth0() + 1 + >>> c0.__class__.smeth0() + 1 + """ + class ClosureClass1(object): + @staticmethod + def smeth1(*args): + return x, args + + class ClosureClass0(object): + @staticmethod + def smeth0(): + return 1 + + return ClosureClass1, ClosureClass0() + +def class_not_in_closure(): + """ + >>> c = class_not_in_closure() + >>> c.smeth0() + 1 + >>> c.__class__.smeth0() + 1 + """ + class ClosureClass0(object): + @staticmethod + def smeth0(): + return 1 + + return ClosureClass0() + class ODict(dict): def __init__(self): dict.__init__(self) -- 2.26.2