Hi,
I am trying to do a simple test in Python using unittest, to see if a class throws an exception if it gets an unsuitable input for the constructor. The class looks like this:
class SummaryFormula:
def __init__( self, summaryFormula):
self.atoms = {}
for atom in re.finditer( "([A-Z][a-z]{0,2})(\d*)", summaryFormula):
symbol = atom.group(1)
count = atom.group(2)
if pocet != "":
self.atoms[ symbol] = int(count)
else:
self.atoms[ symbol] = 1
My test is following:
class ConstructorTestCase(unittest.TestCase):
def testEmptyString(self):
self.assertRaises(TypeError, ukol1.SummaryFormula(), "testtest")
if __name__ == '__main__':
unittest.main()
All I want is the test to fail, meaning that the exception of unsuitable input for constructor is not handled.
Instead, I get an error: __init__() takes exactly 2 arguments (1 given)
.
What am I missing? What is the second argument I should specify?
Also, what type of Error should I use to handle exception that an input not matchable by my regexp was passed to the constructor?
Thank you, Tomas