Ejemplo n.º 1
0
    def test_error_messages(self):
        """
        Testing to see if error messages work
        """

        r1 = Rectangle(1, 2)

        with self.assertRaisesRegexp(TypeError, "width must be an integer"):
            r1.width = True
        with self.assertRaisesRegexp(TypeError, "width must be an integer"):
            r1.width = "str"
        with self.assertRaisesRegexp(TypeError, "height must be an integer"):
            r1.height = "rts"
        with self.assertRaisesRegexp(TypeError, "height must be an integer"):
            r1.height = True
        with self.assertRaisesRegexp(ValueError, "width must be > 0"):
            r1.width = -3
        with self.assertRaisesRegexp(ValueError, "height must be > 0"):
            r1.height = -4
        with self.assertRaisesRegexp(ValueError, "x must be >= 0"):
            r1.x = -3
        with self.assertRaisesRegexp(TypeError, "x must be an integer"):
            r1.x = True
        with self.assertRaisesRegexp(TypeError, "x must be an integer"):
            r1.x = "str"
        with self.assertRaisesRegexp(ValueError, "y must be >= 0"):
            r1.y = -4
        with self.assertRaisesRegexp(TypeError, "y must be an integer"):
            r1.y = True
        with self.assertRaisesRegexp(TypeError, "y must be an integer"):
            r1.y = "rts"
        with self.assertRaisesRegexp(ValueError, "width must be > 0"):
            r1.width = 0
        with self.assertRaisesRegexp(ValueError, "height must be > 0"):
            r1.height = 0
 def test_y_property_and_setter(self):
     """test for y setter
     """
     r = Rectangle(1, 1)
     with self.assertRaises(TypeError):
         r.y = "x"
     with self.assertRaises(ValueError):
         r.y = -10
 def test_y_setter_validations(self):
     """Tests for y setter methods"""
     rectangle_obj1 = Rectangle(3, 4, 0, 0, 10)
     with self.assertRaises(ValueError):
         rectangle_obj1.y = -4
     with self.assertRaises(TypeError):
         rectangle_obj1.y = 'Ho'
     rectangle_obj1.y = 10
     self.assertEqual(rectangle_obj1.y, 10)
    def test_y(self):
        r5 = Rectangle(10, 2)

        # check an exception is raised when trying to access
        # a private attribute
        with self.assertRaises(AttributeError):
            print(r5.__y)

        # check an exception is raised when y not an int
        with self.assertRaises(TypeError, msg="y must be an integer"):
            r5.y = 'hi'

        # check an exception is raised when y is less than 0
        with self.assertRaises(ValueError, msg="y must be >= 0"):
            r5.y = -1
    def test_all(self):
        r1 = Rectangle(10, 2, 20, 30)

        # Check getter for height works
        self.assertEqual(r1.height, 2)

        # check setter for height works
        r1.height = 5
        self.assertEqual(r1.height, 5)

        # Check getter for width works
        self.assertEqual(r1.width, 10)

        # check setter for width works
        r1.width = 12
        self.assertEqual(r1.width, 12)

        # Check getter for x works
        self.assertEqual(r1.x, 20)

        # check setter for x works
        r1.x = 25
        self.assertEqual(r1.x, 25)

        # Check getter for y works
        self.assertEqual(r1.y, 30)

        # check setter for y works
        r1.y = 35
        self.assertEqual(r1.y, 35)
Ejemplo n.º 6
0
 def test_str_method_attr(self):
     r = Rectangle(7, 8, 14, 12, [13])
     r.width = 13
     r.height = 11
     r.x = 81
     r.y = 100
     self.assertEqual("[Rectangle] ([13]) 81/100 - 13/11", str(r))
Ejemplo n.º 7
0
 def test_excep5(self):
     with self.assertRaises(ValueError):
         r5 = Rectangle(10, 2)
         r5.y = -10
         self.g1.y = -10
         self.g2.y = -10
         self.g3.y = -10
Ejemplo n.º 8
0
 def test_excep2(self):
     with self.assertRaises(TypeError):
         r5 = Rectangle(10, 2)
         r5.y = "8"
         self.g1.y = "8"
         self.g2.y = "8"
         self.g3.y = "8"
 def test_16_property_range_zero(self):
     '''@property set/get'''
     r = Rectangle(1, 2)
     r.x = 0
     r.y = 0
     self.assertEqual(r.x, 0)
     self.assertEqual(r.y, 0)
Ejemplo n.º 10
0
    def test_y_not_int(self):
        """ Test's for y method """

        r1 = Rectangle(3, 4, 0, 0)

        with self.assertRaises(TypeError):
            r1.y = "51"
 def test_ysettervalidationfornegative(self):
     """This function tests width setter validation for 0"""
     Rectangle.reset_objects()
     with self.assertRaises(ValueError) as e:
         r1 = Rectangle(25, 20, 30, 35, 100)
         r1.y = -1
     self.assertEqual(str(e.exception), 'y must be >= 0')
Ejemplo n.º 12
0
 def test_method_changed_attributes(self):
     r = Rectangle(12, 23, 67, 64, [5])
     r.width = 75
     r.height = 43
     r.x = 13
     r.y = 75
     self.assertEqual("[Rectangle] ([5]) 13/75 - 75/43", str(r))
 def test_str_method_changed_attributes(self):
     r = Rectangle(7, 7, 0, 0, [4])
     r.width = 15
     r.height = 1
     r.x = 8
     r.y = 10
     self.assertEqual("[Rectangle] ([4]) 8/10 - 15/1", str(r))
    def test_position(self):
        """ check if the position x y y are validates and sets correctly """

        r4 = Rectangle(10, 2)
        self.assertEqual(r4.x, 0)
        self.assertEqual(r4.y, 0)

        r4 = Rectangle(10, 2, 10)
        self.assertEqual(r4.x, 10)
        self.assertEqual(r4.y, 0)

        r4 = Rectangle(10, 2, 10, 2)
        self.assertEqual(r4.x, 10)
        self.assertEqual(r4.y, 2)

        r4.x = 13
        r4.y = 8
        self.assertEqual(r4.x, 13)
        self.assertEqual(r4.y, 8)

        self.assertRaises(TypeError, Rectangle, 10, 10, "e", 10)
        self.assertRaises(TypeError, Rectangle, 10, 10, 0, "10")

        self.assertRaises(ValueError, Rectangle, 10, 10, -8, 10)
        self.assertRaises(ValueError, Rectangle, 10, 10, 10, -1)
Ejemplo n.º 15
0
 def test_variables(self):
     r1 = Rectangle(2, 4, 6, 9, 10)
     self.assertEqual(r1.id, 10)
     self.assertEqual(r1.width, 2)
     self.assertEqual(r1.height, 4)
     self.assertEqual(r1.x, 6)
     self.assertEqual(r1.y, 9)
     r1.width = 7
     self.assertEqual(r1.width, 7)
     r1.height = 11
     self.assertEqual(r1.height, 11)
     r1.x = 8
     self.assertEqual(r1.x, 8)
     r1.y = 5
     self.assertEqual(r1.y, 5)
     """Error"""
     self.assertRaises(TypeError, Rectangle, "string", 3)
     self.assertRaises(TypeError, Rectangle, 4, "string")
     self.assertRaises(TypeError, Rectangle, 2, 4, "string")
     self.assertRaises(TypeError, Rectangle, 2, 4, 3, "string")
     self.assertRaises(TypeError, Rectangle)
     self.assertRaises(TypeError, Rectangle, 2)
     self.assertRaises(ValueError, Rectangle, -1, 3)
     self.assertRaises(ValueError, Rectangle, 4, -2)
     self.assertRaises(ValueError, Rectangle, 2, 4, -3)
     self.assertRaises(ValueError, Rectangle, 2, 4, 3, -4)
 def test_17_property_range_zero(self):
     """Tests property setting/getting."""
     r = Rectangle(1, 2)
     r.x = 0
     r.y = 0
     self.assertEqual(r.x, 0)
     self.assertEqual(r.y, 0)
Ejemplo n.º 17
0
    def test_dictionary(self):
        with self.assertRaises(TypeError) as e:
            Rectangle.to_dictionary()
        s = "to_dictionary() missing 1 required positional argument: 'self'"
        self.assertEqual(str(e.exception), s)

        r = Rectangle(1, 2)
        d = {'x': 0, 'y': 0, 'width': 1, 'id': 1, 'height': 2}
        self.assertEqual(r.to_dictionary(), d)

        r = Rectangle(1, 2, 3, 4, 5)
        d = {'x': 3, 'y': 4, 'width': 1, 'id': 5, 'height': 2}
        self.assertEqual(r.to_dictionary(), d)

        r.x = 10
        r.y = 20
        r.width = 30
        r.height = 40
        d = {'x': 10, 'y': 20, 'width': 30, 'id': 5, 'height': 40}
        self.assertEqual(r.to_dictionary(), d)

        r1 = Rectangle(10, 2, 1, 9)
        r1_dictionary = r1.to_dictionary()
        r2 = Rectangle(1, 1)
        r2.update(**r1_dictionary)
        self.assertEqual(str(r1), str(r2))
        self.assertNotEqual(r1, r2)
 def test_setted_values(self):
     """Test for setted attributes"""
     r = Rectangle(1, 2)
     r.x = 5
     r.y = 10
     self.assertEqual(r.x, 5)
     self.assertEqual(r.y, 10)
 def test_H_property_range_zero(self):
     '''Tests property setting/getting.'''
     r = Rectangle(1, 2)
     r.x = 0
     r.y = 0
     self.assertEqual(r.x, 0)
     self.assertEqual(r.y, 0)
Ejemplo n.º 20
0
 def test_y_get_set(self):
     r = Rectangle(2, 4, 1, 2)
     with self.assertRaises(AttributeError):
         r.__y
     self.assertEqual(r.y, 2)
     r.y = 42
     self.assertEqual(r.y, 42)
Ejemplo n.º 21
0
    def test_trivial(self):
        """ Function: test_trivial
                      to test trivial cases
        """
        Base._nb_objects = 0
        r1 = Rectangle(10, 2)
        r2 = Rectangle(2, 10)
        r3 = Rectangle(10, 2, 0, 0, 12)
        r4 = Rectangle(10, 2, 0, 0, None)
        self.assertEqual(r1.id, 1)
        self.assertEqual(r2.id, 2)
        self.assertEqual(r3.id, 12)
        self.assertEqual(r4.id, 3)

        self.assertEqual(r1.area(), 20)
        self.assertEqual(r2.area(), 20)
        self.assertEqual(r3.area(), 20)
        self.assertEqual(r4.area(), 20)

        x = r1.x
        y = r1.y
        width = r1.width
        height = r1.height
        self.assertEqual(x, 0)
        self.assertEqual(y, 0)
        self.assertEqual(width, 10)
        self.assertEqual(height, 2)
        x = r2.x
        y = r2.y
        width = r2.width
        height = r2.height
        self.assertEqual(x, 0)
        self.assertEqual(y, 0)
        self.assertEqual(width, 2)
        self.assertEqual(height, 10)
        x = r3.x
        y = r3.y
        width = r3.width
        height = r3.height
        self.assertEqual(x, 0)
        self.assertEqual(y, 0)
        self.assertEqual(width, 10)
        self.assertEqual(height, 2)
        x = r4.x
        y = r4.y
        width = r4.width
        height = r4.height
        self.assertEqual(x, 0)
        self.assertEqual(y, 0)
        self.assertEqual(width, 10)
        self.assertEqual(height, 2)
        r4.x = 24
        self.assertEqual(r4.x, 24)
        r3.y = 55
        self.assertEqual(r3.y, 55)
        r2.width = 97
        self.assertEqual(r2.width, 97)
        r1.height = 33
        self.assertEqual(r1.height, 33)
Ejemplo n.º 22
0
    def test_y(self):
        """ Test's for y method """

        r1 = Rectangle(3, 4, 0, 0)
        r1.y = 5191

        self.assertTrue(Rectangle.y.__doc__)
        self.assertEqual(r1.y, 5191)
Ejemplo n.º 23
0
 def test_Value(self):
     r = Rectangle(10, 2)
     with self.assertRaises(ValueError):
         r.height = -2
         r.height = 0
         r.width = -1
         r.width = 0
         r.x = ""
         r.x = {}
         r.x = []
         r.x = ()
         r.x = 1.2
         r.y = ""
         r.y = {}
         r.y = []
         r.y = ()
         r.y = 1.2
    def test_rectangle_display(self):
        r = Rectangle(1, 1)

        with redirect_stdout(io.StringIO()) as f:
            r.display()
        self.assertEqual("#\n", f.getvalue())

        r.height = 2
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        self.assertEqual("#\n#\n", f.getvalue())

        r.width = 5
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        self.assertEqual("#####\n#####\n", f.getvalue())

        r.height = 5
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        self.assertEqual("#####\n#####\n#####\n#####\n#####\n", f.getvalue())

        r = Rectangle(5, 2, 3, 3)
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        answer = ("\n\n\n" + "   #####\n" + "   #####\n")
        self.assertEqual(answer, f.getvalue())

        r.width = 2
        r.y = 0
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        answer = ("   ##\n" + "   ##\n")
        self.assertEqual(answer, f.getvalue())

        r.height = 4
        r.y = 1
        with redirect_stdout(io.StringIO()) as f:
            r.display()
        answer = ("\n" + "   ##\n" + "   ##\n" + "   ##\n" + "   ##\n")
        self.assertEqual(answer, f.getvalue())

        with self.assertRaises(TypeError):
            r.display(4, 4)
Ejemplo n.º 25
0
 def test_aa_setters(self):
     gt = Rectangle(4, 5, 8, 1, 20)
     gt.width = 30
     self.assertEqual(gt.width, 30)
     gt.height = 33
     self.assertEqual(gt.height, 33)
     gt.x = 56
     self.assertEqual(gt.x, 56)
     gt.y = 14
     self.assertEqual(gt.y, 14)
 def test_xydisplay1(self):
     """ Display XY """
     r1 = Rectangle(2, 3, 1, 2)
     r1.x = 2
     r1.y = 3
     dp = "\n\n\n  ##\n  ##\n  ##\n"
     with patch('sys.stdout', new=io.StringIO()) as p:
         r1.display()
         st = p.getvalue()
     self.assertEqual(st, dp)
Ejemplo n.º 27
0
 def test_params_setters(self):
     r9 = Rectangle(32, 34)
     r9.width = 21
     self.assertEqual(r9.width, 21)
     r9.height = 87
     self.assertEqual(r9.height, 87)
     r9.x = 55
     self.assertEqual(r9.x, 55)
     r9.y = 444
     self.assertEqual(r9.y, 444)
 def test_args_setter(self):
     """check args setter"""
     A = Rectangle(3, 2)
     A.width = 1
     self.assertEqual(A.width, 1)
     A.height = 5
     self.assertEqual(A.height, 5)
     A.x = 10
     self.assertEqual(A.x, 10)
     A.y = 20
     self.assertEqual(A.y, 20)
 def test_setters_ok(self):
     """ Test for setters with good values. """
     r1 = Rectangle(1, 5)
     r1.width = 2
     r1.height = 6
     r1.x = 3
     r1.y = 4
     self.assertEqual(r1.width, 2)
     self.assertEqual(r1.height, 6)
     self.assertEqual(r1.x, 3)
     self.assertEqual(r1.y, 4)
    def test_display(self):
        """ check if the display function show the rectangle correctly """
        r6 = Rectangle(1, 1)
        expected_out = '#\n'

        with patch('sys.stdout', new=StringIO()) as fake_out:
            r6.display()
            self.assertEqual(fake_out.getvalue(), expected_out)

        r6.width = 2
        r6.height = 3
        expected_out = '##\n##\n##\n'

        with patch('sys.stdout', new=StringIO()) as fake_out:
            r6.display()
            self.assertEqual(fake_out.getvalue(), expected_out)
        r6.x = 1
        r6.y = 3
        expected_out = '\n\n\n ##\n ##\n ##\n'

        with patch('sys.stdout', new=StringIO()) as fake_out:
            r6.display()
            self.assertEqual(fake_out.getvalue(), expected_out)

        r6.x = 1
        r6.y = 0
        expected_out = ' ##\n ##\n ##\n'

        with patch('sys.stdout', new=StringIO()) as fake_out:
            r6.display()
            self.assertEqual(fake_out.getvalue(), expected_out)

        r6.x = 4
        r6.y = 1
        r6.width = 1
        r6.height = 1
        expected_out = '\n    #\n'

        with patch('sys.stdout', new=StringIO()) as fake_out:
            r6.display()
            self.assertEqual(fake_out.getvalue(), expected_out)