Fundraising in PDF.
[wolnelektury.git] / src / catalogue / tests / test_book_import.py
index 9fdb298..f38aea8 100644 (file)
@@ -1,6 +1,5 @@
-# -*- coding: utf-8 -*-
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
 #
 from django.core.files.base import ContentFile
 from catalogue.test_utils import *
@@ -15,21 +14,21 @@ class BookImportLogicTests(WLTestCase):
     def setUp(self):
         WLTestCase.setUp(self)
         self.book_info = BookInfoStub(
-            url=WLURI.from_slug(u"default-book"),
-            about=u"http://wolnelektury.pl/example/URI/default_book",
-            title=u"Default Book",
+            url=WLURI("default-book"),
+            about="http://wolnelektury.pl/example/URI/default_book",
+            title="Default Book",
             author=PersonStub(("Jim",), "Lazy"),
             kind="X-Kind",
             genre="X-Genre",
             epoch="X-Epoch",
-            language=u"pol",
+            language="pol",
         )
 
         self.expected_tags = [
-           ('author', 'jim-lazy'),
-           ('genre', 'x-genre'),
-           ('epoch', 'x-epoch'),
-           ('kind', 'x-kind'),
+            ('author', 'jim-lazy'),
+            ('genre', 'x-genre'),
+            ('epoch', 'x-epoch'),
+            ('kind', 'x-kind'),
         ]
         self.expected_tags.sort()
 
@@ -40,7 +39,7 @@ class BookImportLogicTests(WLTestCase):
 
         self.assertEqual(book.title, "Default Book")
         self.assertEqual(book.slug, "default-book")
-        self.assert_(book.parent is None)
+        self.assertTrue(book.parent is None)
         self.assertFalse(book.has_html_file())
 
         # no fragments generated
@@ -84,9 +83,9 @@ class BookImportLogicTests(WLTestCase):
         self.assertTrue(book.has_html_file())
 
         self.assertEqual(book.fragments.count(), 1)
-        self.assertEqual(book.fragments.all()[0].text, u'<p class="paragraph">Ala ma kota</p>\n')
+        self.assertEqual(book.fragments.all()[0].text, '<p class="paragraph">Ala ma kota</p>\n')
 
-        self.assert_(('theme', 'love') in [(tag.category, tag.slug) for tag in book.fragments.all()[0].tags])
+        self.assertTrue(('theme', 'love') in [(tag.category, tag.slug) for tag in book.fragments.all()[0].tags])
 
     def test_book_with_empty_theme(self):
         """ empty themes should be ignored """
@@ -98,8 +97,14 @@ class BookImportLogicTests(WLTestCase):
         """
 
         book = models.Book.from_text_and_meta(ContentFile(book_text), self.book_info)
-        self.assert_([('theme', 'love')],
-                     book.fragments.all()[0].tags.filter(category='theme').values_list('category', 'slug'))
+        self.assertEqual(
+            [('theme', 'love')],
+            list(
+                book.fragments.all()[0].tags.filter(
+                    category='theme'
+                ).values_list('category', 'slug')
+            )
+        )
 
     def test_book_with_no_theme(self):
         """ fragments with no themes shouldn't be created at all """
@@ -116,7 +121,7 @@ class BookImportLogicTests(WLTestCase):
 
     def test_book_with_invalid_slug(self):
         """ Book with invalid characters in slug shouldn't be imported """
-        self.book_info.url = WLURI.from_slug(u"default_book")
+        self.book_info.url = WLURI("default_book")
         book_text = "<utwor />"
         with self.assertRaises(ValueError):
             models.Book.from_text_and_meta(ContentFile(book_text), self.book_info)
@@ -124,7 +129,7 @@ class BookImportLogicTests(WLTestCase):
     def test_book_replace_title(self):
         book_text = """<utwor />"""
         models.Book.from_text_and_meta(ContentFile(book_text), self.book_info)
-        self.book_info.title = u"Extraordinary"
+        self.book_info.title = "Extraordinary"
         book = models.Book.from_text_and_meta(ContentFile(book_text), self.book_info, overwrite=True)
 
         tags = [(tag.category, tag.slug) for tag in book.tags]
@@ -181,10 +186,10 @@ class BookImportLogicTests(WLTestCase):
         self.book_info.epochs = self.book_info.epoch, 'Y-Epoch',
 
         self.expected_tags.extend([
-           ('author', 'joe-dilligent'),
-           ('genre', 'y-genre'),
-           ('epoch', 'y-epoch'),
-           ('kind', 'y-kind'),
+            ('author', 'joe-dilligent'),
+            ('genre', 'y-genre'),
+            ('epoch', 'y-epoch'),
+            ('kind', 'y-kind'),
         ])
         self.expected_tags.sort()
 
@@ -288,16 +293,16 @@ class TreeImportTest(WLTestCase):
 
     def test_ok(self):
         self.assertEqual(
-                list(self.client.get('/katalog/gatunek/x-genre/').context['object_list']),
-                [self.parent],
-                u"There should be only parent on common tag page."
-            )
+            list(self.client.get('/katalog/gatunek/x-genre/').context['object_list']),
+            [self.parent],
+            "There should be only parent on common tag page."
+        )
         # pies = models.Tag.objects.get(slug='pies')
         themes = self.parent.related_themes()
-        self.assertEqual(len(themes), 1, u"There should be child theme in parent theme counter.")
+        self.assertEqual(len(themes), 1, "There should be child theme in parent theme 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.")
+        # self.assertEqual(epoch.book_count, 1, "There should be only parent in common tag's counter.")
 
     def test_child_republish(self):
         child_text = """<utwor>
@@ -309,17 +314,17 @@ class TreeImportTest(WLTestCase):
         models.Book.from_text_and_meta(
             ContentFile(child_text), self.child_info, overwrite=True)
         self.assertEqual(
-                list(self.client.get('/katalog/gatunek/x-genre/').context['object_list']),
-                [self.parent],
-                u"There should only be parent on common tag page."
-            )
+            list(self.client.get('/katalog/gatunek/x-genre/').context['object_list']),
+            [self.parent],
+            "There should only be parent on common tag page."
+        )
         # pies = models.Tag.objects.get(slug='pies')
         # kot = models.Tag.objects.get(slug='kot')
         self.assertEqual(len(self.parent.related_themes()), 2,
-                         u"There should be child themes in parent theme counter.")
+                         "There should be child themes in parent theme 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.")
+        # self.assertEqual(epoch.book_count, 1, "There should only be parent in common tag's counter.")
 
     def test_book_change_child(self):
         second_child_info = BookInfoStub(
@@ -346,31 +351,31 @@ class TreeImportTest(WLTestCase):
         self.assertEqual(
             set(self.client.get('/katalog/gatunek/x-genre/').context['object_list']),
             {self.parent, self.child},
-            u"There should be parent and old child on common tag page."
+            "There should be parent and old child on common tag page."
         )
         # kot = models.Tag.objects.get(slug='kot')
         self.assertEqual(len(self.parent.related_themes()), 1,
-                         u"There should only be new child themes in parent theme counter.")
+                         "There should only be new child themes in parent theme counter.")
         # # book_count deprecated, update test.
         # 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.")
+        #                  "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']),
             [second_child.fragments.all()[0]],
-            u"There should be new child's fragments on parent's theme page."
+            "There should be new child's fragments on parent's theme page."
         )
         self.assertEqual(
             list(self.client.get('/katalog/lektura/parent/motyw/pies/').context['fragments']),
             [],
-            u"There should be no old child's fragments on parent's theme page."
+            "There should be no old child's fragments on parent's theme page."
         )
 
 
 class MultilingualBookImportTest(WLTestCase):
     def setUp(self):
         WLTestCase.setUp(self)
-        common_uri = WLURI.from_slug('common-slug')
+        common_uri = WLURI('common-slug')
 
         self.pol_info = BookInfoStub(
             genre='X-Genre',
@@ -378,7 +383,7 @@ class MultilingualBookImportTest(WLTestCase):
             kind='X-Kind',
             author=PersonStub(("Joe",), "Doe"),
             variant_of=common_uri,
-            **info_args(u"Książka")
+            **info_args("Książka")
         )
 
         self.eng_info = BookInfoStub(
@@ -397,7 +402,7 @@ class MultilingualBookImportTest(WLTestCase):
         models.Book.from_text_and_meta(ContentFile(book_text), self.eng_info)
 
         self.assertEqual(
-            set([b.language for b in models.Book.objects.all()]),
+            {b.language for b in models.Book.objects.all()},
             {'pol', 'eng'},
             'Books imported in wrong languages.'
         )