mirror of
https://github.com/python/cpython.git
synced 2025-07-29 14:15:07 +00:00
Add a simple test of the METH_CLASS and METH_STATIC flags for type methods.
This commit is contained in:
parent
4157ffbb96
commit
f841aa6fc0
2 changed files with 58 additions and 0 deletions
|
@ -1214,6 +1214,20 @@ def classmethods():
|
|||
vereq(ff.__get__(0, int)(42), (int, 42))
|
||||
vereq(ff.__get__(0)(42), (int, 42))
|
||||
|
||||
def classmethods_in_c():
|
||||
if verbose: print "Testing C-based class methods..."
|
||||
import xxsubtype as spam
|
||||
a = (1, 2, 3)
|
||||
d = {'abc': 123}
|
||||
x, a1, d1 = spam.spamlist.classmeth(*a, **d)
|
||||
veris(x, None)
|
||||
vereq((spam.spamlist,) + a, a1)
|
||||
vereq(d, d1)
|
||||
x, a1, d1 = spam.spamlist().classmeth(*a, **d)
|
||||
veris(x, None)
|
||||
vereq((spam.spamlist,) + a, a1)
|
||||
vereq(d, d1)
|
||||
|
||||
def staticmethods():
|
||||
if verbose: print "Testing static methods..."
|
||||
class C(object):
|
||||
|
@ -1231,6 +1245,20 @@ def staticmethods():
|
|||
vereq(d.foo(1), (d, 1))
|
||||
vereq(D.foo(d, 1), (d, 1))
|
||||
|
||||
def staticmethods_in_c():
|
||||
if verbose: print "Testing C-based static methods..."
|
||||
import xxsubtype as spam
|
||||
a = (1, 2, 3)
|
||||
d = {"abc": 123}
|
||||
x, a1, d1 = spam.spamlist.staticmeth(*a, **d)
|
||||
veris(x, None)
|
||||
vereq(a, a1)
|
||||
vereq(d, d1)
|
||||
x, a1, d2 = spam.spamlist().staticmeth(*a, **d)
|
||||
veris(x, None)
|
||||
vereq(a, a1)
|
||||
vereq(d, d1)
|
||||
|
||||
def classic():
|
||||
if verbose: print "Testing classic classes..."
|
||||
class C:
|
||||
|
@ -2884,7 +2912,9 @@ def test_main():
|
|||
dynamics()
|
||||
errors()
|
||||
classmethods()
|
||||
classmethods_in_c()
|
||||
staticmethods()
|
||||
staticmethods_in_c()
|
||||
classic()
|
||||
compattr()
|
||||
newslot()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue