Skip to content

Commit ab6495a

Browse files
author
gerdie
committed
raise errors for non 200s in status resp
1 parent 7cabddc commit ab6495a

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Unreleased
22
- Hide deprecated `add-source` command from command list.
3+
- Raise error in `tilesets status` for non-200s (includes unpublished tilesets).
34

45
=======
56

mapbox_tilesets/scripts/cli.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,9 @@ def status(tileset, token=None, indent=None):
249249
)
250250
r = s.get(url)
251251

252+
if r.status_code != 200:
253+
raise errors.TilesetsError(r.text)
254+
252255
status = {}
253256
for job in r.json():
254257
status["id"] = job["tilesetId"]

tests/test_cli_status.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from unittest import mock
66

77
from mapbox_tilesets.scripts.cli import status
8+
from mapbox_tilesets.errors import TilesetsError
89

910

1011
@pytest.mark.usefixtures("token_environ")
@@ -47,3 +48,20 @@ def test_cli_status_use_token_flag(mock_request_get, MockResponse):
4748
"latest_job": "a123",
4849
}
4950
assert json.loads(result.output) == expected_status
51+
52+
53+
@pytest.mark.usefixtures("token_environ")
54+
@mock.patch("requests.Session.get")
55+
def test_cli_status_error(mock_request_get, MockResponse):
56+
runner = CliRunner()
57+
58+
# sends expected request
59+
message = {"message": "test.id has no jobs."}
60+
mock_request_get.return_value = MockResponse(message, 404)
61+
result = runner.invoke(status, ["test.id"])
62+
mock_request_get.assert_called_with(
63+
"https://api.mapbox.com/tilesets/v1/test.id/jobs?limit=1&access_token=pk.eyJ1IjoidGVzdC11c2VyIn0K"
64+
)
65+
assert result.exit_code == 1
66+
assert isinstance(result.exception, TilesetsError)
67+
assert result.exception.message == '{"message": "test.id has no jobs."}'

0 commit comments

Comments
 (0)