import unittest
import io
import subprocess
+
import paperdoorknob
+
from testing.fakeserver import FakeGlowficServer
from fetch import DirectFetcher
+from spec import Spec
+from texify import DirectTexifier, PandocTexifier, VerifyingTexifier
TIMEOUT = 8
with DirectFetcher(TIMEOUT) as f:
replies = paperdoorknob.replies(
paperdoorknob.clean(
- paperdoorknob.fetch(f"http://localhost:{self._port}", f)))
+ paperdoorknob.parse(
+ f.fetch(f"http://localhost:{self._port}"))))
self.assertEqual([r.text.strip() for r in replies],
["This is glowfic", "You sure?", "Pretty sure."])
def testProcess(self) -> None:
with DirectFetcher(TIMEOUT) as f:
buf = io.BytesIO()
- paperdoorknob.process(
- f"http://localhost:{self._port}", f, buf, 'pandoc')
+ spec = Spec(
+ f"http://localhost:{self._port}",
+ f,
+ PandocTexifier('pandoc'),
+ buf)
+ paperdoorknob.process(spec)
self.assertEqual(buf.getvalue(), b'''\\documentclass{article}
\\begin{document}
This is glowfic
\\end{document}
''')
+ def testDirectTexifier(self) -> None:
+ texifier = VerifyingTexifier(
+ PandocTexifier('pandoc'), DirectTexifier())
+ with DirectFetcher(TIMEOUT) as f:
+ buf = io.BytesIO()
+ spec = Spec(f"http://localhost:{self._port}", f, texifier, buf)
+ paperdoorknob.process(spec)
+
def testPDF(self) -> None:
with DirectFetcher(TIMEOUT) as f:
with open("test.tex", 'wb') as out:
- paperdoorknob.process(
- f"http://localhost:{self._port}", f, out, 'pandoc')
- subprocess.run(['pdflatex', 'test.tex'],
- stdin=subprocess.DEVNULL, check=True)
+ spec = Spec(
+ f"http://localhost:{self._port}",
+ f,
+ PandocTexifier('pandoc'),
+ out)
+ paperdoorknob.process(spec)
+ subprocess.run(['pdflatex', 'test.tex'],
+ stdin=subprocess.DEVNULL, check=True)
if __name__ == '__main__':