]> git.scottworley.com Git - paperdoorknob/blobdiff - paperdoorknob_test.py
Put Texifier in spec
[paperdoorknob] / paperdoorknob_test.py
index a0aeb21a889b6b3bab97f23ad8d374a12d37c46b..28408d6138003d0ce616bc0e034cb9f9d52a250f 100644 (file)
@@ -8,14 +8,14 @@
 from abc import ABC, abstractmethod
 import unittest
 import io
 from abc import ABC, abstractmethod
 import unittest
 import io
+import re
 import subprocess
 
 import paperdoorknob
 
 from testing.fakeserver import FakeGlowficServer
 import subprocess
 
 import paperdoorknob
 
 from testing.fakeserver import FakeGlowficServer
-from domfilter import ApplyDOMFilters
 from fetch import DirectFetcher, FakeFetcher, Fetcher
 from fetch import DirectFetcher, FakeFetcher, Fetcher
-from glowfic import ContentOnlyLayout, BelowIconLayout
+from glowfic import ContentOnlyLayout, BesideIconLayout
 from images import FakeImageStore
 from spec import Spec
 from texify import DirectTexifier, PandocTexifier, VerifyingTexifier
 from images import FakeImageStore
 from spec import Spec
 from texify import DirectTexifier, PandocTexifier, VerifyingTexifier
@@ -35,26 +35,33 @@ class BaseTestProcess(ABC):
 
     def testProcess(self) -> None:
         buf = io.BytesIO()
 
     def testProcess(self) -> None:
         buf = io.BytesIO()
+        texifier = PandocTexifier('pandoc')
         spec = Spec(
             self.url(),
             self.fetcher(),
             FakeImageStore(),
             lambda x: x,
         spec = Spec(
             self.url(),
             self.fetcher(),
             FakeImageStore(),
             lambda x: x,
-            lambda x: ApplyDOMFilters('NoEdit,NoFooter', x),
-            ContentOnlyLayout(PandocTexifier('pandoc')),
+            lambda x: None,
+            texifier,
+            lambda x: x,
+            20,
+            ContentOnlyLayout(texifier),
             'margin=20mm',
             'margin=20mm',
-            buf)
+            buf,
+            lambda _: None)
         paperdoorknob.process(spec)
         paperdoorknob.process(spec)
-        assert buf.getvalue() == b'''\\documentclass{article}
-\\usepackage{graphicx}
-\\usepackage{wrapfig}
-\\usepackage[margin=20mm]{geometry}
+        assert re.match(br'''\\documentclass{article}
+(\\usepackage{[a-z]+}\n)+\\usepackage\[margin=20mm\]{geometry}
 \\begin{document}
 \\begin{document}
-This is glowfic
-You \\emph{sure}?
+(.|\n)*
+This is \\href{https://glowfic.com}{glowfic}
+
+You \\emph{sure}\?
+
 Pretty sure.
 Pretty sure.
+
 \\end{document}
 \\end{document}
-'''
+''', buf.getvalue())
 
     def testDirectTexifier(self) -> None:
         texifier = VerifyingTexifier(
 
     def testDirectTexifier(self) -> None:
         texifier = VerifyingTexifier(
@@ -65,23 +72,32 @@ Pretty sure.
             self.fetcher(),
             FakeImageStore(),
             lambda x: x,
             self.fetcher(),
             FakeImageStore(),
             lambda x: x,
-            lambda x: ApplyDOMFilters('NoEdit,NoFooter', x),
+            lambda x: None,
+            texifier,
+            lambda x: x,
+            20,
             ContentOnlyLayout(texifier),
             None,
             ContentOnlyLayout(texifier),
             None,
-            buf)
+            buf,
+            lambda _: None)
         paperdoorknob.process(spec)
 
     def testPDF(self) -> None:
         paperdoorknob.process(spec)
 
     def testPDF(self) -> None:
+        texifier = PandocTexifier('pandoc')
         with open("test.tex", 'wb') as out:
             spec = Spec(
                 self.url(),
                 self.fetcher(),
                 FakeImageStore(),
                 lambda x: x,
         with open("test.tex", 'wb') as out:
             spec = Spec(
                 self.url(),
                 self.fetcher(),
                 FakeImageStore(),
                 lambda x: x,
-                lambda x: ApplyDOMFilters('NoEdit,NoFooter', x),
-                BelowIconLayout(PandocTexifier('pandoc'), 20),
+                lambda x: None,
+                texifier,
+                lambda x: x,
+                20,
+                BesideIconLayout(texifier),
                 None,
                 None,
-                out)
+                out,
+                lambda _: None)
             paperdoorknob.process(spec)
         subprocess.run(['pdflatex', 'test.tex'],
                        stdin=subprocess.DEVNULL, check=True)
             paperdoorknob.process(spec)
         subprocess.run(['pdflatex', 'test.tex'],
                        stdin=subprocess.DEVNULL, check=True)
@@ -108,7 +124,7 @@ class TestProcessFromFakeFetcher(BaseTestProcess, unittest.TestCase):
 
     def fetcher(self) -> Fetcher:
         with open('testdata/this-is-glowfic.html', 'rb') as f:
 
     def fetcher(self) -> Fetcher:
         with open('testdata/this-is-glowfic.html', 'rb') as f:
-            return FakeFetcher({'fic': f.read(9999)})
+            return FakeFetcher({'fic?view=flat': f.read(9999)})
 
 
 if __name__ == '__main__':
 
 
 if __name__ == '__main__':