def test_delete(self): # Should redirect to login page even if trying to delete dataset that # doesn't exist. resp = self.client.get(url_for("datasets.delete", dataset_id=self.test_uuid)) self.assertStatus(resp, 302) dataset_id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id) # Trying to delete without login resp = self.client.get(url_for("datasets.delete", dataset_id=dataset_id)) self.assertStatus(resp, 302) resp = self.client.post(url_for("datasets.delete", dataset_id=dataset_id)) self.assertStatus(resp, 302) self.assertTrue(len(dataset.get_by_user_id(self.test_user_id)) == 1) # Deleting using another user another_user_id = user.create("another_tester") self.temporary_login(another_user_id) resp = self.client.get(url_for("datasets.delete", dataset_id=dataset_id)) self.assert401(resp) resp = self.client.post(url_for("datasets.delete", dataset_id=dataset_id)) self.assert401(resp) self.assertTrue(len(dataset.get_by_user_id(self.test_user_id)) == 1) # Editing properly self.temporary_login(self.test_user_id) resp = self.client.get(url_for("datasets.delete", dataset_id=dataset_id)) self.assert200(resp) resp = self.client.post(url_for("datasets.delete", dataset_id=dataset_id)) self.assertRedirects(resp, url_for("user.profile", musicbrainz_id=self.test_user_mb_name)) self.assertTrue(len(dataset.get_by_user_id(self.test_user_id)) == 0)
def test_delete(self): # Should redirect to login page even if trying to delete dataset that # doesn't exist. resp = self.client.get(url_for("datasets.delete", dataset_id=self.test_uuid)) self.assertStatus(resp, 302) dataset_id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id) # Trying to delete without login resp = self.client.get(url_for("datasets.delete", dataset_id=dataset_id)) self.assertStatus(resp, 302) resp = self.client.post(url_for("datasets.delete", dataset_id=dataset_id)) self.assertStatus(resp, 302) self.assertTrue(len(dataset.get_by_user_id(self.test_user_id)) == 1) # Deleting using another user another_user_id = user.create("another_tester") user.agree_to_gdpr("another_tester") self.temporary_login(another_user_id) resp = self.client.get(url_for("datasets.delete", dataset_id=dataset_id)) self.assert403(resp) resp = self.client.post(url_for("datasets.delete", dataset_id=dataset_id)) self.assert403(resp) self.assertTrue(len(dataset.get_by_user_id(self.test_user_id)) == 1) # Editing properly self.temporary_login(self.test_user_id) resp = self.client.get(url_for("datasets.delete", dataset_id=dataset_id)) self.assert200(resp) resp = self.client.post(url_for("datasets.delete", dataset_id=dataset_id)) self.assertRedirects(resp, url_for("user.profile", musicbrainz_id=self.test_user_mb_name)) self.assertTrue(len(dataset.get_by_user_id(self.test_user_id)) == 0)
def test_get_by_user_id(self): dataset.create_from_dict(self.test_data, author_id=self.test_user_id) datasets = dataset.get_by_user_id(self.test_user_id) self.assertEqual(len(datasets), 1) private = copy.deepcopy(self.test_data) private["name"] = "Private Dataset" private["public"] = False dataset.create_from_dict(private, author_id=self.test_user_id) datasets = dataset.get_by_user_id(self.test_user_id) # Not returning private datasets by default. self.assertEqual(len(datasets), 1) self.assertNotEqual(datasets[0]["name"], private["name"]) datasets = dataset.get_by_user_id(self.test_user_id, public_only=False) self.assertEqual(len(datasets), 2)
def test_create_service(self): resp = self.client.post( url_for("datasets.create_service"), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert401(resp) self.assertTrue(resp.json["message"].startswith("The server could not verify that you are authorized")) # With logged in user self.temporary_login(self.test_user_id) resp = self.client.post( url_for("datasets.create_service"), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert200(resp) self.assertTrue(len(dataset.get_by_user_id(self.test_user_id)) == 1)
def test_create(self): resp = self.client.get(url_for("datasets.create")) self.assertStatus(resp, 302) resp = self.client.post( url_for("datasets.create"), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assertStatus(resp, 302) # With logged in user self.temporary_login(self.test_user_id) resp = self.client.get(url_for("datasets.create")) self.assert200(resp) resp = self.client.post( url_for("datasets.create"), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert200(resp) self.assertTrue(len(dataset.get_by_user_id(self.test_user_id)) == 1)