def test_process(self): processor = climage.processor.Processor(self.config, open(IMAGE)) processed = processor.process() self.assertEquals(processor.info['width'], 1000) self.assertEquals(processor.info['height'], 750) self.assertEquals(len(processed), len(self.config['climage']['processor']['sizes']))
def test_convert(self): image = PIL.Image.open(open(IMAGE)) output = StringIO.StringIO() image = image.convert(mode='LA') image.save(output, 'PNG') image = output.getvalue() processor = climage.processor.Processor(self.config, image) processed = processor.process() image = PIL.Image.open(StringIO.StringIO(processed['50x50c'])) self.assertEquals(image.mode, 'RGB')
def test_convert(self): image = PIL.Image.open(open(IMAGE)) output = StringIO.StringIO() image = image.convert(mode="LA") image.save(output, "PNG") image = output.getvalue() processor = climage.processor.Processor(self.config, image) processed = processor.process() image = PIL.Image.open(StringIO.StringIO(processed["50x50c"])) self.assertEquals(image.mode, "RGB")
def test_save_blob(self): processor = climage.processor.Processor(self.config, open(IMAGE)) images = processor.process() self.assertTrue("blob_info_name" in processor.info) self.assertTrue("blob_names" in processor.info) client = clblob.client.Client(self.config) info = processor.info.copy() info.pop("blob_info_name") info.pop("blob_names") self.assertEquals(info, json.loads(client.get(processor.info["blob_info_name"]).read())) for size in images: self.assertEquals(images[size], client.get(processor.info["blob_names"][size]).read())
def test_save_blob(self): processor = climage.processor.Processor(self.config, open(IMAGE)) images = processor.process() self.assertTrue('blob_info_name' in processor.info) self.assertTrue('blob_names' in processor.info) client = clblob.client.Client(self.config) info = processor.info.copy() info.pop('blob_info_name') info.pop('blob_names') self.assertEquals( info, json.loads(client.get(processor.info['blob_info_name']).read())) for size in images: self.assertEquals( images[size], client.get(processor.info['blob_names'][size]).read())
def run(self): '''Run the request.''' if self.method not in ['POST', 'PUT']: raise clcommon.http.MethodNotAllowed() config = self.parse_params(['filename'], ['quality', 'ttl'], ['save', 'save_blob'], ['sizes']) config = clcommon.config.update(self.server.config, {'climage': {'processor': config}}) response = config['climage']['server']['response'] response = self.params.get('response', response).lower() sizes = config['climage']['processor']['sizes'] if response not in VALID_RESPONSES + sizes: raise clcommon.http.BadRequest( _('Invalid response parameter: %s') % response) try: processor = climage.processor.Processor(config, self.body_data, self.server.image_processor_pool, self.server.blob_client) processed = processor.process() except climage.processor.ProcessingError, exception: raise clcommon.http.BadRequest(str(exception))
def test_exif(self): processor = climage.processor.Processor(self.config, open(EXIF_IMAGE)) processor.process() self.assertEquals(processor.info['exif_gpsversionid'], '(2, 2, 0, 0)')
def test_truncate(self): image = open(IMAGE).read()[:-100] processor = climage.processor.Processor(self.config, image) processed = processor.process() self.assertEquals(len(processed), len(self.config['climage']['processor']['sizes']))
def test_no_size(self): config = clcommon.config.update_option(self.config, 'climage.processor.sizes', []) processor = climage.processor.Processor(config, open(IMAGE)) processed = processor.process() self.assertEquals(len(processed), 0)
def test_no_size(self): config = clcommon.config.update_option(self.config, "climage.processor.sizes", []) processor = climage.processor.Processor(config, open(IMAGE)) processed = processor.process() self.assertEquals(len(processed), 0)
def test_process(self): processor = climage.processor.Processor(self.config, open(IMAGE)) processed = processor.process() self.assertEquals(processor.info["width"], 1000) self.assertEquals(processor.info["height"], 750) self.assertEquals(len(processed), len(self.config["climage"]["processor"]["sizes"]))
def test_exif(self): processor = climage.processor.Processor(self.config, open(EXIF_IMAGE)) processor.process() self.assertEquals(processor.info["exif_gpsversionid"], "(2, 2, 0, 0)")
def test_truncate(self): image = open(IMAGE).read()[:-100] processor = climage.processor.Processor(self.config, image) processed = processor.process() self.assertEquals(len(processed), len(self.config["climage"]["processor"]["sizes"]))