Hello fellow python hackers,
I'm not an expert when it comes to Python and I'm totally stuck in a
situation. All of our unit tests are written using built-in 'unittest'
module. We've a requirement where we want to run a method only once
for our unit tests. Some background: all of our tests are sub-classes
of unittest.TestCase module just like following (copy pasting from
idle)
class Calculator(unittest.TestCase):
def setUp(self): pass
def tearDown(self): pass
def test_add(self):
print 'adder'
print '---------------'
def test_multiply(self):
print 'multiplier'
print '---------------'
def test_divide(self):
print '==========='
print 'Divide test'
print '==========='
Our requirement is that for every unit test class we want to run a
method only once. Method setUp() won't help because it will be called
before every test method. I've tried using the following
def __init__(self):
unittest.TestCase.__init__(self)
but it throws the following error
E:\PyPy\Practice>python runner.py
Traceback (most recent call last):
suite = unittest.defaultTestLoader.loadTestsFromNames
(['Tests.Calculator.Te
stCase'])
File "C:\Python25\lib\unittest.py", line 565, in loadTestsFromNames
suites = [self.loadTestsFromName(name, module) for name in names]
File "C:\Python25\lib\unittest.py", line 547, in loadTestsFromName
return self.loadTestsFromTestCase(obj)
File "C:\Python25\lib\unittest.py", line 507, in
loadTestsFromTestCase
return self.suiteClass(map(testCaseClass, testCaseNames))
TypeError: __init__() takes exactly 1 argument (2 given)
So I'm completely stumped as to how to create a method that will only
be called only once for Calculator class. Can you please suggest any
ideas? Any help will be highly appreciated. Thanks in advance.
--
http://mail.python.org/mailman/listinfo/python-list