forked from sigmavirus24/github3.py
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathtest_pulls.py
More file actions
129 lines (108 loc) · 5.03 KB
/
Copy pathtest_pulls.py
File metadata and controls
129 lines (108 loc) · 5.03 KB
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
117
118
119
120
121
122
123
124
125
126
127
128
129
# -*- coding: utf-8 -*-
"""Integration tests for methods implemented on PullRequest."""
import github3
from .helper import IntegrationHelper
class TestPullRequest(IntegrationHelper):
"""PullRequest integration tests."""
def get_pull_request(self, repository='sigmavirus24/github3.py', num=235):
"""Get the pull request we wish to use in this test."""
owner, repo = repository.split('/')
p = self.gh.pull_request(owner, repo, num)
assert isinstance(p, github3.pulls.PullRequest)
return p
def test_close(self):
"""Show that one can close an open Pull Request."""
self.basic_login()
cassette_name = self.cassette_name('close')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request(num=241)
assert p.close() is True
def test_commits(self):
"""Show that one can iterate over a PR's commits."""
cassette_name = self.cassette_name('commits')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request()
for commit in p.commits():
assert isinstance(commit, github3.repos.commit.RepoCommit)
def test_create_review_comment(self):
"""Show that a user can create an in-line reveiw comment on a PR."""
self.basic_login()
cassette_name = self.cassette_name('create_review_comment')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request(num=286)
comment = p.create_review_comment(
body='Testing review comments',
commit_id='4437428aefdb50913e2acabd0552bd13021dc38f',
path='github3/pulls.py',
position=6
)
assert isinstance(comment, github3.pulls.ReviewComment)
def test_diff(self):
"""Show that one can retrieve a bytestring diff of a PR."""
cassette_name = self.cassette_name('diff')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request()
diff = p.diff()
assert isinstance(diff, bytes)
assert len(diff) > 0
def test_files(self):
"""Show that one can iterate over a PR's files."""
cassette_name = self.cassette_name('files')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request()
for pr_file in p.files():
assert isinstance(pr_file, github3.pulls.PullFile)
def test_is_merged(self):
"""Show that one can check if a PR was merged."""
cassette_name = self.cassette_name('is_merged')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request()
assert p.is_merged() is True
def test_issue_comments(self):
"""Show that one can iterate over a PR's issue comments."""
cassette_name = self.cassette_name('issue_comments')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request()
for comment in p.issue_comments():
assert isinstance(comment,
github3.issues.comment.IssueComment)
def test_patch(self):
"""Show that a user can get the patch from a PR."""
cassette_name = self.cassette_name('patch')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request()
patch = p.patch()
assert isinstance(patch, bytes)
assert len(patch) > 0
def test_reopen(self):
"""Show that one can reopen an open Pull Request."""
self.basic_login()
cassette_name = self.cassette_name('reopen')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request(num=241)
assert p.reopen() is True
def test_review_comments(self):
"""Show that one can iterate over a PR's review comments."""
cassette_name = self.cassette_name('review_comments')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request()
for comment in p.review_comments():
assert isinstance(comment, github3.pulls.ReviewComment)
def test_update(self):
"""Show that one can update an open Pull Request."""
self.basic_login()
cassette_name = self.cassette_name('update')
with self.recorder.use_cassette(cassette_name):
p = self.get_pull_request(num=241)
assert p.update(p.title) is True
class TestReviewComment(IntegrationHelper):
"""Integration tests for the ReviewComment object."""
def test_reply(self):
"""Show that a user can reply to an existing ReviewComment."""
self.basic_login()
cassette_name = self.cassette_name('reply')
with self.recorder.use_cassette(cassette_name):
p = self.gh.pull_request('sigmavirus24', 'github3.py', 286)
c = next(p.review_comments())
comment = c.reply('Replying to comments is fun.')
assert isinstance(comment, github3.pulls.ReviewComment)