Skip to content

Commit 8497868

Browse files
authored
Improve the test coverage for util.py (#114)
Add requests-mock dependency.
1 parent 7e0cfb8 commit 8497868

File tree

3 files changed

+50
-0
lines changed

3 files changed

+50
-0
lines changed

dev-requirements.txt

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
pytest==3.6.2
33
pytest-asyncio==0.8.0
44
pytest-aiohttp==0.3.0
5+
requests-mock==1.5.0

miss_islington/util.py

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ def comment_on_pr(issue_number, message):
2424
else:
2525
print(response.status_code)
2626
print(response.text)
27+
return response
2728

2829

2930
def assign_pr_to_core_dev(issue_number, coredev_login):
@@ -44,6 +45,7 @@ def assign_pr_to_core_dev(issue_number, coredev_login):
4445
else:
4546
print(response.status_code)
4647
print(response.text)
48+
return response
4749

4850

4951
async def leave_comment(gh, pr_number, message):

tests/test_util.py

+47
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,50 @@ def test_pr_is_awaiting_merge():
123123
def test_pr_is_not_awaiting_merge():
124124
labels = [{"name": "CLA Signed", "name": "skip issue", "name": "awaiting review"}]
125125
assert util.pr_is_awaiting_merge(labels) is False
126+
127+
128+
def test_comment_on_pr_success(requests_mock):
129+
issue_number = 100
130+
message = "Thanks for the PR!"
131+
post_url = (
132+
f"https://github.com/api/repos/python/cpython/issues/{issue_number}/comments"
133+
)
134+
requests_mock.post(
135+
post_url,
136+
json={
137+
"html_url": "https://github.com/python/cpython/pull/{issue_number}#issuecomment-401309376"
138+
},
139+
status_code=201,
140+
)
141+
response = util.comment_on_pr(issue_number, message)
142+
assert response.status_code == 201
143+
144+
145+
def test_comment_on_pr_failure(requests_mock):
146+
issue_number = 100
147+
message = "Thanks for the PR!"
148+
post_url = (
149+
f"https://github.com/api/repos/python/cpython/issues/{issue_number}/comments"
150+
)
151+
requests_mock.post(post_url, status_code=400)
152+
response = util.comment_on_pr(issue_number, message)
153+
assert response.status_code == 400
154+
155+
156+
def test_assign_pr_to_coredev_success(requests_mock):
157+
158+
issue_number = 100
159+
coredev_login = "Mariatta"
160+
patch_url = f"https://github.com/api/repos/python/cpython/issues/{issue_number}"
161+
requests_mock.patch(patch_url, status_code=201)
162+
response = util.assign_pr_to_core_dev(issue_number, coredev_login)
163+
assert response.status_code == 201
164+
165+
166+
def test_assign_pr_to_coredev_failed(requests_mock):
167+
issue_number = 100
168+
coredev_login = "Mariatta"
169+
patch_url = f"https://github.com/api/repos/python/cpython/issues/{issue_number}"
170+
requests_mock.patch(patch_url, status_code=400)
171+
response = util.assign_pr_to_core_dev(issue_number, coredev_login)
172+
assert response.status_code == 400

0 commit comments

Comments
 (0)