|
1 | | -from remyxai.api.datasets import list_datasets, delete_dataset, download_dataset |
2 | 1 | from unittest.mock import patch |
3 | | -from remyxai.api.datasets import BASE_URL |
| 2 | + |
| 3 | +from remyxai.api.datasets import BASE_URL, delete_dataset, download_dataset, list_datasets |
| 4 | + |
4 | 5 |
|
5 | 6 | @patch("remyxai.api.datasets.requests.get") |
6 | 7 | def test_list_datasets(mock_get): |
| 8 | + """list_datasets reads from the response's 'message' field.""" |
7 | 9 | mock_get.return_value.status_code = 200 |
8 | | - mock_get.return_value.json.return_value = {"datasets": ["dataset1", "dataset2"]} |
| 10 | + mock_get.return_value.json.return_value = {"message": ["dataset1", "dataset2"]} |
| 11 | + |
9 | 12 | datasets = list_datasets() |
| 13 | + |
10 | 14 | assert isinstance(datasets, list) |
11 | | - assert len(datasets) > 0 |
| 15 | + assert datasets == ["dataset1", "dataset2"] |
| 16 | + |
12 | 17 |
|
13 | 18 | @patch("remyxai.api.datasets.requests.delete") |
14 | 19 | def test_delete_dataset(mock_delete): |
| 20 | + """delete_dataset requires (dataset_type, dataset_name).""" |
15 | 21 | mock_delete.return_value.status_code = 200 |
16 | 22 | mock_delete.return_value.json.return_value = {"message": "Dataset deleted successfully"} |
17 | | - dataset_name = "test_dataset" |
18 | | - delete_dataset(dataset_name) |
19 | | - assert mock_delete.called_once_with(f"{BASE_URL}/datasets/delete/{dataset_name}") |
| 23 | + |
| 24 | + result = delete_dataset("eval", "test_dataset") |
| 25 | + |
| 26 | + assert result == "Dataset deleted successfully" |
| 27 | + args, _ = mock_delete.call_args |
| 28 | + assert args[0] == f"{BASE_URL}/datasets/delete/eval/test_dataset" |
| 29 | + |
20 | 30 |
|
21 | 31 | @patch("remyxai.api.datasets.requests.get") |
22 | 32 | def test_download_dataset(mock_get): |
| 33 | + """download_dataset requires (dataset_type, dataset_name); returns an error |
| 34 | + when no presigned_url is in the response (avoids touching the network).""" |
23 | 35 | mock_get.return_value.status_code = 200 |
24 | | - mock_get.return_value.json.return_value = {"url": "https://example.com/dataset.zip"} |
25 | | - dataset_name = "test_dataset" |
26 | | - download_dataset(dataset_name) |
27 | | - assert mock_get.called_once_with(f"{BASE_URL}/datasets/download/{dataset_name}") |
28 | | - |
| 36 | + mock_get.return_value.json.return_value = {"presigned_url": ""} |
29 | 37 |
|
| 38 | + result = download_dataset("eval", "test_dataset") |
30 | 39 |
|
| 40 | + # With an empty presigned URL the function returns an explicit error dict |
| 41 | + # rather than attempting a download. Keep the test hermetic. |
| 42 | + assert isinstance(result, dict) |
| 43 | + assert "error" in result |
| 44 | + args, _ = mock_get.call_args |
| 45 | + assert args[0] == f"{BASE_URL}/datasets/download/eval/test_dataset" |
0 commit comments