Пример #1
0
 def test_request_exceptions(self):
     info = self._get_info_long_y()
     with self.assertRaises(RequestException):
         RegionParameter('1,2,0,3', info)
     with self.assertRaises(RequestException):
         RegionParameter('1,2,3,0', info)
     with self.assertRaises(RequestException):
         RegionParameter('pct:100,2,3,0', info)
Пример #2
0
 def test_syntax_exceptions(self):
     info = self._get_info_long_y()
     with self.assertRaises(SyntaxException):
         RegionParameter('n:1,2,3,4', info)
     with self.assertRaises(SyntaxException):
         RegionParameter('1,2,3,q', info)
     with self.assertRaises(SyntaxException):
         RegionParameter('1,2,3', info)
     with self.assertRaises(SyntaxException):
         RegionParameter('something', info)
Пример #3
0
    def test_populate_slots_from_w_only(self):
        # w,
        info = self._get_info_long_y()

        rp = RegionParameter('full', info)
        sp = SizeParameter('180,', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '180,')

        rp = RegionParameter('200,300,500,600', info)
        sp = SizeParameter('125,', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '125,')
Пример #4
0
    def test_populate_slots_from_h_only(self):
        # ,h
        info = self._get_info_long_y()

        rp = RegionParameter('full', info)
        sp = SizeParameter(',90', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '73,')

        rp = RegionParameter('50,290,360,910', info)
        sp = SizeParameter(',275', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '108,')
Пример #5
0
    def test_populate_slots_from_wh(self):
        # w,h
        info = self._get_info_long_y()

        rp = RegionParameter('full', info)
        sp = SizeParameter('48,48', rp)
        self.assertEquals(sp.force_aspect, True)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '48,48')

        rp = RegionParameter('15,16,23,42', info)
        sp = SizeParameter('60,60', rp)  # upsample!
        self.assertEquals(sp.force_aspect, True)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '60,60')
Пример #6
0
    def test_populate_slots_from_full(self):
        # full
        info = self._get_info_long_y()

        rp = RegionParameter('full', info)
        sp = SizeParameter('full', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, FULL_MODE)
        self.assertEquals(sp.canonical_uri_value, FULL_MODE)

        rp = RegionParameter('256,256,256,256', info)
        sp = SizeParameter('full', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, FULL_MODE)
        self.assertEquals(sp.canonical_uri_value, FULL_MODE)
Пример #7
0
 def test_request_exceptions(self):
     info = self._get_info_long_y()
     try:
         with self.assertRaises(RequestException):
             RegionParameter('1,2,0,3', info)
         with self.assertRaises(RequestException):
             RegionParameter('1,2,3,0', info)
         with self.assertRaises(RequestException):
             RegionParameter('pct:100,2,3,0', info)
     except TypeError:  # python < 2.7
         self.assertRaises(RequestException, RegionParameter, '1,2,0,3',
                           info)
         self.assertRaises(RequestException, RegionParameter, '1,2,3,0',
                           info)
         self.assertRaises(RequestException, RegionParameter,
                           'pct:100,2,3,0', info)
Пример #8
0
 def test_canonical_uri_value_oob_y_pct(self):
     info = self._get_info_long_x()  # x is long dimension
     y = 28.3
     h = 72.2
     rp = RegionParameter('pct:13,%f,17,%f' % (y, h), info)
     expected_canonical = '468,845,612,2142'
     self.assertEquals(rp.canonical_uri_value, expected_canonical)
Пример #9
0
 def test_parsing_parameter_either_passes_or_is_exception(self, uri_value):
     info = build_image_info()
     rp = RegionParameter('full', info)
     try:
         SizeParameter(uri_value, rp)
     except (RequestException, SyntaxException):
         pass
Пример #10
0
    def test_str(self):
        info = self._get_info_long_y()
        rp1 = RegionParameter('full', info)
        self.assertEquals(str(rp1), 'full')

        rp2 = RegionParameter('125,15,120,140', info)
        self.assertEquals(str(rp2), '125,15,120,140')

        rp3 = RegionParameter('pct:41.6,7.5,40,70', info)
        self.assertEquals(str(rp3), 'pct:41.6,7.5,40,70')

        rp4 = RegionParameter('125,15,200,200', info)
        self.assertEquals(str(rp4), '125,15,200,200')

        rp5 = RegionParameter('pct:41.6,7.5,66.6,100', info)
        self.assertEquals(str(rp5), 'pct:41.6,7.5,66.6,100')
Пример #11
0
 def test_square_mode_long_x(self):
     # 3600 x 2987
     info = self._get_info_long_x()
     rp = RegionParameter('square', info)
     self.assertEquals(rp.pixel_x, 306)
     self.assertEquals(rp.pixel_y, 0)
     self.assertEquals(rp.pixel_w, 2987)
     self.assertEquals(rp.pixel_h, 2987)
Пример #12
0
 def test_canonical_uri_value_oob_y_pixel(self):
     info = self._get_info_long_y()  # y is long dimension
     y = 300
     offset = 1  # request would be this many pixels OOB
     oob_h = info.height - y + offset
     rp = RegionParameter('29,%d,31,%d' % (y, oob_h), info)
     expected_canonical = '29,%d,31,%d' % (y, info.height - y)
     self.assertEquals(rp.canonical_uri_value, expected_canonical)
Пример #13
0
 def test_canonical_uri_value_oob_w_pct(self):
     info = self._get_info_long_y()  # y is long dimension
     x = 20
     w = 81
     rp = RegionParameter('pct:%d,13,%d,27' % (x, w), info)
     self.assertEquals(rp.decimal_w, Decimal('0.8'))
     expected_canonical = '1181,936,4725,1944'
     self.assertEquals(rp.canonical_uri_value, expected_canonical)
Пример #14
0
 def test_square_mode_long_y(self):
     # 5906 x 7200
     info = self._get_info_long_y()
     rp = RegionParameter('square', info)
     self.assertEquals(rp.pixel_x, 0)
     self.assertEquals(rp.pixel_y, 647)
     self.assertEquals(rp.pixel_w, 5906)
     self.assertEquals(rp.pixel_h, 5906)
Пример #15
0
 def test_zero_width_or_height_is_rejected(self):
     info = build_image_info()
     rp = RegionParameter('full', info)
     with pytest.raises(RequestException):
         SizeParameter('0,', rp)
     with pytest.raises(RequestException):
         SizeParameter(',0', rp)
     with pytest.raises(RequestException):
         SizeParameter('0,0', rp)
Пример #16
0
 def test_exceptions(self):
     info = self._get_info_long_y()
     rp = RegionParameter('pct:25,25,75,75', info)
     with self.assertRaises(SyntaxException):
         SizeParameter('!25,', rp)
     with self.assertRaises(SyntaxException):
         SizeParameter('!25', rp)
     with self.assertRaises(SyntaxException):
         SizeParameter('25', rp)
Пример #17
0
 def test_tiny_image(self):
     info = self._get_info_long_x()
     rp = RegionParameter('full', info)
     sp = SizeParameter('1,', rp)
     self.assertEquals(sp.force_aspect, False)
     self.assertEquals(sp.mode, PIXEL_MODE)
     self.assertEquals(sp.canonical_uri_value, '1,')
     self.assertEquals(sp.w, 1)
     self.assertEquals(sp.h, 1)
Пример #18
0
 def test_syntax_exceptions(self):
     info = self._get_info_long_y()
     try:
         with self.assertRaises(SyntaxException):
             RegionParameter('n:1,2,3,4', info)
         with self.assertRaises(SyntaxException):
             RegionParameter('1,2,3,q', info)
         with self.assertRaises(SyntaxException):
             RegionParameter('1,2,3', info)
         with self.assertRaises(SyntaxException):
             RegionParameter('something', info)
     except TypeError:  # python < 2.7
         self.assertRaises(SyntaxException, RegionParameter, 'something',
                           info)
         self.assertRaises(SyntaxException, RegionParameter, '1,2,3,q',
                           info)
         self.assertRaises(SyntaxException, RegionParameter, '1,2,3', info)
         self.assertRaises(SyntaxException, RegionParameter, 'something',
                           info)
Пример #19
0
 def test_canonical_uri_value_oob_w_pixel(self):
     info = self._get_info_long_x()  # x is long dimension
     x = 200
     offset = 1
     oob_w = info.width - x + offset
     rp = RegionParameter('%d,13,%d,17' % (x, oob_w), info)
     expected_canonical = '%d,13,%d,17' % (x, info.width - x)
     # Note that the below will need to be changed if decimal precision is
     # changed (currently 25 places)
     self.assertEquals(rp.decimal_w, Decimal('0.9444444444444444444444444'))
     self.assertEquals(rp.canonical_uri_value, expected_canonical)
Пример #20
0
 def test_populate_slots_from_pct(self):
     info = self._get_info_long_y()
     rp = RegionParameter('pct:25,25,50,50', info)
     self.assertEquals(rp.pixel_x, int(info.width * 0.25))
     self.assertEquals(rp.pixel_y, int(info.height * 0.25))
     self.assertEquals(rp.pixel_w, int(info.width * 0.50))
     self.assertEquals(rp.pixel_h, int(info.height * 0.50))
     self.assertEquals(rp.decimal_x, Decimal('0.25'))
     self.assertEquals(rp.decimal_y, Decimal('0.25'))
     self.assertEquals(rp.decimal_w, Decimal('0.50'))
     self.assertEquals(rp.decimal_h, Decimal('0.50'))
Пример #21
0
 def test_populate_slots_from_pixel(self):
     info = self._get_info_long_x()
     rp = RegionParameter('797,900,1594,1600', info)
     self.assertEquals(rp.pixel_x, 797)
     self.assertEquals(rp.pixel_y, 900)
     self.assertEquals(rp.pixel_w, 1594)
     self.assertEquals(rp.pixel_h, 1600)
     self.assertEquals(rp.decimal_x, rp.pixel_x / Decimal(str(info.width)))
     self.assertEquals(rp.decimal_y, rp.pixel_y / Decimal(str(info.height)))
     self.assertEquals(rp.decimal_w, rp.pixel_w / Decimal(str(info.width)))
     self.assertEquals(rp.decimal_h, rp.pixel_h / Decimal(str(info.height)))
Пример #22
0
 def test_str_representation(self):
     info = build_image_info()
     rp = RegionParameter('full', info)
     for uri_value in [
             'full',
             'pct:50',
             '50,',
             ',50',
             '!50,50',
     ]:
         sp = SizeParameter(uri_value, rp)
         self.assertEquals(str(sp), uri_value)
Пример #23
0
    def test_populate_slots_from_pct(self):
        # pct:n
        info = self._get_info_long_y()

        rp = RegionParameter('full', info)
        sp = SizeParameter('pct:25', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PCT_MODE)
        self.assertEquals(sp.canonical_uri_value, '1476,')

        rp = RegionParameter('256,256,256,256', info)
        sp = SizeParameter('pct:25', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PCT_MODE)
        self.assertEquals(sp.canonical_uri_value, '64,')

        rp = RegionParameter('pct:0,0,50,50', info)
        sp = SizeParameter('pct:25', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PCT_MODE)
        self.assertEquals(sp.canonical_uri_value, '738,')
Пример #24
0
 def test_exceptions(self):
     info = self._get_info_long_y()
     rp = RegionParameter('pct:25,25,75,75', info)
     try:
         with self.assertRaises(SyntaxException):
             SizeParameter('!25,', rp)
         with self.assertRaises(SyntaxException):
             SizeParameter('!25', rp)
         with self.assertRaises(SyntaxException):
             SizeParameter('25', rp)
     except TypeError:  # python < 2.7
         self.assertRaises(SyntaxException, SizeParameter, '!25,', rp)
         self.assertRaises(SyntaxException, SizeParameter, '!25', rp)
         self.assertRaises(SyntaxException, SizeParameter, '25', rp)
Пример #25
0
    def test_populate_slots_from_bang_wh(self):
        # !w,h
        info = self._get_info_long_y()

        rp = RegionParameter('full', info)
        sp = SizeParameter('!120,140', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '114,')

        rp = RegionParameter('0,0,125,160', info)
        sp = SizeParameter(
            '!120,140',
            rp,
        )
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '109,')

        rp = RegionParameter('0,0,125,160', info)
        sp = SizeParameter('!130,140', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '109,')

        rp = RegionParameter('50,80,140,160', info)
        sp = SizeParameter('!130,180', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '130,')

        rp = RegionParameter('50,80,140,160', info)
        sp = SizeParameter('!145,165', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '144,')

        rp = RegionParameter('50,80,140,180', info)
        sp = SizeParameter('!145,185', rp)
        self.assertEquals(sp.force_aspect, False)
        self.assertEquals(sp.mode, PIXEL_MODE)
        self.assertEquals(sp.canonical_uri_value, '143,')
Пример #26
0
 def region_param(self, image_info):
     return RegionParameter(
         uri_value=self.region_value,
         image_info=image_info
     )
Пример #27
0
 def test_anything_except_four_coordinates_is_error(self):
     info = build_image_info()
     with self.assertRaises(SyntaxException):
         RegionParameter('pct:100', info)
Пример #28
0
 def test_recognise_full_mode_if_correct_dimensions(self):
     info = build_image_info(1500, 800)
     rp = RegionParameter('0,0,1500,800', info)
     self.assertEquals(rp.mode, FULL_MODE)
Пример #29
0
 def test_negative_y_percentage_is_rejected(self):
     info = build_image_info()
     with self.assertRaises(RequestException):
         rp = RegionParameter('pct:100,-5,100,100', info)
Пример #30
0
 def test_very_small_percentage_height_is_positive(self):
     info = build_image_info(width=100, height=1)
     rp = RegionParameter('full', info)
     sp = SizeParameter('pct:50', rp)
     self.assertEquals(sp.h, 1)