def test_images(self): self.um.create_user('image_creator') image_user = self.um.get_user('image_creator') # create a bucket for our bundle Bucket.create('image_bucket', image_user) bucket = Bucket('image_bucket') # upload an image manifest/parts bundle_path = os.path.join(os.path.dirname(__file__), 'bundle') for path in glob.glob(bundle_path + '/*'): bucket[os.path.basename(path)] = open(path, 'rb').read() # register an image Image.create('i-testing', 'image_bucket/1mb.manifest.xml', image_user) # verify image my_img = Image('i-testing') result_image_file = os.path.join(my_img.path, 'image') self.assertEqual(os.stat(result_image_file).st_size, 1048576) sha = hashlib.sha1(open(result_image_file).read()).hexdigest() self.assertEqual(sha, '3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3') # verify image permissions new_user = self.um.get_user('new_user') self.assert_(my_img.is_authorized(new_user) == False)
def delete(self): """ delete a registered image """ image_id = self.get_argument("image_id", u"") image = Image(image_id) if image.owner_id != self.user.id: raise web.HTTPError(403) image.delete() self.set_status(204)
def post(self): """ update image attributes: public/private """ image_id = self.get_argument('image_id', u'') operation = self.get_argument('operation', u'') image = Image(image_id) if image.owner_id != self.user.id: raise web.HTTPError(403) image.set_public(operation=='add') self.finish()
def get(self): """ returns a json listing of all images that a user has permissions to see """ images = [i for i in Image.all() if i.is_authorized(self.user)] self.finish(json.dumps([i.metadata for i in images]))