|
1 | 1 | from unittest.mock import patch, MagicMock |
2 | 2 |
|
| 3 | +@patch("clients.gcp_client.default") |
3 | 4 | @patch("clients.gcp_client.storage.Client") |
4 | | -def test_list_gcs_objects(mock_client_class): |
5 | | - mock_client = MagicMock() |
6 | | - mock_bucket = MagicMock() |
| 5 | +def test_list_gcs_objects(mock_client_class, mock_default): |
| 6 | + # Mock GCP credentials |
| 7 | + mock_default.return_value = ("fake-credentials", "test-project") |
7 | 8 |
|
8 | | - # Explicitly define .name attributes |
| 9 | + # Mock GCP storage client and blobs |
| 10 | + mock_client = MagicMock() |
9 | 11 | mock_blob1 = MagicMock() |
10 | 12 | mock_blob1.name = "demo-blob.json" |
11 | | - |
12 | 13 | mock_blob2 = MagicMock() |
13 | 14 | mock_blob2.name = "config.yaml" |
14 | 15 |
|
15 | | - mock_bucket.list_blobs.return_value = [mock_blob1, mock_blob2] |
16 | | - mock_client.get_bucket.return_value = mock_bucket |
| 16 | + mock_client.list_blobs.return_value = [mock_blob1, mock_blob2] |
17 | 17 | mock_client_class.return_value = mock_client |
18 | 18 |
|
19 | | - # ✅ Import AFTER patch is active |
20 | 19 | from clients.gcp_client import list_gcs_objects |
21 | | - objects = list_gcs_objects("demo-gcp") |
| 20 | + result = list_gcs_objects("demo-gcp") |
22 | 21 |
|
23 | | - assert isinstance(objects, list) |
24 | | - assert "demo-blob.json" in objects |
25 | | - assert "config.yaml" in objects |
| 22 | + assert isinstance(result, list) |
| 23 | + assert "demo-blob.json" in result |
| 24 | + assert "config.yaml" in result |
0 commit comments