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())
Beispiel #6
0
 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"]))