I want to run several unittests on a class with some class level variables. The class level variables are not reset back to pre-run values as the unittest code keeps a reference to the class. Other than resetting all class level variables in an init method in the class under test how can I get a new class for each unittest method?
class NonEmptyClassTest(unittest.TestCase):
def test_makeName(self):
nec = NonEmptyClass()
nec.addName("Fred")
nec.printAllData()
self.assertEquals(1 , len(nec.dummy_data))
def test_makeName_1(self):
nec = NonEmptyClass()
nec.addName("Fred")
nec.printAllData()
self.assertEquals(1 , len(nec.dummy_data))
class NonEmptyClass(object):
dummy_data = {}
def printAllData(self):
for k,v in self.dummy_data.items():
print k, v
def addName(self, name):
if not name in self.dummy_data:
self.dummy_data[name] = name+"_value"
else:
name = name + ".1"
self.dummy_data[name] = name+"_value"