def POST(self, category): i = web.input('olid', author=None, file={}, source_url=None, success_url=None, failure_url=None) success_url = i.success_url or web.ctx.get('HTTP_REFERRER') or '/' failure_url = i.failure_url or web.ctx.get('HTTP_REFERRER') or '/' def error(code__msg): (code, msg) = code__msg print("ERROR: upload failed, ", i.olid, code, repr(msg), file=web.debug) _cleanup() url = changequery(failure_url, errcode=code, errmsg=msg) raise web.seeother(url) if i.source_url: try: data = download(i.source_url) except: error(ERROR_INVALID_URL) source_url = i.source_url elif i.file is not None and i.file != {}: data = i.file.value source_url = None else: error(ERROR_EMPTY) if not data: error(ERROR_EMPTY) try: save_image(data, category=category, olid=i.olid, author=i.author, source_url=i.source_url, ip=web.ctx.ip) except ValueError: error(ERROR_BAD_IMAGE) _cleanup() raise web.seeother(success_url)
def POST(self, category): i = web.input(olid=None, author=None, data=None, source_url=None, ip=None, _unicode=False) web.ctx.pop("_fieldstorage", None) web.ctx.pop("_data", None) def error(code__msg): (code, msg) = code__msg _cleanup() e = web.badrequest() e.data = simplejson.dumps({"code": code, "message": msg}) raise e source_url = i.source_url data = i.data if source_url: try: data = download(source_url) except: error(ERROR_INVALID_URL) if not data: error(ERROR_EMPTY) try: d = save_image(data, category=category, olid=i.olid, author=i.author, source_url=i.source_url, ip=i.ip) except ValueError: error(ERROR_BAD_IMAGE) _cleanup() return simplejson.dumps({"ok": "true", "id": d.id})
def test_write(self, setup_db, image_dir): path = static_dir + '/logos/logo-en.png' data = open(path).read() d = coverlib.save_image(data, category='b', olid='OL1M') assert 'OL1M' in d.filename path = config.data_root + '/localdisk/' + d.filename assert open(path).read() == data
def test_write(self): path = static_dir + "/logos/logo-en.png" data = open(path).read() d = coverlib.save_image(data, category='b', olid='OL1M') assert 'OL1M' in d.filename path = config.data_root + '/localdisk/' + d.filename assert open(path).read() == data
def test_write(self): path = static_dir + "/logos/logo-en.png" data = open(path).read() d = coverlib.save_image(data, category="b", olid="OL1M") assert "OL1M" in d.filename path = config.data_root + "/localdisk/" + d.filename assert open(path).read() == data