106 lines
3.2 KiB
Python
106 lines
3.2 KiB
Python
import pytest
|
|
|
|
def test_simple_unittest(testdir):
|
|
testpath = testdir.makepyfile("""
|
|
import unittest
|
|
pytest_plugins = "pytest_unittest"
|
|
class MyTestCase(unittest.TestCase):
|
|
def testpassing(self):
|
|
self.assertEquals('foo', 'foo')
|
|
def test_failing(self):
|
|
self.assertEquals('foo', 'bar')
|
|
""")
|
|
reprec = testdir.inline_run(testpath)
|
|
assert reprec.matchreport("testpassing").passed
|
|
assert reprec.matchreport("test_failing").failed
|
|
|
|
def test_isclasscheck_issue53(testdir):
|
|
testpath = testdir.makepyfile("""
|
|
import unittest
|
|
class _E(object):
|
|
def __getattr__(self, tag):
|
|
pass
|
|
E = _E()
|
|
""")
|
|
result = testdir.runpytest(testpath)
|
|
assert result.ret == 0
|
|
|
|
def test_setup(testdir):
|
|
testpath = testdir.makepyfile(test_two="""
|
|
import unittest
|
|
class MyTestCase(unittest.TestCase):
|
|
def setUp(self):
|
|
self.foo = 1
|
|
def test_setUp(self):
|
|
self.assertEquals(1, self.foo)
|
|
""")
|
|
reprec = testdir.inline_run(testpath)
|
|
rep = reprec.matchreport("test_setUp")
|
|
assert rep.passed
|
|
|
|
def test_new_instances(testdir):
|
|
testpath = testdir.makepyfile("""
|
|
import unittest
|
|
class MyTestCase(unittest.TestCase):
|
|
def test_func1(self):
|
|
self.x = 2
|
|
def test_func2(self):
|
|
assert not hasattr(self, 'x')
|
|
""")
|
|
reprec = testdir.inline_run(testpath)
|
|
reprec.assertoutcome(passed=2)
|
|
|
|
def test_teardown(testdir):
|
|
testpath = testdir.makepyfile("""
|
|
import unittest
|
|
pytest_plugins = "pytest_unittest" # XXX
|
|
class MyTestCase(unittest.TestCase):
|
|
l = []
|
|
def test_one(self):
|
|
pass
|
|
def tearDown(self):
|
|
self.l.append(None)
|
|
class Second(unittest.TestCase):
|
|
def test_check(self):
|
|
self.assertEquals(MyTestCase.l, [None])
|
|
""")
|
|
reprec = testdir.inline_run(testpath)
|
|
passed, skipped, failed = reprec.countoutcomes()
|
|
assert failed == 0, failed
|
|
assert passed == 2
|
|
assert passed + skipped + failed == 2
|
|
|
|
def test_module_level_pytestmark(testdir):
|
|
testpath = testdir.makepyfile("""
|
|
import unittest
|
|
import pytest
|
|
pytestmark = pytest.mark.xfail
|
|
class MyTestCase(unittest.TestCase):
|
|
def test_func1(self):
|
|
assert 0
|
|
""")
|
|
reprec = testdir.inline_run(testpath, "-s")
|
|
reprec.assertoutcome(skipped=1)
|
|
|
|
def test_class_setup(testdir):
|
|
testpath = testdir.makepyfile("""
|
|
import unittest
|
|
import pytest
|
|
class MyTestCase(unittest.TestCase):
|
|
x = 0
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.x += 1
|
|
def test_func1(self):
|
|
assert self.x == 1
|
|
def test_func2(self):
|
|
assert self.x == 1
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
cls.x -= 1
|
|
def test_teareddown():
|
|
assert MyTestCase.x == 0
|
|
""")
|
|
reprec = testdir.inline_run(testpath)
|
|
reprec.assertoutcome(passed=3)
|