def test_process_images(self): initial_page_count = MangaPage.objects.filter(manga=self.manga).count() content = self.create_test_image_file().getvalue() file1 = SimpleUploadedFile('test1.png', content) file2 = SimpleUploadedFile('test2.png', content) errors = process_images(self.manga, [file1, file2], self.user) self.assertEqual([], errors) actual_page_count = MangaPage.objects.filter(manga=self.manga).count() self.assertEqual(initial_page_count+2, actual_page_count)
def post(self, request, id, slug): manga = self.get_manga_for_edit(id) if 'zipfile' in request.FILES: errors = process_zipfile(manga, request.FILES.get('zipfile'), request.user) elif 'images' in request.FILES: errors = process_images(manga, request.FILES.getlist('images', []), request.user) else: raise Http404 if errors: messages.error(request, '\n'.join(errors)) return redirect('manga.edit.images', id=manga.id, slug=manga.slug)
def test_process_images_page_limit(self): mp_list = [] for i in range(1, MANGA_PAGE_LIMIT+1): mp_list.append(MangaPage( manga=self.manga, page=i, name='{}.jpg'.format(i), double=False, )) MangaPage.objects.bulk_create(mp_list) file = SimpleUploadedFile('test.jpg', b'content of image') errors = process_images(self.manga, [file], self.user) self.assertEqual(errors, ['There are currently 100 images; All other uploaded image files were ignored.'])
def test_process_images_unsupported_format(self): image_file = self.create_test_image_file(format='GIF') file = SimpleUploadedFile('test.gif', image_file.getvalue()) errors = process_images(self.manga, [file], self.user) self.assertEqual(errors, ['test.gif is not a supported image type.'])
def test_process_images_max_dimensions(self): image_file = self.create_test_image_file(width=8001, height=1200, format='JPEG') file = SimpleUploadedFile('test.jpg', image_file.getvalue()) errors = process_images(self.manga, [file], self.user) self.assertEqual(errors, ['test.jpg is larger than 8000x8000 pixels.'])
def test_process_images_invalid_image(self): file_content = '0' file = SimpleUploadedFile('test.jpg', bytes(file_content, 'utf-8')) errors = process_images(self.manga, [file], self.user) self.assertEqual(errors, ['test.jpg failed to verify as an image file.'])
def test_process_images_max_file_size(self): file_content = '0' * (MAX_IMAGE_FILE_SIZE+1) file = SimpleUploadedFile('test.jpg', bytes(file_content, 'utf-8')) errors = process_images(self.manga, [file], self.user) self.assertEqual(errors, ['test.jpg is over 10MB in size.'])
def test_process_image_empty(self): self.assertEqual([], process_images(self.manga, [], self.user))