def test_add_book_new_other_ownership(self): """Test the view adding a book to a library""" book = Book(title="Some really annoying book") book.save() existing_ownership = Ownership(owner=self.bib,book=book,copies=10) existing_ownership.save() data = { 'copies':42, } response = self.client.post(reverse('book_add_this_to_my_library',kwargs={'book_id':book.id}),data) self.assertEqual(response.status_code, 302) try: ownership = Ownership.objects.get(owner__id=self.bib.id,book__id=book.id) except Ownership.DoesNotExist: ownership = None self.assertIsNotNone(ownership) self.assertEqual(ownership.id,existing_ownership.id) self.assertRedirects(response, reverse('book_detail',args=[book.id])) response = self.client.get(reverse('book_detail',args=[book.id])) self.assertContains(response, self.bib.username.title() + " (" + str(existing_ownership.copies+data['copies']) + ")") self.client.logout()
def test_ownership_new_other_ownership(self): """Test the algorithm determining if a new ownership is necessary""" book = Book(title="Some annoying book") book.save() ownership = Ownership(book=book,owner=self.bib) existing_ownership = Ownership(book=book,owner=self.bib,copies=15) existing_ownership.save() self.assertFalse(determine_new_ownership_necessary(ownership,existing_ownership))
def test_book_remove_from_my_library_not_mine(self): book = Book(title="The Hitchhikers guide to Django Unit Tests without special caracter") book.save() book.owners.clear() ownership = Ownership(book=book,owner=self.bob) ownership.save() response = self.client.get(reverse('book_remove_from_library',kwargs={'book_id':book.id})) self.assertEqual(response.status_code, 302) self.assertRedirects(response, reverse('book_list')) self.client.logout()
def test_book_remove_from_my_library(self): book = Book(title="The Hitchhikers guide to bloblob Tests without special caracter") book.save() ownership = Ownership(book=book,owner=self.bob) ownership.save() ownership = Ownership(book=book,owner=self.bib) ownership.save() response = self.client.get(reverse('book_remove_from_library',kwargs={'book_id':book.id})) self.assertEqual(response.status_code, 200) self.assertContains(response, "Êtes-vous certain que vous souhaitez supprimer \"%(object)s\" ?" % {'object':book.title}) self.client.logout()
def form_valid(self, form): book = form.save(commit=False) book.on_shelf = self.kwargs.get('on_shelf',True) book.save() for owner in form.cleaned_data['owners']: ownership = Ownership() ownership.book = book ownership.owner = owner ownership.save() # Create a discussion onto forum. discussion = Discussion() if book.author: discussion.title = _("Discussion on %(book)s (%(author)s)") % {'author':book.author,'book':book.title} else: discussion.title = _("Discussion on %(book)s") % {'book':book.title} discussion.author = self.request.user discussion.save() messages.add_message(self.request, messages.SUCCESS, self.success_message % {'title':book.title}) if book.on_shelf: return redirect('book_detail',book_id=book.id) else: return redirect('book_box_list')