Skip to content

Commit fe8a5e3

Browse files
committed
Record unit and integration tests for Issue#pull_requests
1 parent 9d40f96 commit fe8a5e3

3 files changed

Lines changed: 40 additions & 5 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"recorded_with": "betamax/0.4.1", "http_interactions": [{"response": {"body": {"base64_string": "H4sIAAAAAAAAA9VXa2/jNhD8K4QKXFrAsSw/8lB8Ke5D0QYo0OKQQ4EmgU1btM1GIlWScuoa9987q4cfSuLGcdDrBTBii9zhajg7XC69zMRe6M2cS23o+zyVzal0s2zUHOvENyLV1rdymvC5NJltd/1itNNMF760NhPW77QCr+HFfCRiO3gTOL8AW/qKJ+IzwJFLIpR7K/gKDshi/oa4BRhQZy6Ja1RssPocn2kWxyWbMvLC7unZaa99HjQ8lSUjYbwQTDc8J10ssGU/SvdTNvpBOWFSI60I2YcoYuCfceeMHGVOXDA70w9MKjbAThokllnCWXqxnkoFkMTykeGJxhAt2Wn12idnDY/PueOmvpn5Q1vqg5DGGqsrl0slQ+YU/P38fQdoU1NiEKxHK+/SGYFZfyOZ3QRuTJzoONYPiK4nuy3k7QX8VRQSK75LNX0FAqKWvnYzAa7wCiTVqbT/ptNaMnnEEoVl3UBGhGHBsxHRXgmVMUjnQSGTZV67OVg2smMjUye12o+lrUggaTPlSv7N90dCpAVAbid7vVUegciXlGmN1iJk6aM45ny8ICqMGAs5B7GvgKvFAs0tUqrDT1RSoFk6MeBRQmU14bEVnytP9MKbu3xPHU3XqVCYHuvxvUBp5FNRcBamoAQmKJhAw0tkLKzTCg+Wu0tnt0WvcKx/QqsebNKbgKVNAze3q+Ck3WmtzepkbVVBs4VJkVjpEDxc5YcH04ZNBHeZwXcjYnAUMacZSop+Cm4F0xM2R4FDvqwAGhtE6C0f27TUMp92t3VG+bzKy4rgA7ysltBuP6tN3svTtg6TV/vaEyiHeFvthDvA37aQ3s7jtmE3HRLq2dvnttD29bqt4P39biv8bTyvltGWZ77I98jjBkV36IUBanAcawvbXT3qPPLDvKYxhTt4Q7sVdI5bZ8ed4Drohd1e2Dv/HQtnabQ1p3scBMft0+tWN2yfh72A5kSZGGhYcGGj5boESg9gyavWL6S0aovmgK3edXAeBkHY6zy7KOa0g7BzWi5aW6bhUSeHlutPOByWPsjBCarqsV/uIptt+kZbGcnJ5PV9aZPCwXHK3Xh2AEwe72EzRjpaDOilsOf99PI3XDx05mD+0rJfPzaYdEeWKe0YzoEFHQtTQaOC9cc6EpdoKft+/o1NjE4YL5/XO+Nqkh79IcauyWgdYDcIygiGxTj79PHndd/cZB9iWxxCyCdFSjiDijXzRroCnHHLRkIoJpPUaDQWzb6fXt6qW9WfdeuvE/Z9PMwHUyMuC7grxW6Cu5AAtHGsvFzRJBppY6R4xN5XY8362317RJc33N3KG0aygMZTrhbUlh99V2F1Vli36pfM3dDvd7G7KODY+h7BblpNMHv3buoukGtBMN4LORfJX16vduDWy+feehUjuGrQ/vAR2GAld9KqI2ybMLiUxAuGNm2SxU125Vis9b1lsbxHhCL6RZI69gBWEx4J2vD8/kKI2J8Gw50G+8amUEQiLByFZekjyiv5fD1879i/p3YBFZgXjhN/kVm+vGroblgWSl1E7LDayKuCPS4HEkwtv7AS5JeTff9ZzecKv1Uk8JW06fr8X2u64m2l5f8nabuEe1nKdC+FDiHRYaXRYV2kwwNVOsxlOnxKpwYE4/MN/vLjYeMYCmmAPsPhkP49Y9nlpDez7Q28DevG08q8d6l4nS1lTHIervQ8/CKCLl9nRfBa2eXIV8DuTrmXCoHqy25wtCibzn8AUxWaN2QVAAA=", "encoding": "utf-8", "string": ""}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/issues/301", "headers": {"access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", "content-security-policy": "default-src 'none'", "cache-control": "public, max-age=60, s-maxage=60", "x-content-type-options": "nosniff", "x-github-media-type": "github.v3; param=full; format=json", "x-github-request-id": "4270732F:6D6A:11503F3:54791E46", "status": "200 OK", "x-ratelimit-reset": "1417226477", "server": "GitHub.com", "x-frame-options": "deny", "last-modified": "Sat, 29 Nov 2014 00:56:14 GMT", "content-encoding": "gzip", "vary": "Accept, Accept-Encoding", "x-ratelimit-limit": "60", "access-control-allow-credentials": "true", "content-type": "application/json; charset=utf-8", "access-control-allow-origin": "*", "strict-transport-security": "max-age=31536000; includeSubdomains; preload", "date": "Sat, 29 Nov 2014 01:15:50 GMT", "x-xss-protection": "1; mode=block", "x-served-by": "8dd185e423974a7e13abbbe6e060031e", "x-ratelimit-remaining": "51", "transfer-encoding": "chunked", "etag": "\"116d27bf71da598c4760781fed31c255\""}}, "request": {"body": {"encoding": "utf-8", "string": ""}, "uri": "https://api.github.com/repos/sigmavirus24/github3.py/issues/301", "method": "GET", "headers": {"Connection": "keep-alive", "Accept-Encoding": "gzip, deflate", "Accept": "application/vnd.github.v3.full+json", "Content-Type": "application/json", "User-Agent": "github3.py/1.0.0b1", "Accept-Charset": "utf-8"}}, "recorded_at": "2014-11-29T01:15:50"}, {"response": {"body": {"base64_string": "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", "encoding": "utf-8", "string": ""}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/301", "headers": {"access-control-expose-headers": "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", "content-security-policy": "default-src 'none'", "cache-control": "public, max-age=60, s-maxage=60", "x-content-type-options": "nosniff", "x-github-media-type": "github.v3; param=full; format=json", "x-github-request-id": "4270732F:6D6A:1150451:54791E46", "status": "200 OK", "x-ratelimit-reset": "1417226477", "server": "GitHub.com", "x-frame-options": "deny", "last-modified": "Sat, 29 Nov 2014 00:56:14 GMT", "content-encoding": "gzip", "vary": "Accept, Accept-Encoding", "x-ratelimit-limit": "60", "access-control-allow-credentials": "true", "content-type": "application/json; charset=utf-8", "access-control-allow-origin": "*", "strict-transport-security": "max-age=31536000; includeSubdomains; preload", "date": "Sat, 29 Nov 2014 01:15:50 GMT", "x-xss-protection": "1; mode=block", "x-served-by": "4c8b2d4732c413f4b9aefe394bd65569", "x-ratelimit-remaining": "50", "transfer-encoding": "chunked", "etag": "\"20dc1e34098da56eb7886effa9a8cb4c\""}}, "request": {"body": {"encoding": "utf-8", "string": ""}, "uri": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/301", "method": "GET", "headers": {"Connection": "keep-alive", "Accept-Encoding": "gzip, deflate", "Accept": "application/vnd.github.v3.full+json", "Content-Type": "application/json", "User-Agent": "github3.py/1.0.0b1", "Accept-Charset": "utf-8"}}, "recorded_at": "2014-11-29T01:15:50"}]}

tests/integration/test_issue.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,13 @@ def test_labels(self):
4040
assert issue is not None
4141
for label in issue.labels():
4242
assert isinstance(label, github3.issues.label.Label)
43+
44+
def test_pull_request(self):
45+
"""Test the ability to retrieve the PR associated with an issue."""
46+
cassette_name = self.cassette_name('pull_request')
47+
with self.recorder.use_cassette(cassette_name):
48+
issue = self.gh.issue('sigmavirus24', 'github3.py', 301)
49+
assert issue is not None
50+
pull_request = issue.pull_request()
51+
52+
assert isinstance(pull_request, github3.pulls.PullRequest)

tests/unit/test_issues_issue.py

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,41 @@
11
"""Unit tests for the Issue class."""
22
import github3
33

4-
from .helper import (UnitIteratorHelper, create_url_helper,
5-
create_example_data_helper)
4+
from . import helper
65

7-
url_for = create_url_helper(
6+
url_for = helper.create_url_helper(
87
'https://api.github.com/repos/octocat/Hello-World/issues/1347'
98
)
109

11-
get_issue_example_data = create_example_data_helper('issue_example_data')
10+
get_issue_example_data = helper.create_example_data_helper(
11+
'issue_example_data'
12+
)
13+
14+
15+
class TestIssue(helper.UnitHelper):
16+
17+
"""Test Issue methods that make simple requests."""
18+
19+
described_class = github3.issues.Issue
20+
example_data = get_issue_example_data()
21+
22+
def test_pull_request(self):
23+
"""Verify the request to retrieve an associated Pull Request."""
24+
self.instance.pull_request()
25+
26+
self.session.get.assert_called_once_with(
27+
self.instance.pull_request_urls['url']
28+
)
29+
30+
def test_pull_request_without_urls(self):
31+
"""Verify no request is made if no pull request url is present."""
32+
self.instance.pull_request_urls = {}
33+
self.instance.pull_request()
34+
35+
assert self.session.get.called is False
1236

1337

14-
class TestIssueIterators(UnitIteratorHelper):
38+
class TestIssueIterators(helper.UnitIteratorHelper):
1539

1640
"""Test Issue methods that return iterators."""
1741

0 commit comments

Comments
 (0)