示例#1
0
 def __call__(self, data, **metadata):
     try:
         img = Image.open(BytesIO(data))
     except IOError:
         return None
     parts = [
         ("Format", str(img.format_description)),
         ("Size", "%s x %s px" % img.size),
         ("Mode", str(img.mode)),
     ]
     for i in sorted(img.info.keys()):
         if i != "exif":
             parts.append(
                 (str(i), str(img.info[i]))
             )
     if hasattr(img, "_getexif"):
         ex = img._getexif()
         if ex:
             for i in sorted(ex.keys()):
                 tag = ExifTags.TAGS.get(i, i)
                 parts.append(
                     (str(tag), str(ex[i]))
                 )
     fmt = format_dict(multidict.MultiDict(parts))
     return "%s image" % img.format, fmt
示例#2
0
 def __call__(self, data, **metadata):
     try:
         data = data.decode("ascii", "strict")
     except ValueError:
         return None
     d = url.decode(data)
     return "URLEncoded form", format_dict(multidict.MultiDict(d))
示例#3
0
    def test_view_auto(self):
        v = cv.ViewAuto()
        f = v(
            "foo",
            headers=Headers()
        )
        assert f[0] == "Raw"

        f = v(
            "<html></html>",
            headers=Headers(content_type="text/html")
        )
        assert f[0] == "HTML"

        f = v(
            "foo",
            headers=Headers(content_type="text/flibble")
        )
        assert f[0] == "Raw"

        f = v(
            "<xml></xml>",
            headers=Headers(content_type="text/flibble")
        )
        assert f[0].startswith("XML")

        f = v(
            "",
            headers=Headers()
        )
        assert f[0] == "No content"

        f = v(
            "",
            headers=Headers(),
            query=multidict.MultiDict([("foo", "bar")]),
        )
        assert f[0] == "Query"
示例#4
0
 def _format(v):
     yield [("highlight", "Form data:\n")]
     for message in format_dict(multidict.MultiDict(v)):
         yield message
示例#5
0
 def __call__(self, data, **metadata):
     d = url.decode(data)
     return "URLEncoded form", format_dict(multidict.MultiDict(d))
示例#6
0
 def test_view_query(self):
     d = ""
     v = cv.ViewQuery()
     f = v(d, query=multidict.MultiDict([("foo", "bar")]))
     assert f[0] == "Query"
     assert [x for x in f[1]] == [[("header", "foo: "), ("text", "bar")]]