Ejemplo n.º 1
0
 def test_attach_author_to_source(self):
     """Attaching one author to the source works."""
     homer = Author(surname="Homer", folder=self.folder)
     homer.save()
     self.odyssey.authors.add(homer)
     self.assertEqual(str(self.odyssey), "Odyssey (HOMER)")
     self.assertEqual(self.odyssey.authors.count(), 1)
Ejemplo n.º 2
0
 def test_add_source(self):
     henryTest = Author(first_name="Henry", last_name="Test", surname="",
                        folder=self.folder)
     henryTest.save()
     logsuc = self.client.login(username='******', password='******')
     self.assertTrue(logsuc)
     response = self.client.post(reverse(addSource),
                                 {'title': 'A test source',
                                  'authors': henryTest.pk,
                                  'metadatas': '{"Editeur": "Flammarion", "Collection": "collec"}'})
     self.assertEqual(response.status_code, 200)
Ejemplo n.º 3
0
 def test_detach_author_from_source(self):
     """Removing an author from a source doesn't delete the author from the
     database."""
     homer = Author(surname="Homer", folder=self.folder)
     homer.save()
     self.odyssey.authors.add(homer)
     self.odyssey.authors.remove(homer)
     self.assertEqual(str(self.odyssey), "Odyssey (ANONYMOUS)")
     self.assertEqual(self.odyssey.authors.count(), 0)
     reHomer = Author.objects.get(surname="Homer")
     self.assertEqual(reHomer, homer)
Ejemplo n.º 4
0
 def test_to_dict(self):
     homer = Author(surname="Homer", folder=self.folder)
     homer.save()
     metaTrad = SourceMetadata(name="Traductor")
     metaTrad.save()
     metaInfo = SourceInfos(metadata=metaTrad, value="Thomas Hobbes")
     metaInfo.save()
     self.odyssey.authors.add(homer)
     self.odyssey.metadatas.add(metaInfo)
     self.assertEqual(self.odyssey.to_dict(),
                      {'title': 'Odyssey', 'authors': [homer.pk],
                       'metadata': [{metaTrad.name: metaInfo.value}]})
Ejemplo n.º 5
0
 def test_not_colliding_metadatas(self):
     henryTest = Author(first_name="Henry", last_name="Test", surname="",
                        folder=self.folder)
     henryTest.save()
     metadata = SourceMetadata(name='Editeur')
     metadata.save()
     # Metadata entered with initial lowercase ("editeur")
     # should be recognized as the uppercase initial ("Editeur")
     self.client.login(username='******', password='******')
     response = self.client.post(reverse(addSource),
                                 {'title': 'A test source',
                                  'authors': henryTest.pk,
                                  'metadatas': '{"editeur":"Flammarion", "Collection":"collec"}'
                                  })
     self.assertEqual(response.status_code, 200)
     self.assertEqual(SourceMetadata.objects.filter(
         name__icontains="editeur"
     ).count(), 1)
Ejemplo n.º 6
0
def addAuthor(request):
    """Read a form containing authors values. Every values must be here, but null
    values will be accepted. Saves in the databases and return a successful
    JSON message. If we tried to get from the URL or the fields are not complete,
    we return a failure message."""
    if request.method == 'POST':
        if mustHaveFields(["first_name", "last_name", "surname"], request.POST):
            folder_id = get_current_folder_id(request)
            new_author = Author(first_name=request.POST["first_name"],
                                last_name=request.POST["last_name"],
                                surname=request.POST["surname"],
                                folder_id=folder_id)
            new_author.save()
            return json_creation_success(new_author)
        else:
            return json_error('Missing fields.')
    else:
        return json_error('Only POST accepted.')
Ejemplo n.º 7
0
 def test_attach_authors_to_source(self):
     """Attaching many authors is recognized."""
     homer = Author(surname="Homer", folder=self.folder)
     virgil = Author(surname="Virgil", folder=self.folder)
     homer.save()
     virgil.save()
     self.odyssey.authors.add(homer, virgil)
     self.assertEqual(str(self.odyssey), "Odyssey (HOMER ET AL.)")
     self.assertEqual(self.odyssey.authors.count(), 2)