class TestIntValidator(unittest.TestCase): """ TestCase for checking the int validator """ def setUp(self): """ setUp function, resets nb_objects and creates a rectangle """ Base.nbreset() self.rect = Rectangle(2, 2, 2, 2) def testStdUsage(self): """ standard usage """ self.rect.width = 4 self.assertEqual(self.rect.width, 4) def testNegID(self): """ negative as ID """ self.rect.id = -5 self.assertEqual(self.rect.id, -5) def testValidateType(self): """ tries to validate a float """ with self.assertRaises(TypeError): self.rect.int_validator("x", 3.719) def testValidateTypeWidth(self): """ tries to validate a string as width """ with self.assertRaises(TypeError): self.rect.width = "seven" def testValidateTypeHeight(self): """ tries to validate a list as height """ with self.assertRaises(TypeError): self.rect.height = [1, 2, 3] def testValidateTypeX(self): """ tries to validate a dict as x """ with self.assertRaises(TypeError): self.rect.x = {'key': 'value'} def testValidateTypeY(self): """ tries to validate a single character as y """ with self.assertRaises(TypeError): self.rect.y = 'c' def testValidateNegWidth(self): """ tries a negative as width """ with self.assertRaises(ValueError): self.rect.width = -50 def testValidateNegHeight(self): """ negative height """ with self.assertRaises(ValueError): self.rect.height = -5 def testValidateZeroWidth(self): """ 0 as width """ with self.assertRaises(ValueError): self.rect.width = 0 def testValidateZeroHeight(self): """ 0 as height """ with self.assertRaises(ValueError): self.rect.height = 0 def testValidateZeroX(self): """ 0 as x """ self.rect.x = 0 self.assertEqual(self.rect.x, 0) def testValidateNegX(self): """ negative as x """ with self.assertRaises(ValueError): self.rect.x = -15 def testValidateZeroY(self): """ 0 as y """ self.rect.y = 0 self.assertEqual(self.rect.y, 0) def testValidateNegY(self): """ negative as y """ with self.assertRaises(ValueError): self.rect.y = -1