/usr/lib/python2.7/dist-packages/nose2/tests/unit/test_testclass_loader.py is in python-nose2 0.5.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | from nose2.tests._common import TestCase
from nose2.plugins.loader.testclasses import TestClassLoader
from nose2 import events, loader, session
class TestTestClassLoader(TestCase):
def setUp(self):
self.session = session.Session()
self.loader = loader.PluggableTestLoader(session=self.session)
self.plugin = TestClassLoader(session=self.session)
class Mod(object):
pass
self.module = Mod()
class TestA(object):
def test(self):
pass
class TestB(object):
def runTest(self):
pass
class TestC(object):
def foo(self):
pass
class Test(TestCase):
def test(self):
pass
self.module.TestA = TestA
self.module.TestB = TestB
self.module.TestC = TestC
self.module.Test = Test
def test_can_find_testclasses_in_module(self):
event = events.LoadFromModuleEvent(self.loader, self.module)
result = self.session.hooks.loadTestsFromModule(event)
self.assertEqual(result, None)
self.assertEqual(len(event.extraTests), 3)
self.assertEqual(len(event.extraTests[0]._tests), 1) # TestA
self.assertEqual(len(event.extraTests[1]._tests), 0) # TestB
self.assertEqual(len(event.extraTests[2]._tests), 0) # TestC
def test_get_testmethod_names_can_override_name_selection(self):
class FooIsOnlyTest(events.Plugin):
def getTestMethodNames(self, event):
event.handled = True
return ['foo'] if 'foo' in dir(event.testCase) else []
foo = FooIsOnlyTest(session=self.session)
foo.register()
event = events.LoadFromModuleEvent(self.loader, self.module)
result = self.session.hooks.loadTestsFromModule(event)
self.assertEqual(result, None)
self.assertEqual(len(event.extraTests), 3)
self.assertEqual(len(event.extraTests[0]._tests), 0) # TestA
self.assertEqual(len(event.extraTests[1]._tests), 0) # TestB
self.assertEqual(len(event.extraTests[2]._tests), 1) # TestC
def test_plugins_can_exclude_test_names(self):
class Excluder(events.Plugin):
def getTestMethodNames(self, event):
event.excludedNames.append('test')
excl = Excluder(session=self.session)
excl.register()
event = events.LoadFromModuleEvent(self.loader, self.module)
result = self.session.hooks.loadTestsFromModule(event)
self.assertEqual(result, None)
self.assertEqual(len(event.extraTests), 3)
self.assertEqual(len(event.extraTests[0]._tests), 0) # TestA
self.assertEqual(len(event.extraTests[1]._tests), 0) # TestB
self.assertEqual(len(event.extraTests[2]._tests), 0) # TestC
class TestFailingTestClassLoader(TestCase):
def setUp(self):
self.session = session.Session()
self.loader = loader.PluggableTestLoader(session=self.session)
self.plugin = TestClassLoader(session=self.session)
class Mod(object):
pass
self.module = Mod()
class TestA(object):
def __init__(self):
raise RuntimeError('Something bad happened!')
def test(self):
pass
self.module.TestA = TestA
def test_can_find_testclasses_in_module(self):
event = events.LoadFromModuleEvent(self.loader, self.module)
result = self.session.hooks.loadTestsFromModule(event)
self.assertEqual(result, None)
self.assertEqual(len(event.extraTests), 1)
self.assertEqual(len(event.extraTests[0]._tests), 1) # TestA
self.assertEqual(event.extraTests[0]._tests[0].__class__.__name__, 'LoadTestsFailure')
|