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)
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)
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)
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)
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')
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,')
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,')
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
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)
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,')
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)
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,')
def size_param(self, image_info): return SizeParameter( uri_value=self.size_value, region_parameter=self.region_param(image_info) )
def size_param(self): if self._size_param is None: self._size_param = SizeParameter(self.size_value, self.region_param) return self._size_param
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)
def test_decimal_percentage_is_allowed(self): info = build_image_info(width=400, height=200) rp = RegionParameter('full', info) sp = SizeParameter('pct:6.25', rp) self.assertEquals(sp.w, 25)
def test_very_small_pixel_width_is_positive(self): info = build_image_info(width=1, height=100) rp = RegionParameter('full', info) sp = SizeParameter(',50', rp) self.assertEquals(sp.w, 1)
def test_zero_or_negative_percentage_is_rejected(self): info = build_image_info(100, 100) rp = RegionParameter('full', info) with self.assertRaises(RequestException): SizeParameter('pct:0', rp)