|
2 | 2 | import requests |
3 | 3 | from unittest.mock import patch, MagicMock |
4 | 4 | from dataworkbench.gateway import Gateway |
5 | | -from requests.exceptions import RequestException |
| 5 | +import json |
6 | 6 |
|
7 | 7 | @pytest.fixture |
8 | 8 | def mock_gateway(): |
@@ -34,9 +34,20 @@ def test_import_dataset_success(mock_gateway, mock_post): |
34 | 34 |
|
35 | 35 | def test_import_dataset_failure(mock_gateway, mock_post): |
36 | 36 | """Test dataset import failure.""" |
37 | | - mock_post.side_effect = requests.exceptions.RequestException("Request failed") |
38 | 37 |
|
39 | | - with pytest.raises(RequestException): |
40 | | - mock_gateway.import_dataset("dataset_name", "dataset_description", "schema_id", {"tag": "value"}, "folder_id") |
| 38 | + response_body = {"type":"BusinessError","traceId":"8b01e7eb14484611add6138618daf112"} |
41 | 39 |
|
| 40 | + mock_response = MagicMock() |
| 41 | + mock_response.return_value.status_code = 400 |
| 42 | + mock_response.text = json.dumps(response_body) |
| 43 | + |
| 44 | + http_error = requests.exceptions.HTTPError() |
| 45 | + http_error.response = mock_response |
| 46 | + |
| 47 | + mock_response.raise_for_status.side_effect = http_error |
| 48 | + mock_post.return_value = mock_response |
| 49 | + |
| 50 | + result = mock_gateway.import_dataset("dataset_name", "dataset_description", "schema_id", {"tag": "value"}, "folder_id") |
| 51 | + |
| 52 | + assert result == {"error": "Failed to create data catalog entry.", "correlation-id": response_body["traceId"]} |
42 | 53 | mock_post.assert_called_once() |
0 commit comments