-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathtest_cli_jobs.py
116 lines (94 loc) · 4.08 KB
/
test_cli_jobs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import json
import pytest
from unittest import mock
from click.testing import CliRunner
from mapbox_tilesets.scripts.cli import jobs, job
@pytest.mark.usefixtures("token_environ")
@mock.patch("requests.Session.get")
def test_cli_job(mock_request_get, MockResponse):
runner = CliRunner()
# sends expected request
message = {"message": "mock message"}
mock_request_get.return_value = MockResponse(message)
result = runner.invoke(jobs, ["test.id"])
mock_request_get.assert_called_with(
"https://api.mapbox.com/tilesets/v1/test.id/jobs?access_token=pk.eyJ1IjoidGVzdC11c2VyIn0K&limit=100"
)
assert result.exit_code == 0
assert json.loads(result.output) == message
# noting for future that this test really is a copy of above
@pytest.mark.usefixtures("token_environ")
@mock.patch("requests.Session.get")
def test_cli_job_error(mock_request_get, MockResponse):
runner = CliRunner()
# sends expected request
message = {"message": "mock error message"}
mock_request_get.return_value = MockResponse(message, status_code=404)
result = runner.invoke(jobs, ["test.id"])
mock_request_get.assert_called_with(
"https://api.mapbox.com/tilesets/v1/test.id/jobs?access_token=pk.eyJ1IjoidGVzdC11c2VyIn0K&limit=100"
)
assert result.exit_code == 0
assert json.loads(result.output) == message
@pytest.mark.usefixtures("token_environ")
@mock.patch("requests.Session.get")
def test_cli_jobs_and_stage(mock_request_get, MockResponse):
"""test jobs + stage endpoint"""
runner = CliRunner()
# sends expected request
message = {"message": "mock message"}
mock_request_get.return_value = MockResponse(message)
result = runner.invoke(jobs, ["test.id", "--stage", "success"])
mock_request_get.assert_called_with(
"https://api.mapbox.com/tilesets/v1/test.id/jobs?access_token=pk.eyJ1IjoidGVzdC11c2VyIn0K&limit=100&stage=success"
)
assert result.exit_code == 0
assert json.loads(result.output) == message
@pytest.mark.usefixtures("token_environ")
@mock.patch("requests.Session.get")
def test_cli_jobs_limit(mock_request_get, MockResponse):
"""test jobs + stage endpoint"""
runner = CliRunner()
# sends expected request
message = {"message": "mock message"}
mock_request_get.return_value = MockResponse(message)
result = runner.invoke(jobs, ["test.id", "--limit", "10"])
mock_request_get.assert_called_with(
"https://api.mapbox.com/tilesets/v1/test.id/jobs?access_token=pk.eyJ1IjoidGVzdC11c2VyIn0K&limit=10"
)
assert result.exit_code == 0
@pytest.mark.usefixtures("token_environ")
@mock.patch("requests.Session.get")
def test_cli_jobs_limit_out_of_range(mock_request_get):
runner = CliRunner()
result = runner.invoke(jobs, ["test.id", "--limit", "0"])
mock_request_get.assert_not_called()
assert result.exit_code == 2
@pytest.mark.usefixtures("token_environ")
@mock.patch("requests.Session.get")
def test_cli_jobs_stage_and_limit(mock_request_get, MockResponse):
"""test jobs + stage endpoint"""
runner = CliRunner()
# sends expected request
message = {"message": "mock message"}
mock_request_get.return_value = MockResponse(message)
result = runner.invoke(jobs, ["test.id", "--stage", "success", "--limit", "10"])
mock_request_get.assert_called_with(
"https://api.mapbox.com/tilesets/v1/test.id/jobs?access_token=pk.eyJ1IjoidGVzdC11c2VyIn0K&limit=10&stage=success"
)
assert result.exit_code == 0
assert json.loads(result.output) == message
@pytest.mark.usefixtures("token_environ")
@mock.patch("requests.Session.get")
def test_cli_single_job(mock_request_get, MockResponse):
"""test job endpoint"""
runner = CliRunner()
# sends expected request
message = {"message": "mock message"}
mock_request_get.return_value = MockResponse(message)
result = runner.invoke(job, ["test.id", "job_id"])
mock_request_get.assert_called_with(
"https://api.mapbox.com/tilesets/v1/test.id/jobs/job_id?access_token=pk.eyJ1IjoidGVzdC11c2VyIn0K"
)
assert result.exit_code == 0
assert json.loads(result.output) == message