fix test for custom pdf file generation
[wolnelektury.git] / apps / catalogue / tests / book_import.py
index 29be731..f4588d1 100644 (file)
@@ -7,7 +7,7 @@ from catalogue import models
 
 from nose.tools import raises
 import tempfile
-from os import unlink,path
+from os import unlink, path, makedirs
 
 class BookImportLogicTests(WLTestCase):
 
@@ -211,6 +211,15 @@ class ChildImportTests(WLTestCase):
             **info_args("Parent")
         )
 
+    def test_child(self):
+        TEXT = """<utwor />"""
+        child = models.Book.from_text_and_meta(ContentFile(TEXT), self.child_info)
+        parent = models.Book.from_text_and_meta(ContentFile(TEXT), self.parent_info)
+        author = parent.tags.get(category='author')
+        books = self.client.get(author.get_absolute_url()).context['object_list']
+        self.assertEqual(len(books), 1,
+                        "Only parent book should be visible on author's page")
+
     def test_child_replace(self):
         PARENT_TEXT = """<utwor />"""
         CHILD_TEXT = """<utwor>
@@ -236,32 +245,26 @@ class ChildImportTests(WLTestCase):
 class BookImportGenerateTest(WLTestCase):
     def setUp(self):
         WLTestCase.setUp(self)
-        self.book_info = BookInfoStub(
-            url=u"http://wolnelektury.pl/example/default-book",
-            about=u"http://wolnelektury.pl/example/URI/default_book",
-            title=u"Default Book",
-            author=PersonStub(("Jim",), "Lazy"),
-            kind="X-Kind",
-            genre="X-Genre",
-            epoch="X-Epoch",
-        )
-
-        self.expected_tags = [
-           ('author', 'jim-lazy'),
-           ('genre', 'x-genre'),
-           ('epoch', 'x-epoch'),
-           ('kind', 'x-kind'),
-        ]
-        self.expected_tags.sort()
+        input = path.join(path.dirname(__file__), 'files/fraszka-do-anusie.xml')
+        self.book = models.Book.from_xml_file(input)
 
     def test_gen_pdf(self):
-        input = open(path.dirname(__file__) + '/but-w-butonierce-but-w-butonierce.xml')
-        book = models.Book.from_text_and_meta(File(input), self.book_info, overwrite=True)
-        book.build_pdf()
-        self.assertTrue(path.exists(book.pdf_file.path))
-
-    def test_gen_pdf_child(self):
-        input = open(path.dirname(__file__) + "/fraszka-do-anusie.xml")
-        book = models.Book.from_text_and_meta(File(input), self.book_info, overwrite=True)
-        book.build_pdf()
-        self.assertTrue(path.exists(book.pdf_file.path))
+        self.book.build_pdf()
+        self.assertTrue(path.exists(self.book.pdf_file.path))
+
+    def test_gen_pdf_parent(self):
+        """This book contains a child."""
+        input = path.join(path.dirname(__file__), "files/fraszki.xml")
+        parent = models.Book.from_xml_file(input)
+        parent.build_pdf()
+        self.assertTrue(path.exists(parent.pdf_file.path))
+
+    def test_custom_pdf(self):
+        out = models.get_dynamic_path(None, 'test-custom', ext='pdf')
+        absoulute_path = path.join(settings.MEDIA_ROOT, out)
+        
+        if not path.exists(path.dirname(absoulute_path)):
+            makedirs(path.dirname(absoulute_path))
+
+        self.book.build_pdf(customizations=['nofootnotes', '13pt', 'a4paper'], file_name=out)
+        self.assertTrue(path.exists(absoulute_path))