transaction.atomic in importbooks
[wolnelektury.git] / apps / catalogue / tests / book_import.py
index 09d0e1e..775fc29 100644 (file)
@@ -1,7 +1,10 @@
 # -*- coding: utf-8 -*-
-from __future__ import with_statement
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
+from django.conf import settings
 
-from django.core.files.base import ContentFile, File
+from django.core.files.base import ContentFile
 from catalogue.test_utils import *
 from catalogue import models
 from librarian import WLURI
@@ -115,7 +118,7 @@ class BookImportLogicTests(WLTestCase):
         """ Book with invalid characters in slug shouldn't be imported """
         self.book_info.url = WLURI.from_slug(u"default_book")
         BOOK_TEXT = "<utwor />"
-        book = models.Book.from_text_and_meta(ContentFile(BOOK_TEXT), self.book_info)
+        models.Book.from_text_and_meta(ContentFile(BOOK_TEXT), self.book_info)
 
     def test_book_replace_title(self):
         BOOK_TEXT = """<utwor />"""
@@ -292,13 +295,15 @@ class TreeImportTest(WLTestCase):
                 u"There should be only parent on common tag page."
             )
         pies = models.Tag.objects.get(slug='pies')
-        self.assertEqual(self.parent.theme_counter, {pies.pk: 1},
+        themes = self.parent.related_themes()
+        self.assertEqual(len(themes), 1,
                 u"There should be child theme in parent theme counter."
             )
-        epoch = models.Tag.objects.get(slug='x-epoch')
-        self.assertEqual(epoch.book_count, 1,
-                u"There should be only parent in common tag's counter."
-            )
+        # TODO: book_count is deprecated, update here.
+        #~ epoch = models.Tag.objects.get(slug='x-epoch')
+        #~ self.assertEqual(epoch.book_count, 1,
+                #~ u"There should be only parent in common tag's counter."
+            #~ )
 
     def test_child_republish(self):
         CHILD_TEXT = """<utwor>
@@ -317,13 +322,14 @@ class TreeImportTest(WLTestCase):
             )
         pies = models.Tag.objects.get(slug='pies')
         kot = models.Tag.objects.get(slug='kot')
-        self.assertEqual(self.parent.theme_counter, {pies.pk: 1, kot.pk: 1},
+        self.assertEqual(len(self.parent.related_themes()), 2,
                 u"There should be child themes in parent theme counter."
             )
-        epoch = models.Tag.objects.get(slug='x-epoch')
-        self.assertEqual(epoch.book_count, 1,
-                u"There should only be parent in common tag's counter."
-            )
+        # TODO: book_count is deprecated, update here.
+        #~ epoch = models.Tag.objects.get(slug='x-epoch')
+        #~ self.assertEqual(epoch.book_count, 1,
+                #~ u"There should only be parent in common tag's counter."
+            #~ )
 
     def test_book_change_child(self):
         second_child_info = BookInfoStub(
@@ -354,13 +360,14 @@ class TreeImportTest(WLTestCase):
                 u"There should be parent and old child on common tag page."
             )
         kot = models.Tag.objects.get(slug='kot')
-        self.assertEqual(self.parent.theme_counter, {kot.pk: 1},
+        self.assertEqual(len(self.parent.related_themes()), 1,
                 u"There should only be new child themes in parent theme counter."
             )
         epoch = models.Tag.objects.get(slug='x-epoch')
-        self.assertEqual(epoch.book_count, 2,
-                u"There should be parent and old child in common tag's counter."
-            )
+        # book_count deprecated, update test.
+        #~ self.assertEqual(epoch.book_count, 2,
+                #~ u"There should be parent and old child in common tag's counter."
+            #~ )
         self.assertEqual(
                 list(self.client.get('/katalog/lektura/parent/motyw/kot/'
                     ).context['fragments']),
@@ -418,7 +425,7 @@ class BookImportGenerateTest(WLTestCase):
         self.book = models.Book.from_xml_file(xml)
 
     def test_gen_pdf(self):
-        self.book.build_pdf()
+        self.book.pdf_file.build()
         book = models.Book.objects.get(pk=self.book.pk)
         self.assertTrue(path.exists(book.pdf_file.path))
 
@@ -426,16 +433,15 @@ class BookImportGenerateTest(WLTestCase):
         """This book contains a child."""
         xml = path.join(path.dirname(__file__), "files/fraszki.xml")
         parent = models.Book.from_xml_file(xml)
-        parent.build_pdf()
+        parent.pdf_file.build()
         parent = models.Book.objects.get(pk=parent.pk)
         self.assertTrue(path.exists(parent.pdf_file.path))
 
     def test_custom_pdf(self):
         from catalogue.tasks import build_custom_pdf
-        from catalogue.utils import get_dynamic_path
-        out = get_dynamic_path(None, 'test-custom', ext='pdf')
+        out = 'test-custom.pdf'
         absoulute_path = path.join(settings.MEDIA_ROOT, out)
-        
+
         if not path.exists(path.dirname(absoulute_path)):
             makedirs(path.dirname(absoulute_path))