]>
git.scottworley.com Git - paperdoorknob/blob - paperdoorknob_test.py
453f5a6338dfe5513b3e2cf68160786a4deb72c1
1 # paperdoorknob: Print glowfic
3 # This program is free software: you can redistribute it and/or modify it
4 # under the terms of the GNU General Public License as published by the
5 # Free Software Foundation, version 3.
12 from testing
.fakeserver
import FakeGlowficServer
13 from fetch
import DirectFetcher
14 from texify
import PandocTexifier
19 class TestPaperDoorknob(unittest
.TestCase
):
20 def setUp(self
) -> None:
21 self
._server
= self
.enterContext(FakeGlowficServer())
22 self
._port
= self
._server
.port()
24 def testReplies(self
) -> None:
25 with DirectFetcher(TIMEOUT
) as f
:
26 replies
= paperdoorknob
.replies(
29 f
.fetch(f
"http://localhost:{self._port}"))))
30 self
.assertEqual([r
.text
.strip() for r
in replies
],
31 ["This is glowfic", "You sure?", "Pretty sure."])
33 def testProcess(self
) -> None:
34 texifier
= PandocTexifier('pandoc')
35 with DirectFetcher(TIMEOUT
) as f
:
37 paperdoorknob
.process(
38 f
"http://localhost:{self._port}", f
, texifier
, buf
)
39 self
.assertEqual(buf
.getvalue(), b
'''\\documentclass{article}
47 def testPDF(self
) -> None:
48 texifier
= PandocTexifier('pandoc')
49 with DirectFetcher(TIMEOUT
) as f
:
50 with open("test.tex", 'wb') as out
:
51 paperdoorknob
.process(
52 f
"http://localhost:{self._port}", f
, texifier
, out
)
53 subprocess
.run(['pdflatex', 'test.tex'],
54 stdin
=subprocess
.DEVNULL
, check
=True)
57 if __name__
== '__main__':