Skip to content

Commit 31efcb4

Browse files
committed
extra test coverage
1 parent 35f8a83 commit 31efcb4

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

functions-python/backfill_dataset_service_date_range/tests/test_backfill_dataset_service_date_range_main.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,58 @@ def test_backfill_datasets(mock_get, mock_storage_client):
8383
mock_session.commit.assert_called_once()
8484

8585

86+
@patch("logging.error", autospec=True)
87+
@patch("google.cloud.storage.Client", autospec=True)
88+
@patch("requests.get")
89+
def test_backfill_datasets_error_commit(mock_get, mock_storage_client, mock_logger):
90+
# Mock the storage client and bucket
91+
mock_bucket = MagicMock()
92+
mock_client_instance = mock_storage_client.return_value
93+
mock_client_instance.bucket.return_value = mock_bucket
94+
mock_blob = MagicMock()
95+
mock_blob.exists.return_value = False
96+
mock_bucket.blob.return_value = mock_blob
97+
98+
mock_session = MagicMock()
99+
mock_dataset = Mock(spec=Gtfsdataset)
100+
mock_dataset.id = 1
101+
mock_dataset.stable_id = "mdb-392-202406181921"
102+
mock_dataset.service_date_range_end = None
103+
mock_dataset.service_date_range_start = None
104+
mock_dataset.validation_reports = [
105+
MagicMock(
106+
validator_version="6.0.0",
107+
validated_at="2022-01-01T00:00:00Z",
108+
json_report="http://example-2.com/report.json",
109+
)
110+
]
111+
112+
mock_query = MagicMock()
113+
mock_query.options.return_value = mock_query
114+
mock_query.filter.return_value = mock_query
115+
mock_query.all.return_value = [mock_dataset]
116+
mock_session.query.return_value = mock_query
117+
mock_session.commit.side_effect = Exception("Commit failed")
118+
119+
mock_response = Mock()
120+
mock_response.status_code = 200
121+
mock_response.json.return_value = {
122+
"summary": {
123+
"feedInfo": {
124+
"feedServiceWindowStart": "2023-01-01",
125+
"feedServiceWindowEnd": "2023-12-31",
126+
}
127+
}
128+
}
129+
mock_get.return_value = mock_response
130+
131+
try:
132+
backfill_datasets(mock_session)
133+
except Exception:
134+
mock_session.rollback.assert_called_once()
135+
mock_session.close.assert_called_once()
136+
137+
86138
@patch("google.cloud.storage.Client", autospec=True)
87139
@patch("requests.get")
88140
def test_backfill_datasets_no_validation_reports(mock_get, mock_storage_client):

0 commit comments

Comments
 (0)