1 # -*- coding: utf-8 -*-
 
   3 # This file is part of FNP-Redakcja, licensed under GNU Affero GPLv3 or later.
 
   4 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 
   6 """Tests for galleries of scans."""
 
   8 from os.path import join, basename, exists
 
   9 from os import makedirs, listdir
 
  10 from django.test import TestCase
 
  11 from django.contrib.auth.models import User
 
  12 from catalogue.models import Book
 
  13 from tempfile import mkdtemp
 
  14 from django.conf import settings
 
  17 class GalleryAppendTests(TestCase):
 
  19         self.user = User.objects.create(username='tester')
 
  20         self.book1 = Book.create(self.user, 'book 1', slug='book1')
 
  21         self.book1.chunk_set.create(number=2, title='Second chunk', slug='book 1 / 2')
 
  25         self.scandir = join(settings.MEDIA_ROOT, settings.IMAGE_DIR)
 
  26         if not exists(self.scandir):
 
  27             makedirs(self.scandir)
 
  29     def make_gallery(self, book, files):
 
  30         d = mkdtemp('gallery', dir=self.scandir)
 
  31         for named, cont in files.items():
 
  32             f = open(join(d, named), 'w')
 
  35         book.gallery = basename(d)
 
  37     def test_both_indexed(self):
 
  38         self.book2 = Book.create(self.user, 'book 2', slug='book2')
 
  39         self.book2.chunk_set.create(number=2, title='Second chunk of second book', slug='book 2 / 2')
 
  45         print "gallery starts:", self.book2[0].gallery_start, self.book2[1].gallery_start
 
  47         self.make_gallery(self.book1, {
 
  54         self.make_gallery(self.book2, {
 
  55             '1-0001_1l': 'dd',  # the same, should not be moved
 
  61         self.book1.append(self.book2)
 
  63         files = listdir(join(self.scandir, self.book1.gallery))
 
  66         self.assertEqual(files, [
 
  77         self.assertEqual((4, 6), (self.book1[2].gallery_start, self.book1[3].gallery_start))
 
  79     def test_none_indexed(self):
 
  80         self.book2 = Book.create(self.user, 'book 2', slug='book2')
 
  81         self.make_gallery(self.book1, {
 
  88         self.make_gallery(self.book2, {
 
  95         self.book1.append(self.book2)
 
  97         files = listdir(join(self.scandir, self.book1.gallery))
 
 100         self.assertEqual(files, [
 
 111     def test_none_indexed2(self):
 
 112         self.book2 = Book.create(self.user, 'book 2', slug='book2')
 
 113         self.make_gallery(self.book1, {
 
 120         self.make_gallery(self.book2, {
 
 127         self.book1.append(self.book2)
 
 129         files = listdir(join(self.scandir, self.book1.gallery))
 
 132         self.assertEqual(files, [