X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/80d3980873a2c07121f466c187de92be1cea8415..47ff15cf19df5bb0c4790407019880b4d039cb42:/apps/api/tests.py diff --git a/apps/api/tests.py b/apps/api/tests.py index 41df4c6b0..5a981a26a 100644 --- a/apps/api/tests.py +++ b/apps/api/tests.py @@ -8,6 +8,14 @@ from django.conf import settings from api.helpers import timestamp from catalogue.models import Book, Tag +from picture.tests.utils import RequestFactory +from picture.forms import PictureImportForm +from picture.models import Picture, picture_storage +import picture.tests +from django.core.files.uploadedfile import SimpleUploadedFile + + +from os import path class ApiTest(TestCase): @@ -60,7 +68,6 @@ class BookChangesTests(ApiTest): def test_shelf(self): changed_at = self.book.changed_at - print changed_at # putting on a shelf should not update changed_at shelf = Tag.objects.create(category='set', slug='shelf') @@ -90,3 +97,68 @@ class TagChangesTests(ApiTest): changes = json.loads(self.client.get('/api/tag_changes/0.json').content) self.assertEqual(len(changes), 1, 'Empty or deleted tag should disappear.') + + + +class BookTests(TestCase): + + def setUp(self): + self.tag = Tag.objects.create(category='author', slug='joe') + self.book = Book.objects.create(title='A Book', slug='a-book') + self.book_tagged = Book.objects.create(title='Tagged Book', slug='tagged-book') + self.book_tagged.tags = [self.tag] + self.book_tagged.save() + + def test_book_list(self): + books = json.loads(self.client.get('/api/books/').content) + self.assertEqual(len(books), 2, + 'Wrong book list.') + + def test_tagged_books(self): + books = json.loads(self.client.get('/api/authors/joe/books/').content) + + self.assertEqual([b['title'] for b in books], [self.book_tagged.title], + 'Wrong tagged book list.') + + def test_detail(self): + book = json.loads(self.client.get('/api/books/a-book/').content) + self.assertEqual(book['title'], self.book.title, + 'Wrong book details.') + + +class TagTests(TestCase): + + 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) + self.assertEqual(len(tags), 1, + 'Wrong tag list.') + + def test_tag_detail(self): + 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() + + pic = Picture.objects.get(slug=slug) +