Esempio n. 1
0
    def test_manga_edit_form_tags(self):
        authors = Tag.objects.filter(tag_type=TagType.AUTHOR)
        circles = Tag.objects.filter(tag_type=TagType.CIRCLE)
        content = Tag.objects.filter(tag_type=TagType.CONTENT)
        events = Tag.objects.filter(tag_type=TagType.EVENT)
        magazines = Tag.objects.filter(tag_type=TagType.MAGAZINE)
        parodies = Tag.objects.filter(tag_type=TagType.PARODY)
        scanlators = Tag.objects.filter(tag_type=TagType.SCANLATOR)

        form = MangaEditForm(request=self.request, instance=self.manga, data={
            'title': 'Test Manga Title',
            'category': MangaCategory.VANILLA,
            'language': Language.ENGLISH,
            'authors': ', '.join([t.name for t in authors]),
            'circles': ', '.join([t.name for t in circles]),
            'content': ', '.join([t.name for t in content]),
            'events': ', '.join([t.name for t in events]),
            'magazines': ', '.join([t.name for t in magazines]),
            'parodies': ', '.join([t.name for t in parodies]),
            'scanlators': ', '.join([t.name for t in scanlators]),
            'action': 'save',
        })
        self.assertTrue(form.is_valid())
        form.save()

        manga = Manga.objects.get(id=self.manga.id)
        tag_dictionary = manga.tag_dictionary

        self.assertEqual(set(tag_dictionary[TagType.AUTHOR]), set(authors))
        self.assertEqual(set(tag_dictionary[TagType.CIRCLE]), set(circles))
        self.assertEqual(set(tag_dictionary[TagType.CONTENT]), set(content))
        self.assertEqual(set(tag_dictionary[TagType.EVENT]), set(events))
        self.assertEqual(set(tag_dictionary[TagType.MAGAZINE]), set(magazines))
        self.assertEqual(set(tag_dictionary[TagType.PARODY]), set(parodies))
        self.assertEqual(set(tag_dictionary[TagType.SCANLATOR]), set(scanlators))
Esempio n. 2
0
    def test_manga_edit_form_tank_and_collection(self):
        tank = Tag.objects.filter(tag_type=TagType.TANK)[0]
        collection = Tag.objects.filter(tag_type=TagType.COLLECTION)[0]
        form = MangaEditForm(request=self.request, instance=self.manga, data={
            'title': 'Test Manga Title',
            'category': MangaCategory.VANILLA,
            'language': Language.ENGLISH,
            'tank': tank.name,
            'tank_chapter': '2',
            'collection': collection.name,
            'collection_part': '3',
            'action': 'save',
        })
        self.assertTrue(form.is_valid())
        form.save()

        manga = Manga.objects.get(id=self.manga.id)
        self.assertEqual(manga.tank, tank)
        self.assertEqual(manga.tank_chapter, '2')
        self.assertEqual(manga.collection, collection)
        self.assertEqual(manga.collection_part, '3')

        form = MangaEditForm(request=self.request, instance=manga)
        self.assertEqual(form.fields['tank'].initial, tank.name)
        self.assertEqual(form.fields['tank_chapter'].initial, '2')
        self.assertEqual(form.fields['collection'].initial, collection.name)
        self.assertEqual(form.fields['collection_part'].initial, '3')
Esempio n. 3
0
 def test_manga_edit_form_tag_limit(self):
     form = MangaEditForm(request=self.request, instance=self.manga, data={
         'title': 'Test Manga Title',
         'category': MangaCategory.VANILLA,
         'language': Language.ENGLISH,
         'authors': ', '.join(['Author {}'.format(i) for i in range(100)]),
         'action': 'save',
     })
     self.assertFalse(form.is_valid())
     self.assertEqual(form.errors['__all__'], ['Exceeded maximum number of allowed tags that can be assigned.'])
Esempio n. 4
0
    def test_manga_edit_form_publish_no_page(self):
        self.manga.mangapage_set.all().delete()
        self.manga.status = MangaStatus.DRAFT
        self.manga.save(updated_by=self.user)

        form = MangaEditForm(request=self.request, instance=self.manga, data={
            'action': 'publish',
        })
        self.assertFalse(form.is_valid())
        self.assertEqual(form.errors['action'], ['Please upload at least one image before publishing.'])
Esempio n. 5
0
    def test_manga_edit_form_markdown_utf8(self):
        form = MangaEditForm(request=self.request, instance=self.manga, data={
            'title': self.manga.title,
            'category': self.manga.category,
            'language': self.manga.language,
            'markdown': '北京',
            'action': 'save',
        })
        self.assertTrue(form.is_valid())
        form.save()

        manga = Manga.objects.get(id=self.manga.id)
        self.assertEqual(manga.markdown, '北京')
Esempio n. 6
0
    def test_manga_edit_form_publish(self):
        self.manga.status = MangaStatus.DRAFT
        self.manga.published_on = None
        self.manga.save(updated_by=self.user)

        form = MangaEditForm(request=self.request, instance=self.manga, data={
            'title': 'Test Manga Title',
            'category': MangaCategory.VANILLA,
            'language': Language.ENGLISH,
            'action': 'publish',
        })
        self.assertTrue(form.is_valid())
        form.save()

        manga = Manga.objects.get(id=self.manga.id)
        self.assertEqual(manga.status, MangaStatus.PUBLISHED)
        self.assertTrue(manga.published_on)
Esempio n. 7
0
 def test_manga_edit_form_no_changes(self):
     data = {
         'title':        self.manga.title,
         'category':     self.manga.category,
         'language':     self.manga.language,
         'markdown':     self.manga.markdown,
         'authors':      ', '.join([t.name for t in self.manga.tag_dictionary[TagType.AUTHOR]]),
         'circles':      ', '.join([t.name for t in self.manga.tag_dictionary[TagType.CIRCLE]]),
         'content':      ', '.join([t.name for t in self.manga.tag_dictionary[TagType.CONTENT]]),
         'events':       ', '.join([t.name for t in self.manga.tag_dictionary[TagType.EVENT]]),
         'magazines':    ', '.join([t.name for t in self.manga.tag_dictionary[TagType.MAGAZINE]]),
         'parodies':     ', '.join([t.name for t in self.manga.tag_dictionary[TagType.PARODY]]),
         'scanlators':   ', '.join([t.name for t in self.manga.tag_dictionary[TagType.SCANLATOR]]),
         'action':       'save',
     }
     form = MangaEditForm(request=self.request, instance=self.manga, data=data)
     self.assertTrue(form.is_valid())
     form.save()
Esempio n. 8
0
    def test_manga_edit_form_cover_update(self):
        self.manga.cover = SimpleUploadedFile('test1.jpg', self.create_test_image_file().getvalue())
        self.manga.save(self.user)
        old_cover = self.manga.cover.file.read()

        form = MangaEditForm(request=self.request, instance=self.manga, data={
            'title': 'Test Manga Title',
            'category': MangaCategory.VANILLA,
            'language': Language.ENGLISH,
            'action': 'save',
        }, files={
            'cover': SimpleUploadedFile('test2.jpg', self.create_test_image_file(format='JPEG').getvalue())
        })
        self.assertTrue(form.is_valid())
        form.save()

        manga = Manga.objects.get(id=self.manga.id)
        self.assertNotEqual(old_cover, manga.cover.file.read())
Esempio n. 9
0
    def post(self, request, id, slug):
        manga = self.get_manga_for_edit(id)

        if request.POST.get('action') == MangaAction.DELETE:
            manga.delete(updated_by=request.user)
            return redirect('upload.list')

        form = MangaEditForm(request=request, instance=manga, data=request.POST, files=request.FILES)
        if form.is_valid():
            manga = form.save()
            messages.success(request, _('{} has been updated').format(manga.title))
            for message in form.messages:
                messages.info(request, message)
            return redirect('manga.edit', id=id, slug=manga.slug)

        messages.error(request, _('{} has not been updated. Please fix the errors on the page and try again.').format(manga.title))
        return self.render_to_response({
            'manga': manga,
            'form': form,
        })
Esempio n. 10
0
    def test_manga_edit_form_basic(self):
        self.manga.tank = Tag.objects.filter(tag_type=TagType.TANK)[0]
        self.manga.tank_chapter = '1'
        self.manga.save(updated_by=self.user)

        form = MangaEditForm(request=self.request, instance=self.manga, data={
            'title': 'Test Manga Title',
            'category': MangaCategory.VANILLA,
            'language': Language.ENGLISH,
            'action': 'save',
        })
        self.assertTrue(form.is_valid())
        manga = form.save()

        self.assertEqual(manga.category, MangaCategory.VANILLA)
        self.assertEqual(manga.language, Language.ENGLISH)
        self.assertEqual(manga.title, 'Test Manga Title')
        self.assertFalse(manga.tank)
        self.assertFalse(manga.tank_chapter)
        self.assertFalse(manga.collection)
        self.assertFalse(manga.collection_part)
Esempio n. 11
0
 def test_manga_edit_form_already_published(self):
     form = MangaEditForm(request=self.request, instance=self.manga, data={
         'action': 'publish',
     })
     self.assertFalse(form.is_valid())
     self.assertEqual(form.errors['action'], ['This upload cannot be published.'])