def test_update_library(self): with freeze_time("2019-06-01T16:35:34Z"): lib = LibraryFactory.create(owner=self.me) with freeze_time("2019-07-13T12:10:12Z"): updateFields = { "data": { "new": "data" }, } self.client.force_authenticate(self.me) response = self.client.patch( "/api/v1/libraries/{}/".format(lib.pk), updateFields, format="json", ) assert status.HTTP_204_NO_CONTENT == response.status_code assert b"" == response.content updated_library = Library.objects.get(pk=lib.pk) assert {"new": "data"} == updated_library.data assert "2019-07-13T12:10:12+00:00" == updated_library.updated_at.isoformat( )
def setUpClass(cls): super().setUpClass() cls.library = LibraryFactory.create(data={ "tag1": { "name": "foo" }, "tag2": { "name": "bar" }, })
def test_destroy_library(self): lib = LibraryFactory.create(owner=self.me) assessment_count = Library.objects.count() self.client.force_authenticate(self.me) response = self.client.delete(f"/api/v1/libraries/{lib.pk}/") assert status.HTTP_204_NO_CONTENT == response.status_code assert b"" == response.content assert (assessment_count - 1) == Library.objects.count()
def test_update_library_item_fails_if_tag_doesnt_exist(self): library = LibraryFactory.create() replacement_data = { "name": "bar", "other": "data", } self.client.force_authenticate(library.owner) response = self.client.put( f"/api/v1/libraries/{library.id}/items/tag5/", replacement_data, format="json") assert response.status_code == status.HTTP_404_NOT_FOUND
def test_destroy_library_item(self): library = LibraryFactory.create(data={ "tag1": { "name": "foo" }, "tag2": { "name": "bar" }, }, ) self.client.force_authenticate(library.owner) response = self.client.delete( f"/api/v1/libraries/{library.id}/items/tag2/") assert response.status_code == status.HTTP_204_NO_CONTENT retrieved = Library.objects.get(id=library.id) assert retrieved.data == {"tag1": {"name": "foo"}}
def test_update_library_item(self): library = LibraryFactory.create(data={ "tag1": { "name": "foo" }, }, ) replacement_data = { "name": "bar", "other": "data", } with freeze_time("2019-06-01T16:35:34Z"): self.client.force_authenticate(library.owner) response = self.client.put( f"/api/v1/libraries/{library.id}/items/tag1/", replacement_data, format="json") assert response.status_code == status.HTTP_204_NO_CONTENT retrieved = Library.objects.get(id=library.id) assert retrieved.data == {"tag1": replacement_data}
def setUpClass(cls): super().setUpClass() cls.library = LibraryFactory.create()
def library() -> Library: return LibraryFactory()