def process_image(self, image_contents_id): session = Client().session() contents = session.query(ImageContents).\ filter(ImageContents.image_contents_id == image_contents_id).\ one() image = session.query(Image).\ filter(Image.image_id == contents.image_id).\ one() truck = ImageTruck( contents.contents, contents.content_type, image.source_url) truck.filename = image.filename metadata = ImageMetadata.image_metadata(truck.contents) truck.contents = ReorientImage.reorient_image(truck.contents) def after_upload(size): redis.publish(REDIS_CHANNEL, json.dumps({ 'task_id': self.request.id, 'suffix': size, })) ResizeImage.make_resizes(image, truck, after_upload) print "uploading original image" truck.upload() redis.publish(REDIS_CHANNEL, json.dumps({ 'task_id': self.request.id, 'suffix': '', })) delay(queued_tasks, Invalidate(), image.image_id) for attr, value in metadata.iteritems(): setattr(image, attr, value) session.add(image) session.delete(contents)
def test_save__uploads_image(self, calculate_filename): bucket = Mock() key = Mock() bucket.new_key.return_value = key calculate_filename.return_value = 'I am the keymaster' truck = ImageTruck('Are you the gatekeeper?', 'image/gif', None) truck._stored_bucket = bucket truck.upload() bucket.new_key.assert_called_with('I am the keymaster') key.set_contents_from_string.assert_called_with( 'Are you the gatekeeper?') key.set_metadata.assert_called_with('Content-Type', 'image/gif') key.make_public.assert_called_with()