예제 #1
0
    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(), [])
예제 #4
0
    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)
예제 #6
0
 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__())
예제 #7
0
 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]))
예제 #8
0
 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))
예제 #9
0
 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)
예제 #10
0
    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__())
예제 #13
0
 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]))
예제 #15
0
 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__())
예제 #17
0
 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)
예제 #20
0
 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)
예제 #22
0
 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)
예제 #23
0
 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)
예제 #24
0
    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]))
예제 #25
0
 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)
예제 #26
0
    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)
예제 #29
0
 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)