def test_Type(self): """ Errors """ with self.assertRaises(TypeError) as e: msg = "width must be an integer" s1 = s('t') with self.assertRaises(TypeError) as e: msg = "x must be an integer" s2 = s(10, 't') with self.assertRaises(TypeError) as e: msg = "y must be an integer" s3 = s(10, 2, 'u') with self.assertRaises(TypeError) as e: msg = '__init__() takes from 2 to 5 positional arguments\ but 6 were given' s4 = s(10, 2, 6, 2, 3) with self.assertRaises(TypeError) as e: msg = "__init__() missing 1 required positional argument: 'size'" s5 = s() self.assertAlmostEqual(msg, str(e.exception))
def test_area(self): """Test Area""" s1 = s(1, 1, 1) s2 = s(4, 2, 3) s3 = s(56, 5, 7) self.assertEqual(s1.area(), 1) self.assertEqual(s2.area(), 16) self.assertEqual(s3.area(), 3136)
def test_Area(self): """ test area """ s1 = s(6) self.assertAlmostEqual(s1.area(), 36) s2 = s(2, 3) self.assertAlmostEqual(s2.area(), 4) s3 = s(3, 6, 5) self.assertAlmostEqual(s3.area(), 9)
def test_dict(self): """ test """ s1 = s(10, 2, 1) s1_d = s1.to_dictionary() m = "{'id': 1, 'x': 2, 'size': 10, 'y': 1} " self.assertAlmostEqual(len(str(s1_d)), len(m)) self.assertAlmostEqual(str(type(s1_d)), "<class 'dict'>") s2 = s(1, 1) s2.update(**s1_d) self.assertFalse(s1 == s2) self.assertEqual(print(s1), print(s2))
def test_Display(self): """ test display """ s1 = s(6) m = '######\n######\n######\n######\n######\n######\n' self.assertAlmostEqual(s1.display(), print(m)) s2 = s(2, 3) m = ' ##\n ##\n' self.assertAlmostEqual(s2.display(), print(m)) s3 = s(3, 6, 5) m = '\n\n\n\n\n ###\n ###\n ###\n' self.assertAlmostEqual(s3.display(), print(m))
def test_Str(self): """ str """ s1 = s(5) m = '[Square] (1) 0/0 - 5' self.assertAlmostEqual(print(s1), print(m)) s2 = s(2, 2) m = '[Square] (2) 2/0 - 2' self.assertAlmostEqual(print(s2), print(m)) s3 = s(3, 1, 3) m = '[Square] (3) 1/3 - 3' self.assertAlmostEqual(print(s3), print(m))
def test_presence(self): """Test Presence""" s_list = dir(s) self.assertIn("_Base__nb_objects", s_list) self.assertIn("__init__", s_list) self.assertIn("to_json_string", s_list) self.assertIn("save_to_file", s_list) self.assertIn("from_json_string", s_list) self.assertIn("create", s_list) self.assertIn("load_from_file", s_list) self.assertIn("width", s_list) self.assertIn("height", s_list) self.assertIn("x", s_list) self.assertIn("y", s_list) self.assertIn("size", s_list) self.assertIn("area", s_list) self.assertIn("display", s_list) self.assertIn("__str__", s_list) self.assertIn("update", s_list) self.assertIn("to_dictionary", s_list) s1_list = dir(s(1)) self.assertIn("_Rectangle__width", s1_list) self.assertIn("_Rectangle__height", s1_list) self.assertIn("_Rectangle__x", s1_list) self.assertIn("_Rectangle__y", s1_list) self.assertIn("id", s1_list)
def test_Value(self): """ Error """ with self.assertRaises(ValueError) as e: msg = 'width must be > 0' s1 = s(-12) with self.assertRaises(ValueError) as e: msg = 'y must be >= 0' s1 = s(10, 2, -6) with self.assertRaises(ValueError) as e: msg = 'x must be >= 0' s1 = s(12, -10, 6) self.assertAlmostEqual(msg, str(e.exception))
def test_Update(self): """ update """ s1 = s(5) m = '[Square] (1) 0/0 - 5' self.assertAlmostEqual(print(s1), print(m)) s1.update(10) m = '[Square] (10) 0/0 - 5' self.assertAlmostEqual(print(s1), print(m)) s1.update(1, 2) m = '[Square] (1) 0/0 - 2' self.assertAlmostEqual(print(s1), print(m)) s1.update(1, 2, 3) m = "[Square] (1) 3/0 - 2" self.assertAlmostEqual(print(s1), print(m)) s1.update(1, 2, 3, 4) m = "[Square] (1) 3/4 - 2" self.assertAlmostEqual(print(s1), print(m)) s1.update(x=12) m = "[Square] (1) 12/4 - 2" self.assertAlmostEqual(print(s1), print(m)) s1.update(size=7, y=1) m = "[Square] (1) 12/1 - 7" self.assertAlmostEqual(print(s1), print(m)) s1.update(size=7, id=89, y=1) m = "[Square] (89) 12/1 - 7" self.assertAlmostEqual(print(s1), print(m))
def test_to_dictionary(self): """Test To Dictionary""" s1 = s(1, 1) s2 = s(1, 2, 5) s3 = s(2, 1) s4 = s(2, 1, id="HAHAHAHA") s5 = s(2, 2, 0, 1) s6 = s(2, 2, 2, 2) s7 = s(3, 3, 3, "MUHAHAHA") d1 = {'id': 1, 'size': 1, 'x': 1, 'y': 0} d2 = {'id': 2, 'size': 1, 'x': 2, 'y': 5} d3 = {'id': 3, 'size': 2, 'x': 1, 'y': 0} d4 = {'id': 'HAHAHAHA', 'size': 2, 'x': 1, 'y': 0} d5 = {'id': 1, 'size': 2, 'x': 2, 'y': 0} d6 = {'id': 2, 'size': 2, 'x': 2, 'y': 2} d7 = {'id': 'MUHAHAHA', 'size': 3, 'x': 3, 'y': 3} self.assertDictEqual(s1.to_dictionary(), d1) self.assertDictEqual(s2.to_dictionary(), d2) self.assertDictEqual(s3.to_dictionary(), d3) self.assertDictEqual(s4.to_dictionary(), d4) self.assertDictEqual(s5.to_dictionary(), d5) self.assertDictEqual(s6.to_dictionary(), d6) self.assertDictEqual(s7.to_dictionary(), d7) s6.update(**{'id': "WUT", "x": 999, "size": 23}) d6 = {'id': 'WUT', 'size': 23, 'x': 999, 'y': 2} self.assertDictEqual(s6.to_dictionary(), d6)
def test_str(self): """Test Str""" s1 = s(1) s2 = s(2, 5) s3 = s(2, 1) s4 = s(2, 1, id="HAHAHAHA") s5 = s(2, 0, 1) s6 = s(2, 2, 2) s7 = s(3, 3, 3, "MUHAHAHA") god_list = ['[Square] (1) 0/0 - 1\n', '[Square] (2) 5/0 - 2\n', '[Square] (3) 1/0 - 2\n', '[Square] (HAHAHAHA) 1/0 - 2\n', '[Square] (4) 0/1 - 2\n', '[Square] (5) 2/2 - 2\n', '[Square] (MUHAHAHA) 3/3 - 3\n'] obj_list = [s1, s2, s3, s4, s5, s6, s7] out_list = [] for obj in obj_list: capture = io.StringIO() sys.stdout = capture print(obj) sys.stdout = sys.__stdout__ out_list.append(capture.getvalue()) self.assertListEqual(god_list, out_list)
def test_display(self): """Test Display""" s1 = s(1) s2 = s(2) s3 = s(3) s4 = s(2, 2, 1) s5 = s(2, 0, 1) s6 = s(2, 2, 2) s7 = s(3, 3, 3) god_list = ['#\n', '##\n##\n', '###\n###\n###\n', '\n ##\n ##\n', '\n##\n##\n', '\n\n ##\n ##\n', '\n\n\n ###\n ###\n ###\n'] obj_list = [s1, s2, s3, s4, s5, s6, s7] out_list = [] for obj in obj_list: capture = io.StringIO() sys.stdout = capture obj.display() sys.stdout = sys.__stdout__ out_list.append(capture.getvalue()) self.assertListEqual(god_list, out_list)
def test_Size(self): """ test """ s1 = s(5) m = '[Square] (1) 0/0 - 5' self.assertAlmostEqual(print(s1), print(m)) self.assertAlmostEqual(s1.size, 5) s1.size = 10 m = '[Square] (1) 0/0 - 10' self.assertAlmostEqual(print(s1), print(m)) self.assertAlmostEqual(s1.size, 10)
def test_Init(self): """ test value """ self.assertTrue(issubclass(s, r)) s1 = s(6) self.assertAlmostEqual(s1.x, 0) self.assertAlmostEqual(s1.y, 0) self.assertAlmostEqual(s1.width, 6) self.assertAlmostEqual(s1.height, 6) s2 = s(2, 3) self.assertAlmostEqual(s2.y, 0) self.assertAlmostEqual(s2.x, 3) self.assertAlmostEqual(s2.width, 2) self.assertAlmostEqual(s2.height, 2) s3 = s(3, 6, 5, 12) self.assertAlmostEqual(s3.id, 12) self.assertAlmostEqual(s3.x, 6) self.assertAlmostEqual(s3.y, 5) self.assertAlmostEqual(s3.width, 3) self.assertAlmostEqual(s3.height, 3)
def test_update(self): """Test Update""" s1 = s(1) s2 = s(2, 5) s3 = s(2, 1) s4 = s(2, 1, id="HAHAHAHA") s5 = s(2, 0, 1) s6 = s(2, 2, 2) s7 = s(3, 3, 3, "MUHAHAHA") s1.update(34, 64, 12, 64) with self.assertRaises(ValueError): s2.update(**{'id': 234, 'y': -5}) s3.update(None, 20, 590) s4.update(**{'id': 234, 'height': 64}) with self.assertRaises(TypeError): s5.update(98, {'width': 236, 'y': 98}) with self.assertRaises(TypeError): s6.update("JJJJ", 'L') s7.update() god_list = ['[Square] (34) 12/64 - 64\n', '[Square] (234) 5/0 - 2\n', '[Square] (6) 590/0 - 20\n', '[Square] (234) 1/0 - 2\n', '[Square] (98) 0/1 - 2\n', '[Square] (JJJJ) 2/2 - 2\n', '[Square] (MUHAHAHA) 3/3 - 3\n'] obj_list = [s1, s2, s3, s4, s5, s6, s7] out_list = [] for obj in obj_list: capture = io.StringIO() sys.stdout = capture print(obj) sys.stdout = sys.__stdout__ out_list.append(capture.getvalue()) self.assertListEqual(god_list, out_list)
def test_instance(self): """Test Instance""" s1 = s(1, 1) self.assertEqual(b._Base__nb_objects, 1) with self.assertRaises(ValueError): s(-1, 1, 1) with self.assertRaises(ValueError): s(0, 1, 1) with self.assertRaises(TypeError): s("A", 1, 1) with self.assertRaises(TypeError): s(1.1, 1, 1) with self.assertRaises(TypeError): s(None, 1, 1) with self.assertRaises(TypeError): s(True, 1, 1) with self.assertRaises(TypeError): s(False, 1, 1) self.assertEqual(b._Base__nb_objects, 1) with self.assertRaises(ValueError): s(1, -1, 1) with self.assertRaises(TypeError): s(1, "A", 1) with self.assertRaises(TypeError): s(1, 1.1, 1) with self.assertRaises(TypeError): s(1, None, 1) with self.assertRaises(TypeError): s(1, True, 1) with self.assertRaises(TypeError): s(1, False, 1) self.assertEqual(b._Base__nb_objects, 1) with self.assertRaises(ValueError): s(1, 1, -1) with self.assertRaises(TypeError): s(1, 1, "A") with self.assertRaises(TypeError): s(1, 1, 1.1) with self.assertRaises(TypeError): s(1, 1, None) with self.assertRaises(TypeError): s(1, 1, True) with self.assertRaises(TypeError): s(1, 1, False) self.assertEqual(b._Base__nb_objects, 1)