54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
from __future__ import generators
|
|
import py
|
|
from py.__.test.compat import TestCase
|
|
from py.__.test.outcome import Failed
|
|
|
|
class TestCompatTestCaseSetupSemantics(TestCase):
|
|
globlist = []
|
|
|
|
def setUp(self):
|
|
self.__dict__.setdefault('l', []).append(42)
|
|
self.globlist.append(self)
|
|
|
|
def tearDown(self):
|
|
self.l.pop()
|
|
|
|
def test_issetup(self):
|
|
l = self.l
|
|
assert len(l) == 1
|
|
assert l[-1] == 42
|
|
#self.checkmultipleinstances()
|
|
|
|
def test_issetup2(self):
|
|
l = self.l
|
|
assert len(l) == 1
|
|
assert l[-1] == 42
|
|
#self.checkmultipleinstances()
|
|
|
|
#def checkmultipleinstances(self):
|
|
# for x,y in zip(self.globlist, self.globlist[1:]):
|
|
# assert x is not y
|
|
|
|
class TestCompatAssertions(TestCase):
|
|
nameparamdef = {
|
|
'failUnlessEqual,assertEqual,assertEquals': ('1, 1', '1, 0'),
|
|
'assertNotEquals,failIfEqual': ('0, 1', '0,0'),
|
|
'failUnless,assert_': ('1', 'None'),
|
|
'failIf': ('0', '1'),
|
|
}
|
|
|
|
sourcelist = []
|
|
for names, (paramok, paramfail) in nameparamdef.items():
|
|
for name in names.split(','):
|
|
source = """
|
|
def test_%(name)s(self):
|
|
self.%(name)s(%(paramok)s)
|
|
#self.%(name)s(%(paramfail)s)
|
|
|
|
def test_%(name)s_failing(self):
|
|
self.assertRaises(Failed,
|
|
self.%(name)s, %(paramfail)s)
|
|
""" % locals()
|
|
co = py.code.Source(source).compile()
|
|
exec co
|