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