def test_base_load_from_file_csv(self): l = Rectangle.load_from_file_csv() self.assertEqual(l, []) l = Square.load_from_file_csv() self.assertEqual(l, []) r1 = Rectangle(3, 1) r2 = Rectangle(1, 2) Rectangle.save_to_file_csv([r1, r2]) l = Rectangle.load_from_file_csv() self.assertTrue(all(o.id in [r1.id, r2.id] for o in l)) s1 = Square(25) s2 = Square(20, 2, 3, 56) Square.save_to_file_csv([s1]) l = Square.load_from_file_csv() self.assertTrue(all(o.id in [s1.id] for o in l)) Base.save_to_file_csv([s1, s2]) with self.assertRaises(AttributeError): Base.load_from_file_csv() os.remove("Rectangle.csv") os.remove("Square.csv") os.remove("Base.csv")
def test_load_csv(self): """Checks load_csv method """ list_rectangles_output = Rectangle.load_from_file_csv() self.assertEqual(str(list_rectangles_output), "[]") r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() self.assertEqual(str(r1), str(list_rectangles_output[0])) self.assertEqual(str(r2), str(list_rectangles_output[1])) r1 = Rectangle(10, 50) r2 = Rectangle(2, 4, 0, 0, 89) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() self.assertEqual(str(r1), str(list_rectangles_output[0])) self.assertEqual(str(r2), str(list_rectangles_output[1])) r1 = Rectangle(10, 50) r2 = Rectangle(2, 4, 0, 0) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() self.assertEqual(str(r1), str(list_rectangles_output[0])) self.assertEqual(str(r2), str(list_rectangles_output[1]))
def test_15_csv_save_file(self): """ Test to check for csv file with None and empty """ Rectangle.save_to_file_csv(None) self.assertEqual(Rectangle.load_from_file_csv(), []) os.remove("Rectangle.csv") self.assertEqual(Rectangle.load_from_file_csv(), [])
def test_20_5(self): """Test class method load_from_file_csv with wrong args.""" s = "load_from_file_csv() takes 1 positional argument but 2 were given" with self.assertRaises(TypeError) as x: list_rectangles_output = Rectangle.load_from_file_csv("Hello") self.assertEqual(s, str(x.exception))
def test_load_from_file_csv_rectangles(self): r1 = Rectangle(2, 4, 1, 2, 42) r2 = Rectangle(4, 2, 2, 1, 24) Rectangle.save_to_file_csv([r1, r2]) lst = Rectangle.load_from_file_csv() self.assertDictEqual(lst[0].to_dictionary(), r1.to_dictionary()) self.assertEqual(type(lst[0]), Rectangle) self.assertDictEqual(lst[1].to_dictionary(), r2.to_dictionary()) self.assertEqual(type(lst[1]), Rectangle)
def test_csv_square(self): """ Test csv sqr """ R1 = Rectangle(12, 13, 14, 15) R2 = Rectangle(3, 5) lR = [R1, R2] Rectangle.save_to_file_csv(lR) lR2 = Rectangle.load_from_file_csv() self.assertTrue(lR[0].__str__() == lR2[0].__str__()) self.assertTrue(lR[1].__str__() == lR2[1].__str__())
def test_rectangle_content(self): """ Check if file is created with correct content """ name = "Rectangle.csv" r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) Rectangle.save_to_file_csv([r1, r2]) nl = Rectangle.load_from_file_csv() self.assertEqual(str(r1), str(nl[0])) self.assertEqual(str(r2), str(nl[1]))
def test_rectangle_ins_csv(self): """ Test for Rectangle instance """ r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) rl1 = Rectangle.load_from_file_csv() self.assertTrue(isinstance(rl1[0], Rectangle)) self.assertTrue(isinstance(rl1[1], Rectangle))
def test_read_csv_basic(self): """tests the base class method to read from csv basic input""" r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_output = Rectangle.load_from_file_csv() self.assertEqual(8, list_output[0].y) self.assertEqual(4, list_output[1].height)
def test_20_4(self): """Test class method load_from_file_csv with missing files.""" os.remove("Rectangle.csv") os.remove("Square.csv") os.remove("Base.csv") list_rectangles_output = Rectangle.load_from_file_csv() self.assertEqual(list_rectangles_output, []) list_squares_output = Square.load_from_file_csv() self.assertEqual(list_squares_output, [])
def test_file_csv_rect(self): r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() for i in range(len(list_rectangles_input)): self.assertNotEqual(id(list_rectangles_input[i]), id(list_rectangles_output[i])) self.assertEqual(str(list_rectangles_input[i]), str(list_rectangles_output[i]))
def test_14_csv_file(self): """ Test to check for csv file """ R1 = Rectangle(12, 13, 14, 15) R2 = Rectangle(3, 5) lR = [R1, R2] Rectangle.save_to_file_csv(lR) lR2 = Rectangle.load_from_file_csv() self.assertTrue(lR[0].__str__() == lR2[0].__str__()) self.assertTrue(lR[1].__str__() == lR2[1].__str__())
def test_csvLoad(self): """this will test the id attribute""" r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() for rect in list_rectangles_input: self.assertTrue(isinstance(rect, object)) for rect in list_rectangles_output: self.assertTrue(isinstance(rect, object))
def test_csv_save(self): """Tests that an instance can be saved as CSV""" r1 = Rectangle(3, 4, 2, 2, 99) r2 = Rectangle(2, 9) r_list = [r1, r2] Rectangle.save_to_file_csv(r_list) new_rects = Rectangle.load_from_file_csv() self.assertEqual(str(r1), str(new_rects[0])) self.assertEqual(str(r2), str(new_rects[1]))
def test_rectangle_data_csv(self): """ Test for Rectangle instance data """ r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) rl1 = Rectangle.load_from_file_csv() st1 = str(rl1[0]) st2 = str(rl1[1]) self.assertEqual(str(r1), st1) self.assertEqual(str(r2), st2)
def test_save_load_from_csv_file(self): """check if load and save work for csv""" r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() self.assertTrue(list_rectangles_output[0].__str__() == list_rectangles_input[0].__str__()) self.assertTrue(list_rectangles_output[1].__str__() == list_rectangles_input[1].__str__())
def test_read_csv_complex(self): """tests the base class method to read from csv complex input, can contain squares in rectangle file squares should be returned as rectangles""" r1 = Rectangle(10, 7, 2, 8) s1 = Square(2, 4) list_rectangles_input = [r1, s1] Rectangle.save_to_file_csv(list_rectangles_input) list_output = Rectangle.load_from_file_csv() self.assertEqual(8, list_output[0].y) self.assertEqual(4, list_output[1].height)
def test_12_load_from_file(self): """Tests if the method load from file CSV is returning correctly if the file does not exist, it should return an empty list """ os.remove('Rectangle.csv') new_list_objects = Rectangle.load_from_file_csv() self.assertEqual(new_list_objects, []) os.remove('Square.csv') new_list_objects = Square.load_from_file_csv() self.assertEqual(new_list_objects, [])
def test_h_save_to_load_from_file_csv(self): """test_save_to_file_csv""" r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) with open("Rectangle.json", "r") as f: self.assertTrue(type(f.read()) == str) list_rectangles_output = Rectangle.load_from_file_csv() self.assertTrue(type(list_rectangles_output) == list)
def test_csv_1(self): """test csv1""" Base._Base__nb_objects = 0 r2 = Rectangle(10, 7, 2, 8) r3 = Rectangle(2, 4) list_rectangles_input = [r2, r3] list_rectangles_input = [r2, r3] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() for rect in list_rectangles_output: self.assertEquals( rect.__str__(), '[Rectangle] ({}) {}/{} - {}/{}'.format( rect.id, rect.x, rect.y, rect.width, rect.height))
def test_load_from_file_csv_rectangle(self): r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() target = "[Rectangle] (1) 2/8 - 10/7\n" +\ "[Rectangle] (2) 0/0 - 2/4" temp_stdout = StringIO() with contextlib.redirect_stdout(temp_stdout): for rect in list_rectangles_output: print("{}".format(rect)) output = temp_stdout.getvalue().strip() self.assertEqual(output, target)
def test_SaveToAndLoadFromCSV(self): """ Problem 20, save to and read from CSV for both Rectangle and Square since they both rely on the same class method from Base class. """ # Test normal operation r1 = Rectangle(10, 7, 2, 8, id=1) r2 = Rectangle(2, 4, id=2) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() equal_1 = "[Rectangle] (1) 2/8 - 10/7" equal_2 = "[Rectangle] (2) 0/0 - 2/4" self.assertEqual(list_rectangles_output[0].__str__(), equal_1) self.assertEqual(list_rectangles_output[1].__str__(), equal_2)
def test_rectangle_save_csv(self): file_exists = False r1 = Rectangle(2, 3, 4, 5, 6) r2 = Rectangle(3, 3, 3, 3, 3) r3 = Rectangle(9, 8, 7, 6, 5) rect_lst = [r1, r2, r3] Rectangle.save_to_file_csv(rect_lst) if os.path.isfile('Rectangle.csv'): file_exists = True self.assertTrue(file_exists) out = Rectangle.load_from_file_csv() for i in range(len(out)): self.assertEqual(rect_lst[i].id, out[i].id) self.assertEqual(rect_lst[i].width, out[i].width) self.assertEqual(rect_lst[i].height, out[i].height) self.assertEqual(rect_lst[i].x, out[i].x) self.assertEqual(rect_lst[i].y, out[i].y)
def test_20_3(self): """Test class method load_from_file_csv with normal types.""" r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() for x in zip(list_rectangles_input, list_rectangles_output): self.assertEqual(str(x[0]), str(x[1])) s1 = Square(10, 2) s2 = Square(9) list_squares_input = [s1, s2] Square.save_to_file_csv(list_squares_input) list_squares_output = Square.load_from_file_csv() for x in zip(list_squares_input, list_squares_output): self.assertEqual(str(x[0]), str(x[1]))
def test_csv(self): ''' tests csv methods ''' a = Rectangle(1, 2, 3, 4, 5) b = Rectangle(6, 7, 8, 9, 10) Rectangle.save_to_file_csv([a, b]) list_rectangles_output = Rectangle.load_from_file_csv() c = list_rectangles_output[0] d = list_rectangles_output[1] self.assertEqual(a.id, c.id, 5) self.assertEqual(b.id, d.id, 10) self.assertEqual(a.width, c.width, 1) self.assertEqual(b.width, d.width, 6) self.assertEqual(a.height, c.height, 2) self.assertEqual(b.height, d.height, 7) self.assertEqual(a.x, c.x, 3) self.assertEqual(b.x, d.x, 8) self.assertEqual(a.y, c.y, 4) self.assertEqual(b.y, d.y, 9)
def test_12_load_from_file(self): """Tests if the method load from file CSV is returning correctly if the file does not exist, it should return an empty list """ os.remove('Rectangle.csv') new_list_objects = Rectangle.load_from_file_csv() self.assertEqual(new_list_objects, []) os.remove('Square.csv') new_list_objects = Square.load_from_file_csv() self.assertEqual(new_list_objects, []) def test_pep8_conformance(self): """Test that we conform to PEP8.""" pep8style = pep8.StyleGuide(quiet=True) result = pep8style.check_files(['./models/base.py']) self.assertEqual(result.total_errors, 0, "Found code style errors (and warnings).")
def test_save_to_file_csv(self): """ save to csv file""" r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) lo = Rectangle.load_from_file_csv() self.assertEqual(print(r1), print(lo[0])) self.assertEqual(print(r2), print(lo[1])) s1 = Square(5) s2 = Square(7, 9, 1) list_squares_input = [s1, s2] Square.save_to_file_csv(list_squares_input) lo = Square.load_from_file_csv() self.assertEqual(print(s1), print(lo[0])) self.assertEqual(print(s2), print(lo[1]))
def test_load_from_file_csv(self): """Test load_from_file_csv method""" r1 = Rectangle(3, 5, 2, 4, 1) dr1 = r1.to_dictionary() r2 = Rectangle(3, 5, 2, 4) dr2 = r2.to_dictionary() r3 = Rectangle(3, 10) dr3 = r3.to_dictionary() s1 = Square(3, 2, 4, 1) ds1 = s1.to_dictionary() s2 = Square(3, 2, 4) ds2 = s2.to_dictionary() s3 = Square(3) ds3 = s3.to_dictionary() Rectangle.save_to_file_csv([r1, r2, r3]) list_objs_r = Rectangle.load_from_file_csv() Square.save_to_file_csv([s1, s2, s3]) list_objs_s = Square.load_from_file_csv() self.assertIsInstance(list_objs_r[0], Rectangle) self.assertDictEqual(list_objs_r[0].to_dictionary(), dr1) self.assertIsInstance(list_objs_r[1], Rectangle) self.assertDictEqual(list_objs_r[1].to_dictionary(), dr2) self.assertIsInstance(list_objs_r[2], Rectangle) self.assertDictEqual(list_objs_r[2].to_dictionary(), dr3) self.assertIsInstance(list_objs_s[0], Square) self.assertDictEqual(list_objs_s[0].to_dictionary(), ds1) self.assertIsInstance(list_objs_s[1], Square) self.assertDictEqual(list_objs_s[1].to_dictionary(), ds2) self.assertIsInstance(list_objs_s[2], Square) self.assertDictEqual(list_objs_s[2].to_dictionary(), ds3)
def test_csv(self): """Testing csv """ r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() capturedOutput = io.StringIO() sys.stdout = capturedOutput for rect in list_rectangles_input: print(rect) for rect in list_rectangles_output: print(rect) self.assertEqual( capturedOutput.getvalue(), "[Rectangle] (1) 2/8 - 10/7\n" "[Rectangle] (2) 0/0 - 2/4\n" "[Rectangle] (1) 2/8 - 10/7\n" "[Rectangle] (2) 0/0 - 2/4\n") sys.stdout = sys.__stdout__ self.assertNotEqual(id(list_rectangles_input[0]), id(list_rectangles_output[0])) self.assertNotEqual(id(list_rectangles_input[1]), id(list_rectangles_output[1]))
#!/usr/bin/python3 """ 100-main """ from models.rectangle import Rectangle from models.square import Square if __name__ == "__main__": r1 = Rectangle(10, 7, 2, 8) r2 = Rectangle(2, 4) list_rectangles_input = [r1, r2] Rectangle.save_to_file_csv(list_rectangles_input) list_rectangles_output = Rectangle.load_from_file_csv() for rect in list_rectangles_input: print("[{}] {}".format(id(rect), rect)) print("---") for rect in list_rectangles_output: print("[{}] {}".format(id(rect), rect)) print("---") print("---") s1 = Square(5) s2 = Square(7, 9, 1) list_squares_input = [s1, s2] Square.save_to_file_csv(list_squares_input)