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 setUp(self): super(DatasetTestCase, self).setUp() self.test_user_mb_name = "tester" self.test_user_id = user.create(self.test_user_mb_name) self.test_data = { "name": "Test", "description": "", "classes": [ { "name": "Class #1", "description": "This is a description of class #1!", "recordings": [ "0dad432b-16cc-4bf0-8961-fd31d124b01b", "19e698e7-71df-48a9-930e-d4b1a2026c82", ] }, { "name": "Class #2", "description": "", "recordings": [ "fd528ddb-411c-47bc-a383-1f8a222ed213", "96888f9e-c268-4db2-bc13-e29f8b317c20", "ed94c67d-bea8-4741-a3a6-593f20a22eb6", ] }, ], "public": True, }
def test_edit(self): # Should redirect to login page even if trying to edit dataset that # doesn't exist. resp = self.client.get( url_for("datasets.edit", 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 edit without login resp = self.client.get(url_for("datasets.edit", dataset_id=dataset_id)) self.assertStatus(resp, 302) # Editing 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.edit", dataset_id=dataset_id)) self.assert401(resp) # Editing properly self.temporary_login(self.test_user_id) resp = self.client.get(url_for("datasets.edit", dataset_id=dataset_id)) self.assert200(resp)
def test_edit_service(self): dataset_id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id) # Trying to edit without login resp = self.client.post( url_for("datasets.edit_service", dataset_id=dataset_id), 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")) # Editing 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.post( url_for("datasets.edit_service", dataset_id=dataset_id), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert401(resp) # Editing properly self.temporary_login(self.test_user_id) resp = self.client.post( url_for("datasets.edit_service", dataset_id=dataset_id), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert200(resp)
def setUp(self): super(AuthorizationTestCase, self).setUp() self.test_user_mb_name = "tester" self.test_user_id = user.create(self.test_user_mb_name) self.api_key = api_key.generate(self.test_user_id) user.agree_to_gdpr(self.test_user_mb_name)
def _test_view_with_get_dataset(self, view_name): """Check that a view that uses datasets.get_dataset to retrieve a dataset""" # no such dataset, 404 resp = self.client.get(url_for(view_name, dataset_id=self.test_uuid)) self.assert404(resp) # public dataset + not logged in, OK dataset_id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id) resp = self.client.get(url_for(view_name, dataset_id=dataset_id)) self.assert200(resp) self.temporary_login(self.test_user_id) # public dataset + logged in, ok resp = self.client.get(url_for(view_name, dataset_id=dataset_id)) self.assert200(resp) # private dataset + author, ok self.test_data["public"] = False private_dataset_id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id) resp = self.client.get(url_for(view_name, dataset_id=private_dataset_id)) self.assert200(resp) # private dataset, not author, 404 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(view_name, dataset_id=private_dataset_id)) self.assert404(resp)
def setUp(self): super(DatasetEvalTestCase, self).setUp() self.test_user_mb_name = "tester" self.test_user_id = user.create(self.test_user_mb_name) self.test_data = { "name": "Test", "description": "", "classes": [ { "name": "Class #1", "description": "This is a description of class #1!", "recordings": [ "0dad432b-16cc-4bf0-8961-fd31d124b01b", "19e698e7-71df-48a9-930e-d4b1a2026c82", ] }, { "name": "Class #2", "description": "", "recordings": [ "fd528ddb-411c-47bc-a383-1f8a222ed213", "96888f9e-c268-4db2-bc13-e29f8b317c20", "ed94c67d-bea8-4741-a3a6-593f20a22eb6", ] }, ], "public": True, } self.test_dataset_id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id) self.conn = db.engine.connect()
def test_edit_service(self): dataset_id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id) # Trying to edit without login resp = self.client.post( url_for("datasets.edit_service", dataset_id=dataset_id), 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")) # Editing 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.post( url_for("datasets.edit_service", dataset_id=dataset_id), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert401(resp) # Editing properly self.temporary_login(self.test_user_id) resp = self.client.post( url_for("datasets.edit_service", dataset_id=dataset_id), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert200(resp)
def setUp(self): super(DatasetEvalTestCase, self).setUp() self.test_user_mb_name = "tester" self.test_user_id = user.create(self.test_user_mb_name) self.test_uuid = "123e4567-e89b-12d3-a456-426655440000" self.test_data = { "name": "Test", "description": "", "classes": [ { "name": "Class #1", "description": "This is a description of class #1!", "recordings": [ "0dad432b-16cc-4bf0-8961-fd31d124b01b", "19e698e7-71df-48a9-930e-d4b1a2026c82", ] }, { "name": "Class #2", "description": "", "recordings": [ "fd528ddb-411c-47bc-a383-1f8a222ed213", "96888f9e-c268-4db2-bc13-e29f8b317c20", "ed94c67d-bea8-4741-a3a6-593f20a22eb6", ] }, ], "public": True, } self.test_dataset_id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id) self.conn = db.engine.connect()
def test_get_pending_jobs_for_user_other_user(self): """ Check that a remote eval job for another user doesn't show """ another_user_id = user.create("another user") another_dataset_id = dataset.create_from_dict(self.test_data, author_id=another_user_id) job_id = dataset_eval._create_job(self.conn, another_dataset_id, True, dataset_eval.EVAL_REMOTE, None) response = dataset_eval.get_remote_pending_jobs_for_user(self.test_user_id) self.assertEqual(response, [])
def test_get_pending_jobs_for_user_other_user(self): """ Check that a remote eval job for another user doesn't show """ another_user_id = user.create("another user") another_dataset_id = dataset.create_from_dict(self.test_data, author_id=another_user_id) job_id = dataset_eval._create_job(self.conn, another_dataset_id, True, dataset_eval.EVAL_REMOTE, c_value=[1, 2, 3], gamma_value=[4, 5, 6], preprocessing_values=["basic"], filter_type=None) response = dataset_eval.get_remote_pending_jobs_for_user(self.test_user_id) self.assertEqual(response, [])
def setUp(self): super(DatasetsViewsTestCase, self).setUp() self.test_user_mb_name = "tester" self.test_user_id = user.create(self.test_user_mb_name) self.test_uuid = "123e4567-e89b-12d3-a456-426655440000" self.test_data = { "name": "Test", "description": "", "classes": [], "public": True, }
def test_edit(self): # Should redirect to login page even if trying to edit dataset that # doesn't exist. resp = self.client.get( url_for("datasets.edit", 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 edit without login resp = self.client.get(url_for("datasets.edit", dataset_id=dataset_id)) self.assertStatus(resp, 302) resp = self.client.post( url_for("datasets.edit", dataset_id=dataset_id), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assertStatus(resp, 302) # Editing using another user another_user_id = user.create("another_tester") self.temporary_login(another_user_id) resp = self.client.get(url_for("datasets.edit", dataset_id=dataset_id)) self.assert401(resp) resp = self.client.post( url_for("datasets.edit", dataset_id=dataset_id), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert401(resp) # Editing properly self.temporary_login(self.test_user_id) resp = self.client.get(url_for("datasets.edit", dataset_id=dataset_id)) self.assert200(resp) resp = self.client.post( url_for("datasets.edit", dataset_id=dataset_id), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert200(resp)
def setUp(self): super(DatasetsViewsTestCase, self).setUp() self.test_user_mb_name = "tester" self.test_user_id = user.create(self.test_user_mb_name) user.agree_to_gdpr(self.test_user_mb_name) self.test_uuid = "123e4567-e89b-12d3-a456-426655440000" self.test_mbid_1 = "e8afe383-1478-497e-90b1-7885c7f37f6e" self.test_mbid_2 = "0dad432b-16cc-4bf0-8961-fd31d124b01b" self.test_data = { "name": "Test", "description": "", "classes": [ { "name": "Class #1", "description": "This is a description of class #1!", "recordings": [ self.test_mbid_1, self.test_mbid_2, ] }, { "name": "Class #2", "description": "", "recordings": [ self.test_mbid_1, self.test_mbid_2, ] }, ], "public": True, } # Loading the actual data because it is required to evaluate the dataset self.load_low_level_data(self.test_mbid_1) self.load_low_level_data(self.test_mbid_2)
def test_edit(self): # Should redirect to login page even if trying to edit dataset that # doesn't exist. resp = self.client.get(url_for("datasets.edit", 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 edit without login resp = self.client.get(url_for("datasets.edit", dataset_id=dataset_id)) self.assertStatus(resp, 302) resp = self.client.post( url_for("datasets.edit", dataset_id=dataset_id), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assertStatus(resp, 302) # Editing using another user another_user_id = user.create("another_tester") self.temporary_login(another_user_id) resp = self.client.get(url_for("datasets.edit", dataset_id=dataset_id)) self.assert401(resp) resp = self.client.post( url_for("datasets.edit", dataset_id=dataset_id), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert401(resp) # Editing properly self.temporary_login(self.test_user_id) resp = self.client.get(url_for("datasets.edit", dataset_id=dataset_id)) self.assert200(resp) resp = self.client.post( url_for("datasets.edit", dataset_id=dataset_id), headers={"Content-Type": "application/json"}, data=json.dumps(self.test_data), ) self.assert200(resp)
def test_edit(self): # Should redirect to login page even if trying to edit dataset that # doesn't exist. resp = self.client.get(url_for("datasets.edit", 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 edit without login resp = self.client.get(url_for("datasets.edit", dataset_id=dataset_id)) self.assertStatus(resp, 302) # Editing 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.edit", dataset_id=dataset_id)) self.assert401(resp) # Editing properly self.temporary_login(self.test_user_id) resp = self.client.get(url_for("datasets.edit", dataset_id=dataset_id)) self.assert200(resp)
def setUp(self): super(SimilarityViewsTestCase, self).setUp() self.test_user_mb_name = "tester" self.test_user_id = user.create(self.test_user_mb_name) user.agree_to_gdpr(self.test_user_mb_name)