+class BaseTestProcess(ABC):
+
+ @abstractmethod
+ def url(self) -> str:
+ raise NotImplementedError()
+
+ @abstractmethod
+ def fetcher(self) -> Fetcher:
+ raise NotImplementedError()
+
+ def testProcess(self) -> None:
+ buf = io.BytesIO()
+ spec = Spec(
+ self.url(),
+ self.fetcher(),
+ ImageStore('is', self.fetcher()),
+ lambda x: x,
+ lambda x: ApplyDOMFilters('NoEdit,NoFooter', x),
+ PandocTexifier('pandoc'),
+ 'margin=20mm',
+ buf)
+ paperdoorknob.process(spec)
+ assert buf.getvalue() == b'''\\documentclass{article}
+\\usepackage[margin=20mm]{geometry}
+\\begin{document}
+This is glowfic
+You \\emph{sure}?
+Pretty sure.
+\\end{document}
+'''
+
+ def testDirectTexifier(self) -> None:
+ texifier = VerifyingTexifier(
+ PandocTexifier('pandoc'), DirectTexifier())
+ buf = io.BytesIO()
+ spec = Spec(
+ self.url(),
+ self.fetcher(),
+ ImageStore('is', self.fetcher()),
+ lambda x: x,
+ lambda x: ApplyDOMFilters('NoEdit,NoFooter', x),
+ texifier,
+ None,
+ buf)
+ paperdoorknob.process(spec)