def test_dataset_delete(ckan_client_ll): # Create dataset stage_1pre = generate_dataset() stage_1 = ckan_client_ll.post_dataset(stage_1pre) check_dataset(stage_1pre, stage_1) dataset_id = stage_1['id'] # Make sure it is in the list dataset_ids = ckan_client_ll.list_datasets() assert dataset_id in dataset_ids # Now delete the dataset ckan_client_ll.delete_dataset(dataset_id) # Anonymous users cannot see the dataset anon_client = ckan_client_ll.anonymous dataset_ids = anon_client.list_datasets() assert dataset_id not in dataset_ids with pytest.raises(HTTPError) as excinfo: anon_client.get_dataset(dataset_id) assert excinfo.value.status_code in (403, 404) # :( # Administrators can still access deleted dataset deleted_dataset = ckan_client_ll.get_dataset(dataset_id) assert deleted_dataset['state'] == 'deleted' # But it's still gone from the list dataset_ids = ckan_client_ll.list_datasets() assert dataset_id not in dataset_ids
def update_and_check(updates, expected): updated_dataset = ckan_client_ll.update_dataset(dataset_id, updates) retrieved_dataset = ckan_client_ll.get_dataset(dataset_id) assert updated_dataset == retrieved_dataset check_dataset(updated_dataset, expected)