# -*- 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.
+#
+from os import path
-from datetime import datetime
-
+from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import TestCase
-from django.utils import simplejson as json
-from django.conf import settings
+from django.test.utils import override_settings
+import json
-from api.helpers import timestamp
from catalogue.models import Book, Tag
-
-
+from picture.forms import PictureImportForm
+from picture.models import Picture
+import picture.tests
+
+
+@override_settings(
+ API_WAIT=-1,
+ NO_SEARCH_INDEX = True,
+ CACHES = {'api': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'},
+ 'default': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'},
+ 'permanent': {'BACKEND': 'django.core.cache.backends.dummy.DummyCache'}}
+)
class ApiTest(TestCase):
-
- def setUp(self):
- self.old_api_wait = settings.API_WAIT
- settings.API_WAIT = -1
-
- def tearDown(self):
- settings.API_WAIT = self.old_api_wait
+ pass
class ChangesTest(ApiTest):
book.save()
changes = json.loads(self.client.get('/api/changes/0.json?book_fields=title&tag_fields=name').content)
- self.assertEqual(changes['updated']['books'],
+ self.assertEqual(changes['updated']['books'],
[{'id': book.id, 'title': book.title}],
'Invalid book format in changes')
- self.assertEqual(changes['updated']['tags'],
+ self.assertEqual(changes['updated']['tags'],
[{'id': tag.id, 'name': tag.name}],
'Invalid tag format in changes')
def setUp(self):
self.tag = Tag.objects.create(category='author', slug='joe', name='Joe')
+ self.book = Book.objects.create(title='A Book', slug='a-book')
+ self.book.tags = [self.tag]
+ self.book.save()
def test_tag_list(self):
tags = json.loads(self.client.get('/api/authors/').content)
tag = json.loads(self.client.get('/api/authors/joe/').content)
self.assertEqual(tag['name'], self.tag.name,
'Wrong tag details.')
+
+
+class PictureTests(ApiTest):
+ def test_publish(self):
+ slug = "kandinsky-composition-viii"
+ xml = SimpleUploadedFile('composition8.xml', open(path.join(picture.tests.__path__[0], "files", slug + ".xml")).read())
+ img = SimpleUploadedFile('kompozycja-8.png', open(path.join(picture.tests.__path__[0], "files", slug + ".png")).read())
+
+ import_form = PictureImportForm({}, {
+ 'picture_xml_file': xml,
+ 'picture_image_file': img
+ })
+
+ assert import_form.is_valid()
+ if import_form.is_valid():
+ import_form.save()
+
+ Picture.objects.get(slug=slug)