mimetype = data.headers["Content-Type"]
ext = mimetypes.guess_extension(mimetype)
- tempfilename = tempfile.mkstemp(prefix="img", suffix=ext, dir=tempdir)[
- 1
- ]
- path = pathlib.Path(tempfilename)
+ tempfilename = tempfile.mkstemp(prefix="img", suffix=ext, dir=tempdir)
+ path = pathlib.Path(tempfilename[1])
filewriter_fn(path, data.read(), "w+b")
relparts.append(
- Part(
- *mimetype.split("/"), path, cid=info.cid, desc=info.desc
- )
+ Part(*mimetype.split("/"), path, cid=info.cid, desc=info.desc)
)
return relparts
if extensions:
editor = f'{editor} --extensions {",".join(extensions)}'
if debug_commands:
- editor = f'{editor} --debug-commands'
+ editor = f"{editor} --debug-commands"
cmds.cmd('set my_editor="$editor"')
cmds.cmd('set my_edit_headers="$edit_headers"')
assert k == f"file://{imgpath}"
break
- def test_markdown_inline_image_processor_base64(self):
- img = (
+ @pytest.fixture
+ def test_png(self):
+ return (
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAE"
"AAAABCAAAAAA6fptVAAAACklEQVQI12P4DwABAQEAG7buVgAA"
)
- text = f"![1px white inlined]({img})"
+
+
+ def test_markdown_inline_image_processor_base64(self, test_png):
+ text = f"![1px white inlined]({test_png})"
text, html, images = markdown_with_inline_image_support(text)
assert 'src="cid:' in html
assert "](cid:" in text
assert len(images) == 1
- assert img in images
+ assert test_png in images
def test_converter_tree_inline_image_base64(
- self, const1, fake_filewriter
+ self, test_png, const1, fake_filewriter
):
- img = (
- "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAE"
- "AAAABCAAAAAA6fptVAAAACklEQVQI12P4DwABAQEAG7buVgAA"
- )
- text = f"![inline base64 image]({img})"
+ text = f"![inline base64 image]({test_png})"
path = pathlib.Path(const1)
tree = convert_markdown_to_html(
text, path, filewriter_fn=fake_filewriter
assert tree.children[1].subtype == "png"
written = fake_filewriter.pop()
assert tree.children[1].path == written[0]
- assert written[1] == request.urlopen(img).read()
+ assert written[1] == request.urlopen(test_png).read()
+
+ def test_inline_image_collection(self, test_png, const1, const2, fake_filewriter):
+ test_images = {
+ test_png: InlineImageInfo(
+ cid=const1, desc=const2
+ )
+ }
+ relparts = collect_inline_images(
+ test_images, filewriter_fn=fake_filewriter
+ )
+
+ written = fake_filewriter.pop()
+ assert b'PNG' in written[1]
+
+ assert relparts[0].subtype == "png"
+ assert relparts[0].path == written[0]
+ assert relparts[0].cid == const1
+ assert relparts[0].desc == const2
except ImportError:
pass