def test_url_for_filename__with_extension(self, _url, Config): config = Mock() config.bucket_name.return_value = 'greeble' Config.return_value = config ImageTruck.url_for_filename('CAFEBABE', extension=True) _url.assert_called_once_with('CAFEBABE', 'greeble', extension=True)
def show_image(request_format, image_id, size): session = Client().session() image = session.query(Image).\ filter(Image.image_id == image_id).\ one() if g.user: albums = session.query(Album).all() else: albums = [] if image.album_id is not None: album = session.query(Album).\ filter(Album.album_id == image.album_id).\ one() else: album = None (prev, next) = image.neighbors() resizes = session.query(ImageResize).\ filter(ImageResize.image_id == image_id).\ order_by(ImageResize.width.asc()).\ all() url = ImageTruck.url_for_filename(image.filename) if resizes and size in [r.suffix for r in resizes]: url = '{0}_{1}'.format(url, size) tags = image.get_tags() if request_format == 'html': return render_template('image.html.jinja', image=image, prev=prev, next=next, album=album, albums=albums, url=url, tags=list(tags), metadata_fields=filter(lambda (x,_): getattr(image, x), Image.metadata_fields), getattr=getattr, resizes=resizes, size=size) elif request_format == 'json': return { 'description': image.description, 'title': image.title, 'camera': image.camera, 'photographed_at': image.photographed_at, 'focal_length': image.focal_length, 'aperture': image.aperture, 'shutter_speed': image.shutter_speed, 'iso': image.iso, 'album_id': image.album_id, 'tags': list(tags), 'source_url': url, }
def show_image(request_format, image_id, size): session = Client().session() image = session.query(Image).filter(Image.image_id == image_id).one() if g.user: albums = session.query(Album).all() else: albums = [] if image.album_id is not None: album = session.query(Album).filter(Album.album_id == image.album_id).one() else: album = None (prev, next) = image.neighbors() resizes = ( session.query(ImageResize).filter(ImageResize.image_id == image_id).order_by(ImageResize.width.asc()).all() ) url = ImageTruck.url_for_filename(image.filename) if resizes and size in [r.suffix for r in resizes]: url = "{0}_{1}".format(url, size) tags = image.get_tags() if request_format == "html": return render_template( "image.html.jinja", image=image, prev=prev, next=next, album=album, albums=albums, url=url, tags=list(tags), metadata_fields=filter(lambda (x, _): getattr(image, x), Image.metadata_fields), getattr=getattr, resizes=resizes, size=size, ) elif request_format == "json": return { "description": image.description, "title": image.title, "camera": image.camera, "photographed_at": image.photographed_at, "focal_length": image.focal_length, "aperture": image.aperture, "shutter_speed": image.shutter_speed, "iso": image.iso, "album_id": image.album_id, "tags": list(tags), "source_url": url, }
def find(request_format): tag_names = request.args['tags'].strip().split(' ') image_structs = [] image_data = Tag.get_image_data(tag_names) for filename, image_id, caption in image_data: image_structs.append({ 'source_url': ImageTruck.url_for_filename(filename), 'url': url_for('show_image', image_id=image_id), 'caption': caption, }) if request_format == 'html': return render_template('find.html.jinja', images=image_structs) elif request_format == 'json': return image_structs
def show_image(request_format, image_id, size): session = Client().session() image = session.query(Image).\ filter(Image.image_id == image_id).\ one() if g.user: albums = session.query(Album).all() else: albums = [] try: album = filter(lambda a: a.album_id == image.album_id, albums)[0] except IndexError: album = None resizes = session.query(ImageResize).\ filter(ImageResize.image_id == image_id).\ order_by(ImageResize.width.asc()).\ all() url = ImageTruck.url_for_filename(image.filename) if resizes and size != 'original': if size not in map(lambda r: r.suffix, resizes): size = resizes[0].suffix url = '%s_%s' % (url, size) tags = image.get_tags() if request_format == 'html': return render_template('image.html.jinja', image=image, album=album, albums=albums, url=url, tags=tags, resizes=resizes, user=g.user, size=size) elif request_format == 'json': return { 'description': image.description, 'title': image.title, 'camera': image.camera, 'photographed_at': image.photographed_at, 'focal_length': image.focal_length, 'aperture': image.aperture, 'shutter_speed': image.shutter_speed, 'iso': image.iso, 'album_id': image.album_id, 'tags': list(tags), 'source_url': url, }
def test_url_for_filename(self): eq_(ImageTruck.url_for_filename('CAFEBABE'), 'https://s3.amazonaws.com/greeble/CAFEBABE')
def test_url_for_filename(self, Config): config = Mock() config.bucket_name.return_value = 'greeble' Config.return_value = config eq_(ImageTruck.url_for_filename('CAFEBABE'), 'https://s3.amazonaws.com/greeble/CAFEBABE')