X-Git-Url: https://git.madduck.net/etc/neomutt.git/blobdiff_plain/4651eede8452285177aa13714642bf438f97f9ee..4c1047e8f32300cca35b3adcbedf9f557d657fe1:/.config/neomutt/buildmimetree.py diff --git a/.config/neomutt/buildmimetree.py b/.config/neomutt/buildmimetree.py index c16e519..bd891a2 100755 --- a/.config/neomutt/buildmimetree.py +++ b/.config/neomutt/buildmimetree.py @@ -228,17 +228,13 @@ def collect_inline_images( 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 @@ -393,7 +389,7 @@ def do_setup( 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"') @@ -861,27 +857,27 @@ try: 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 @@ -891,7 +887,25 @@ try: 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