fix issue15 - tests for python3/nose-1.0 combo work now

This commit is contained in:
holger krekel 2011-01-11 17:27:34 +01:00
parent 170c78cef9
commit 1b3fb3d229
5 changed files with 26 additions and 20 deletions

View File

@ -1,6 +1,8 @@
Changes between 2.0.0 and 2.0.1.devX Changes between 2.0.0 and 2.0.1.devX
---------------------------------------------- ----------------------------------------------
- fix issue15: make nose compatibility tests compatible
with python3 (now that nose-1.0 supports python3)
- remove somewhat surprising "same-conftest" detection because - remove somewhat surprising "same-conftest" detection because
it ignores conftest.py when they appear in several subdirs. it ignores conftest.py when they appear in several subdirs.
- improve assertions ("not in"), thanks Floris - improve assertions ("not in"), thanks Floris

View File

@ -1,7 +1,7 @@
""" """
unit and functional testing with Python. unit and functional testing with Python.
""" """
__version__ = '2.0.1.dev5' __version__ = '2.0.1.dev6'
__all__ = ['main'] __all__ = ['main']
from _pytest.core import main, UsageError, _preloadplugins from _pytest.core import main, UsageError, _preloadplugins

View File

@ -22,7 +22,7 @@ def main():
name='pytest', name='pytest',
description='py.test: simple powerful testing with Python', description='py.test: simple powerful testing with Python',
long_description = long_description, long_description = long_description,
version='2.0.1.dev5', version='2.0.1.dev6',
url='http://pytest.org', url='http://pytest.org',
license='MIT license', license='MIT license',
platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],

View File

@ -6,7 +6,9 @@ def setup_module(mod):
def test_nose_setup(testdir): def test_nose_setup(testdir):
p = testdir.makepyfile(""" p = testdir.makepyfile("""
l = [] l = []
from nose.tools import with_setup
@with_setup(lambda: l.append(1), lambda: l.append(2))
def test_hello(): def test_hello():
assert l == [1] assert l == [1]
@ -24,6 +26,8 @@ def test_nose_setup(testdir):
def test_nose_setup_func(testdir): def test_nose_setup_func(testdir):
p = testdir.makepyfile(""" p = testdir.makepyfile("""
from nose.tools import with_setup
l = [] l = []
def my_setup(): def my_setup():
@ -34,16 +38,15 @@ def test_nose_setup_func(testdir):
b = 2 b = 2
l.append(b) l.append(b)
@with_setup(my_setup, my_teardown)
def test_hello(): def test_hello():
print l print (l)
assert l == [1] assert l == [1]
def test_world(): def test_world():
print l print (l)
assert l == [1,2] assert l == [1,2]
test_hello.setup = my_setup
test_hello.teardown = my_teardown
""") """)
result = testdir.runpytest(p, '-p', 'nose') result = testdir.runpytest(p, '-p', 'nose')
result.stdout.fnmatch_lines([ result.stdout.fnmatch_lines([
@ -53,25 +56,25 @@ def test_nose_setup_func(testdir):
def test_nose_setup_func_failure(testdir): def test_nose_setup_func_failure(testdir):
p = testdir.makepyfile(""" p = testdir.makepyfile("""
l = [] from nose.tools import with_setup
l = []
my_setup = lambda x: 1 my_setup = lambda x: 1
my_teardown = lambda x: 2 my_teardown = lambda x: 2
@with_setup(my_setup, my_teardown)
def test_hello(): def test_hello():
print l print (l)
assert l == [1] assert l == [1]
def test_world(): def test_world():
print l print (l)
assert l == [1,2] assert l == [1,2]
test_hello.setup = my_setup
test_hello.teardown = my_teardown
""") """)
result = testdir.runpytest(p, '-p', 'nose') result = testdir.runpytest(p, '-p', 'nose')
result.stdout.fnmatch_lines([ result.stdout.fnmatch_lines([
"*TypeError: <lambda>() takes exactly 1 argument (0 given)*" "*TypeError: <lambda>() takes exactly 1*0 given*"
]) ])
@ -83,11 +86,11 @@ def test_nose_setup_func_failure_2(testdir):
my_teardown = 2 my_teardown = 2
def test_hello(): def test_hello():
print l print (l)
assert l == [1] assert l == [1]
def test_world(): def test_world():
print l print (l)
assert l == [1,2] assert l == [1,2]
test_hello.setup = my_setup test_hello.setup = my_setup
@ -118,11 +121,11 @@ def test_nose_setup_partial(testdir):
my_teardown_partial = partial(my_teardown, 2) my_teardown_partial = partial(my_teardown, 2)
def test_hello(): def test_hello():
print l print (l)
assert l == [1] assert l == [1]
def test_world(): def test_world():
print l print (l)
assert l == [1,2] assert l == [1,2]
test_hello.setup = my_setup_partial test_hello.setup = my_setup_partial
@ -173,21 +176,21 @@ def test_nose_test_generator_fixtures(testdir):
class TestClass(object): class TestClass(object):
def setup(self): def setup(self):
print "setup called in", self print ("setup called in %s" % self)
self.called = ['setup'] self.called = ['setup']
def teardown(self): def teardown(self):
print "teardown called in", self print ("teardown called in %s" % self)
eq_(self.called, ['setup']) eq_(self.called, ['setup'])
self.called.append('teardown') self.called.append('teardown')
def test(self): def test(self):
print "test called in", self print ("test called in %s" % self)
for i in range(0, 5): for i in range(0, 5):
yield self.check, i yield self.check, i
def check(self, i): def check(self, i):
print "check called in", self print ("check called in %s" % self)
expect = ['setup'] expect = ['setup']
#for x in range(0, i): #for x in range(0, i):
# expect.append('setup') # expect.append('setup')

View File

@ -49,6 +49,7 @@ commands=
[testenv:py31] [testenv:py31]
deps=py>=1.4.0 deps=py>=1.4.0
nose>=1.0
[testenv:py31-xdist] [testenv:py31-xdist]
deps=pytest-xdist deps=pytest-xdist