github_api 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- metadata +4 -140
- data/LICENSE.txt +0 -20
- data/README.rdoc +0 -228
- data/Rakefile +0 -52
- data/features/github_api.feature +0 -50
- data/features/step_definitions/github_api_steps.rb +0 -11
- data/features/support/env.rb +0 -13
- data/lib/github_api.rb +0 -73
- data/lib/github_api/api.rb +0 -175
- data/lib/github_api/api/utils.rb +0 -9
- data/lib/github_api/authorization.rb +0 -73
- data/lib/github_api/authorizations.rb +0 -119
- data/lib/github_api/cache_control.rb +0 -19
- data/lib/github_api/client.rb +0 -55
- data/lib/github_api/compatibility.rb +0 -23
- data/lib/github_api/configuration.rb +0 -96
- data/lib/github_api/connection.rb +0 -81
- data/lib/github_api/core_ext/array.rb +0 -14
- data/lib/github_api/core_ext/hash.rb +0 -42
- data/lib/github_api/error.rb +0 -35
- data/lib/github_api/events.rb +0 -202
- data/lib/github_api/gists.rb +0 -200
- data/lib/github_api/gists/comments.rb +0 -86
- data/lib/github_api/git_data.rb +0 -26
- data/lib/github_api/git_data/blobs.rb +0 -51
- data/lib/github_api/git_data/commits.rb +0 -78
- data/lib/github_api/git_data/references.rb +0 -113
- data/lib/github_api/git_data/tags.rb +0 -78
- data/lib/github_api/git_data/trees.rb +0 -89
- data/lib/github_api/issues.rb +0 -215
- data/lib/github_api/issues/comments.rb +0 -110
- data/lib/github_api/issues/events.rb +0 -50
- data/lib/github_api/issues/labels.rb +0 -191
- data/lib/github_api/issues/milestones.rb +0 -119
- data/lib/github_api/mime_type.rb +0 -55
- data/lib/github_api/orgs.rb +0 -95
- data/lib/github_api/orgs/members.rb +0 -120
- data/lib/github_api/orgs/teams.rb +0 -245
- data/lib/github_api/pull_requests.rb +0 -224
- data/lib/github_api/pull_requests/comments.rb +0 -144
- data/lib/github_api/repos.rb +0 -286
- data/lib/github_api/repos/collaborators.rb +0 -81
- data/lib/github_api/repos/commits.rb +0 -180
- data/lib/github_api/repos/downloads.rb +0 -155
- data/lib/github_api/repos/forks.rb +0 -48
- data/lib/github_api/repos/hooks.rb +0 -173
- data/lib/github_api/repos/keys.rb +0 -104
- data/lib/github_api/repos/pub_sub_hubbub.rb +0 -102
- data/lib/github_api/repos/watching.rb +0 -94
- data/lib/github_api/request.rb +0 -84
- data/lib/github_api/request/basic_auth.rb +0 -31
- data/lib/github_api/request/caching.rb +0 -33
- data/lib/github_api/request/oauth2.rb +0 -33
- data/lib/github_api/response.rb +0 -28
- data/lib/github_api/response/helpers.rb +0 -14
- data/lib/github_api/response/jsonize.rb +0 -26
- data/lib/github_api/response/mashify.rb +0 -24
- data/lib/github_api/response/raise_error.rb +0 -33
- data/lib/github_api/result.rb +0 -42
- data/lib/github_api/users.rb +0 -84
- data/lib/github_api/users/emails.rb +0 -49
- data/lib/github_api/users/followers.rb +0 -98
- data/lib/github_api/users/keys.rb +0 -84
- data/lib/github_api/version.rb +0 -12
- data/spec/README.rdoc +0 -22
- data/spec/coverage_adapter.rb +0 -14
- data/spec/fixtures/auths/authorization.json +0 -14
- data/spec/fixtures/auths/authorizations.json +0 -16
- data/spec/fixtures/events/events.json +0 -29
- data/spec/fixtures/issues/issue.json +0 -56
- data/spec/fixtures/issues/issues.json +0 -58
- data/spec/fixtures/orgs/members.json +0 -9
- data/spec/fixtures/orgs/org.json +0 -18
- data/spec/fixtures/orgs/orgs.json +0 -8
- data/spec/fixtures/orgs/team.json +0 -8
- data/spec/fixtures/orgs/team_repos.json +0 -29
- data/spec/fixtures/orgs/teams.json +0 -7
- data/spec/fixtures/repos/branches.json +0 -9
- data/spec/fixtures/repos/collaborators.json +0 -8
- data/spec/fixtures/repos/commit.json +0 -53
- data/spec/fixtures/repos/commit_comment.json +0 -16
- data/spec/fixtures/repos/commit_comments.json +0 -18
- data/spec/fixtures/repos/commits.json +0 -27
- data/spec/fixtures/repos/contributors.json +0 -8
- data/spec/fixtures/repos/download.json +0 -10
- data/spec/fixtures/repos/download_s3.json +0 -21
- data/spec/fixtures/repos/downloads.json +0 -12
- data/spec/fixtures/repos/fork.json +0 -27
- data/spec/fixtures/repos/forks.json +0 -29
- data/spec/fixtures/repos/hook.json +0 -15
- data/spec/fixtures/repos/hooks.json +0 -10
- data/spec/fixtures/repos/key.json +0 -6
- data/spec/fixtures/repos/keys.json +0 -8
- data/spec/fixtures/repos/languages.json +0 -4
- data/spec/fixtures/repos/repo.json +0 -90
- data/spec/fixtures/repos/repo_comments.json +0 -18
- data/spec/fixtures/repos/repos.json +0 -29
- data/spec/fixtures/repos/tags.json +0 -11
- data/spec/fixtures/repos/teams.json +0 -7
- data/spec/fixtures/repos/watched.json +0 -29
- data/spec/fixtures/repos/watchers.json +0 -8
- data/spec/fixtures/users/user.json +0 -32
- data/spec/github/api_spec.rb +0 -25
- data/spec/github/authorization_spec.rb +0 -176
- data/spec/github/authorizations_spec.rb +0 -242
- data/spec/github/client_spec.rb +0 -50
- data/spec/github/core_ext/hash_spec.rb +0 -44
- data/spec/github/events_spec.rb +0 -491
- data/spec/github/gists/comments_spec.rb +0 -5
- data/spec/github/gists_spec.rb +0 -5
- data/spec/github/git_data/blobs_spec.rb +0 -5
- data/spec/github/git_data/commits_spec.rb +0 -5
- data/spec/github/git_data/references_spec.rb +0 -5
- data/spec/github/git_data/tags_spec.rb +0 -5
- data/spec/github/git_data/trees_spec.rb +0 -5
- data/spec/github/git_data_spec.rb +0 -5
- data/spec/github/issues/comments_spec.rb +0 -5
- data/spec/github/issues/events_spec.rb +0 -5
- data/spec/github/issues/labels_spec.rb +0 -5
- data/spec/github/issues/milestones_spec.rb +0 -5
- data/spec/github/issues_spec.rb +0 -287
- data/spec/github/mime_type_spec.rb +0 -70
- data/spec/github/orgs/members_spec.rb +0 -275
- data/spec/github/orgs/teams_spec.rb +0 -563
- data/spec/github/orgs_spec.rb +0 -160
- data/spec/github/repos/collaborators_spec.rb +0 -169
- data/spec/github/repos/commits_spec.rb +0 -424
- data/spec/github/repos/downloads_spec.rb +0 -236
- data/spec/github/repos/forks_spec.rb +0 -103
- data/spec/github/repos/hooks_spec.rb +0 -307
- data/spec/github/repos/keys_spec.rb +0 -216
- data/spec/github/repos/pub_sub_hubbub_spec.rb +0 -83
- data/spec/github/repos/watching_spec.rb +0 -222
- data/spec/github/repos_spec.rb +0 -571
- data/spec/github/result_spec.rb +0 -43
- data/spec/github/users_spec.rb +0 -140
- data/spec/github_spec.rb +0 -109
- data/spec/spec_helper.rb +0 -86
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Github::Repos::Downloads do
|
|
4
|
-
|
|
5
|
-
let(:github) { Github.new }
|
|
6
|
-
let(:user) { 'peter-murach' }
|
|
7
|
-
let(:repo) { 'github' }
|
|
8
|
-
|
|
9
|
-
describe "downloads" do
|
|
10
|
-
context "resource found" do
|
|
11
|
-
before do
|
|
12
|
-
stub_get("/repos/#{user}/#{repo}/downloads").
|
|
13
|
-
to_return(:body => fixture('repos/downloads.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "should fail to get resource without username" do
|
|
17
|
-
github.user, github.repo = nil, nil
|
|
18
|
-
expect { github.repos.downloads }.to raise_error(ArgumentError)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "should get the resources" do
|
|
22
|
-
github.repos.downloads user, repo
|
|
23
|
-
a_get("/repos/#{user}/#{repo}/downloads").should have_been_made
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it "should return array of resources" do
|
|
27
|
-
downloads = github.repos.downloads user, repo
|
|
28
|
-
downloads.should be_an Array
|
|
29
|
-
downloads.should have(1).items
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it "should be a mash type" do
|
|
33
|
-
downloads = github.repos.downloads user, repo
|
|
34
|
-
downloads.first.should be_a Hashie::Mash
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should get download information" do
|
|
38
|
-
downloads = github.repos.downloads user, repo
|
|
39
|
-
downloads.first.name.should == 'new_file.jpg'
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
it "should yield to a block" do
|
|
43
|
-
github.repos.should_receive(:downloads).with(user, repo).and_yield('web')
|
|
44
|
-
github.repos.downloads(user, repo) { |param| 'web' }
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
context "resource not found" do
|
|
49
|
-
before do
|
|
50
|
-
stub_get("/repos/#{user}/#{repo}/downloads").
|
|
51
|
-
to_return(:body => "", :status => [404, "Not Found"])
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
it "should return 404 with a message 'Not Found'" do
|
|
55
|
-
expect {
|
|
56
|
-
github.repos.downloads user, repo
|
|
57
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end # downloads
|
|
61
|
-
|
|
62
|
-
describe "download" do
|
|
63
|
-
let(:download_id) { 1 }
|
|
64
|
-
|
|
65
|
-
context "resource found" do
|
|
66
|
-
before do
|
|
67
|
-
stub_get("/repos/#{user}/#{repo}/downloads/#{download_id}").
|
|
68
|
-
to_return(:body => fixture('repos/download.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it "should fail to get resource without download id" do
|
|
72
|
-
expect { github.repos.download(user, repo, nil)}.to raise_error(ArgumentError)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
it "should get the resource" do
|
|
76
|
-
github.repos.download user, repo, download_id
|
|
77
|
-
a_get("/repos/#{user}/#{repo}/downloads/#{download_id}").should have_been_made
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
it "should get download information" do
|
|
81
|
-
download = github.repos.download user, repo, download_id
|
|
82
|
-
download.id.should == download_id
|
|
83
|
-
download.name.should == 'new_file.jpg'
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
it "should return mash" do
|
|
87
|
-
download = github.repos.download user, repo, download_id
|
|
88
|
-
download.should be_a Hashie::Mash
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
context "resource not found" do
|
|
93
|
-
before do
|
|
94
|
-
stub_get("/repos/#{user}/#{repo}/downloads/#{download_id}").
|
|
95
|
-
to_return(:body => fixture('repos/download.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
it "should fail to retrive resource" do
|
|
99
|
-
expect {
|
|
100
|
-
github.repos.download user, repo, download_id
|
|
101
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
end # download
|
|
105
|
-
|
|
106
|
-
describe "delete_download" do
|
|
107
|
-
let(:download_id) { 1 }
|
|
108
|
-
|
|
109
|
-
context "resource edited successfully" do
|
|
110
|
-
before do
|
|
111
|
-
stub_delete("/repos/#{user}/#{repo}/downloads/#{download_id}").
|
|
112
|
-
to_return(:body => '', :status => 204, :headers => { :content_type => "application/json; charset=utf-8"})
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
it "should fail to delete without 'user/repo' parameters" do
|
|
116
|
-
github.user, github.repo = nil, nil
|
|
117
|
-
expect { github.repos.delete_download }.to raise_error(ArgumentError)
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
it "should fail to delete resource without 'download_id'" do
|
|
121
|
-
expect {
|
|
122
|
-
github.repos.delete_download user, repo
|
|
123
|
-
}.to raise_error(ArgumentError)
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
it "should delete the resource" do
|
|
127
|
-
github.repos.delete_download user, repo, download_id
|
|
128
|
-
a_delete("/repos/#{user}/#{repo}/downloads/#{download_id}").should have_been_made
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
context "failed to edit resource" do
|
|
133
|
-
before do
|
|
134
|
-
stub_delete("/repos/#{user}/#{repo}/downloads/#{download_id}").
|
|
135
|
-
to_return(:body => fixture("repos/download.json"), :status => 404, :headers => { :content_type => "application/json; charset=utf-8"})
|
|
136
|
-
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
it "should fail to find resource" do
|
|
140
|
-
expect {
|
|
141
|
-
github.repos.delete_download user, repo, download_id
|
|
142
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
143
|
-
end
|
|
144
|
-
end
|
|
145
|
-
end # delete_download
|
|
146
|
-
|
|
147
|
-
describe "create_download" do
|
|
148
|
-
let(:inputs) { {:name => 'new_file.jpg', :size => 114034, :description => "Latest release", :content_type => 'text/plain'} }
|
|
149
|
-
|
|
150
|
-
context "resouce created" do
|
|
151
|
-
before do
|
|
152
|
-
stub_post("/repos/#{user}/#{repo}/downloads").with(inputs).
|
|
153
|
-
to_return(:body => fixture('repos/download_s3.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
154
|
-
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
it "should fail to create resource if 'name' input is missing" do
|
|
158
|
-
expect {
|
|
159
|
-
github.repos.create_download user, repo, inputs.except(:name)
|
|
160
|
-
}.to raise_error(ArgumentError)
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
it "should failt to create resource if 'size' input is missing" do
|
|
164
|
-
expect {
|
|
165
|
-
github.repos.create_download user, repo, inputs.except(:size)
|
|
166
|
-
}.to raise_error(ArgumentError)
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
it "should create resource successfully" do
|
|
170
|
-
github.repos.create_download user, repo, inputs
|
|
171
|
-
a_post("/repos/#{user}/#{repo}/downloads").with(inputs).should have_been_made
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
it "should return the resource" do
|
|
175
|
-
download = github.repos.create_download user, repo, inputs
|
|
176
|
-
download.should be_a Hashie::Mash
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
it "should get the download information" do
|
|
180
|
-
download = github.repos.create_download user, repo, inputs
|
|
181
|
-
download.name.should == 'new_file.jpg'
|
|
182
|
-
end
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
context "failed to create resource" do
|
|
186
|
-
before do
|
|
187
|
-
stub_post("/repos/#{user}/#{repo}/downloads").with(inputs).
|
|
188
|
-
to_return(:body => fixture('repos/download_s3.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
189
|
-
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
it "should faile to retrieve resource" do
|
|
193
|
-
expect {
|
|
194
|
-
github.repos.create_download(user, repo, inputs)
|
|
195
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
196
|
-
end
|
|
197
|
-
end
|
|
198
|
-
end # create_download
|
|
199
|
-
|
|
200
|
-
describe 'upload' do
|
|
201
|
-
let(:inputs) { {:name => 'new_file.jpg', :size => 114034, :description => "Latest release", :content_type => 'text/plain'} }
|
|
202
|
-
let(:resource) { Hashie::Mash.new ::JSON.parse(fixture('repos/download_s3.json').read) }
|
|
203
|
-
let(:file) { 'filename' }
|
|
204
|
-
|
|
205
|
-
context 'resource uploaded' do
|
|
206
|
-
before do
|
|
207
|
-
stub_post('', 'https://github.s3.amazonaws.com/').with(resource).
|
|
208
|
-
to_return(:body => '', :status => 200, :headers => {})
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
it "should fail if resource is of incorrect type" do
|
|
212
|
-
expect { github.repos.upload file, file }.to raise_error(ArgumentError)
|
|
213
|
-
end
|
|
214
|
-
|
|
215
|
-
it "should upload resource successfully" do
|
|
216
|
-
github.repos.upload resource, file
|
|
217
|
-
a_post('', 'https://github.s3.amazonaws.com').with(resource).should have_been_made
|
|
218
|
-
end
|
|
219
|
-
|
|
220
|
-
end
|
|
221
|
-
context 'failed to upload resource' do
|
|
222
|
-
before do
|
|
223
|
-
stub_post('', 'https://github.s3.amazonaws.com/').with(resource).
|
|
224
|
-
to_return(:body => '', :status => 404, :headers => {})
|
|
225
|
-
end
|
|
226
|
-
|
|
227
|
-
it "should faile to retrieve resource" do
|
|
228
|
-
expect {
|
|
229
|
-
github.repos.upload resource, file
|
|
230
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
end
|
|
234
|
-
end # upload
|
|
235
|
-
|
|
236
|
-
end # Github::Repos::Downloads
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Github::Repos::Forks do
|
|
4
|
-
|
|
5
|
-
let(:github) { Github.new }
|
|
6
|
-
let(:user) { 'peter-murach' }
|
|
7
|
-
let(:repo) { 'github' }
|
|
8
|
-
|
|
9
|
-
describe "forks" do
|
|
10
|
-
context "resource found" do
|
|
11
|
-
before do
|
|
12
|
-
stub_get("/repos/#{user}/#{repo}/forks").
|
|
13
|
-
to_return(:body => fixture('repos/forks.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "should fail to get resource without username" do
|
|
17
|
-
github.user, github.repo = nil, nil
|
|
18
|
-
expect { github.repos.forks }.to raise_error(ArgumentError)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "should get the resources" do
|
|
22
|
-
github.repos.forks user, repo
|
|
23
|
-
a_get("/repos/#{user}/#{repo}/forks").should have_been_made
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it "should return array of resources" do
|
|
27
|
-
forks = github.repos.forks user, repo
|
|
28
|
-
forks.should be_an Array
|
|
29
|
-
forks.should have(1).items
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it "should be a mash type" do
|
|
33
|
-
forks = github.repos.forks user, repo
|
|
34
|
-
forks.first.should be_a Hashie::Mash
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should get fork information" do
|
|
38
|
-
forks = github.repos.forks user, repo
|
|
39
|
-
forks.first.name.should == 'Hello-World'
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
it "should yield to a block" do
|
|
43
|
-
github.repos.should_receive(:forks).with(user, repo).and_yield('web')
|
|
44
|
-
github.repos.forks(user, repo) { |param| 'web' }
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
context "resource not found" do
|
|
49
|
-
before do
|
|
50
|
-
stub_get("/repos/#{user}/#{repo}/forks").
|
|
51
|
-
to_return(:body => "", :status => [404, "Not Found"])
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
it "should return 404 with a message 'Not Found'" do
|
|
55
|
-
expect {
|
|
56
|
-
github.repos.forks user, repo
|
|
57
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end # forks
|
|
61
|
-
|
|
62
|
-
describe "create_hook" do
|
|
63
|
-
let(:inputs) { {:org => 'github'} }
|
|
64
|
-
|
|
65
|
-
context "resouce created" do
|
|
66
|
-
before do
|
|
67
|
-
stub_post("/repos/#{user}/#{repo}/forks").with(inputs).
|
|
68
|
-
to_return(:body => fixture('repos/fork.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
69
|
-
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
it "should create resource successfully" do
|
|
73
|
-
github.repos.create_fork(user, repo, inputs)
|
|
74
|
-
a_post("/repos/#{user}/#{repo}/forks").with(inputs).should have_been_made
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
it "should return the resource" do
|
|
78
|
-
fork = github.repos.create_fork user, repo, inputs
|
|
79
|
-
fork.should be_a Hashie::Mash
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
it "should get the fork information" do
|
|
83
|
-
fork = github.repos.create_fork(user, repo, inputs)
|
|
84
|
-
fork.name.should == 'Hello-World'
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
context "failed to create resource" do
|
|
89
|
-
before do
|
|
90
|
-
stub_post("/repos/#{user}/#{repo}/forks").with(inputs).
|
|
91
|
-
to_return(:body => fixture('repos/fork.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
92
|
-
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
it "should faile to retrieve resource" do
|
|
96
|
-
expect {
|
|
97
|
-
github.repos.create_fork user, repo, inputs
|
|
98
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end # create_fork
|
|
102
|
-
|
|
103
|
-
end # Github::Repos::Forks
|
|
@@ -1,307 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe Github::Repos::Hooks do
|
|
4
|
-
|
|
5
|
-
let(:github) { Github.new }
|
|
6
|
-
let(:user) { 'peter-murach' }
|
|
7
|
-
let(:repo) { 'github' }
|
|
8
|
-
|
|
9
|
-
describe "hooks" do
|
|
10
|
-
context "resource found" do
|
|
11
|
-
before do
|
|
12
|
-
stub_get("/repos/#{user}/#{repo}/hooks").
|
|
13
|
-
to_return(:body => fixture('repos/hooks.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "should fail to get resource without username" do
|
|
17
|
-
github.user, github.repo = nil, nil
|
|
18
|
-
expect { github.repos.hooks }.to raise_error(ArgumentError)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "should get the resources" do
|
|
22
|
-
github.repos.hooks user, repo
|
|
23
|
-
a_get("/repos/#{user}/#{repo}/hooks").should have_been_made
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it "should return array of resources" do
|
|
27
|
-
hooks = github.repos.hooks user, repo
|
|
28
|
-
hooks.should be_an Array
|
|
29
|
-
hooks.should have(1).items
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it "should be a mash type" do
|
|
33
|
-
hooks = github.repos.hooks user, repo
|
|
34
|
-
hooks.first.should be_a Hashie::Mash
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should get hook information" do
|
|
38
|
-
hooks = github.repos.hooks(user, repo)
|
|
39
|
-
hooks.first.name.should == 'web'
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
it "should yield to a block" do
|
|
43
|
-
github.repos.should_receive(:hooks).with(user, repo).and_yield('web')
|
|
44
|
-
github.repos.hooks(user, repo) { |param| 'web' }
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
context "resource not found" do
|
|
49
|
-
before do
|
|
50
|
-
stub_get("/repos/#{user}/#{repo}/hooks").
|
|
51
|
-
to_return(:body => "", :status => [404, "Not Found"])
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
it "should return 404 with a message 'Not Found'" do
|
|
55
|
-
expect {
|
|
56
|
-
github.repos.hooks user, repo
|
|
57
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end # hooks
|
|
61
|
-
|
|
62
|
-
describe "hook" do
|
|
63
|
-
let(:hook_id) { 1 }
|
|
64
|
-
|
|
65
|
-
context "resource found" do
|
|
66
|
-
before do
|
|
67
|
-
stub_get("/repos/#{user}/#{repo}/hooks/#{hook_id}").
|
|
68
|
-
to_return(:body => fixture('repos/hook.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it "should fail to get resource without hook id" do
|
|
72
|
-
expect { github.repos.hook(user, repo, nil)}.to raise_error(ArgumentError)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
it "should get the resource" do
|
|
76
|
-
github.repos.hook user, repo, hook_id
|
|
77
|
-
a_get("/repos/#{user}/#{repo}/hooks/#{hook_id}").should have_been_made
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
it "should get hook information" do
|
|
81
|
-
hook = github.repos.hook user, repo, hook_id
|
|
82
|
-
hook.id.should == hook_id
|
|
83
|
-
hook.name.should == 'web'
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
it "should return mash" do
|
|
87
|
-
hook = github.repos.hook user, repo, hook_id
|
|
88
|
-
hook.should be_a Hashie::Mash
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
context "resource not found" do
|
|
94
|
-
before do
|
|
95
|
-
stub_get("/repos/#{user}/#{repo}/hooks/#{hook_id}").
|
|
96
|
-
to_return(:body => fixture('repos/hook.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
it "should fail to retrive resource" do
|
|
100
|
-
expect {
|
|
101
|
-
github.repos.hook(user, repo, hook_id)
|
|
102
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
end # hook
|
|
106
|
-
|
|
107
|
-
describe "create_hook" do
|
|
108
|
-
let(:inputs) { {:name => 'web', :config => {:url => "http://something.com/webhook"}, :active => true}}
|
|
109
|
-
|
|
110
|
-
context "resouce created" do
|
|
111
|
-
before do
|
|
112
|
-
stub_post("/repos/#{user}/#{repo}/hooks").with(inputs).
|
|
113
|
-
to_return(:body => fixture('repos/hook.json'), :status => 201, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
114
|
-
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
it "should fail to create resource if 'name' input is missing" do
|
|
118
|
-
expect {
|
|
119
|
-
github.repos.create_hook(user, repo, inputs.except(:name) )
|
|
120
|
-
}.to raise_error(ArgumentError)
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
it "should failt to create resource if 'config' input is missing" do
|
|
124
|
-
expect {
|
|
125
|
-
github.repos.create_hook(user, repo, inputs.except(:config) )
|
|
126
|
-
}.to raise_error(ArgumentError)
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
it "should create resource successfully" do
|
|
130
|
-
github.repos.create_hook(user, repo, inputs)
|
|
131
|
-
a_post("/repos/#{user}/#{repo}/hooks").with(inputs).should have_been_made
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
it "should return the resource" do
|
|
135
|
-
hook = github.repos.create_hook user, repo, inputs
|
|
136
|
-
hook.should be_a Hashie::Mash
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
it "should get the hook information" do
|
|
140
|
-
hook = github.repos.create_hook(user, repo, inputs)
|
|
141
|
-
hook.name.should == 'web'
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
context "failed to create resource" do
|
|
146
|
-
before do
|
|
147
|
-
stub_post("/repos/#{user}/#{repo}/hooks").with(inputs).
|
|
148
|
-
to_return(:body => fixture('repos/hook.json'), :status => 404, :headers => {:content_type => "application/json; charset=utf-8"})
|
|
149
|
-
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
it "should faile to retrieve resource" do
|
|
153
|
-
expect {
|
|
154
|
-
github.repos.create_hook(user, repo, inputs)
|
|
155
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
end # create_hook
|
|
159
|
-
|
|
160
|
-
describe "edit_hook" do
|
|
161
|
-
let(:hook_id) { 1 }
|
|
162
|
-
let(:inputs) { {:name => 'web', :config => {:url => "http://something.com/webhook"}, :active => true}}
|
|
163
|
-
|
|
164
|
-
context "resource edited successfully" do
|
|
165
|
-
before do
|
|
166
|
-
stub_patch("/repos/#{user}/#{repo}/hooks/#{hook_id}").with(inputs).
|
|
167
|
-
to_return(:body => fixture("repos/hook.json"), :status => 200, :headers => { :content_type => "application/json; charset=utf-8"})
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
it "should fail to edit without 'user/repo' parameters" do
|
|
171
|
-
github.user, github.repo = nil, nil
|
|
172
|
-
expect { github.repos.edit_hook }.to raise_error(ArgumentError)
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
it "should fail to edit resource without 'name' parameter" do
|
|
176
|
-
expect{
|
|
177
|
-
github.repos.edit_hook user, repo, inputs.except(:name)
|
|
178
|
-
}.to raise_error(ArgumentError)
|
|
179
|
-
end
|
|
180
|
-
|
|
181
|
-
it "should fail to edit resource without 'hook_id'" do
|
|
182
|
-
expect {
|
|
183
|
-
github.repos.edit_hook user, repo
|
|
184
|
-
}.to raise_error(ArgumentError)
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
it "should fail to edit resource without 'config' parameter" do
|
|
188
|
-
expect {
|
|
189
|
-
github.repos.edit_hook user, repo, hook_id, inputs.except(:config)
|
|
190
|
-
}.to raise_error(ArgumentError)
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
it "should edit the resource" do
|
|
194
|
-
github.repos.edit_hook user, repo, hook_id, inputs
|
|
195
|
-
a_patch("/repos/#{user}/#{repo}/hooks/#{hook_id}").with(inputs).should have_been_made
|
|
196
|
-
end
|
|
197
|
-
|
|
198
|
-
it "should return resource" do
|
|
199
|
-
hook = github.repos.edit_hook user, repo, hook_id, inputs
|
|
200
|
-
hook.should be_a Hashie::Mash
|
|
201
|
-
end
|
|
202
|
-
|
|
203
|
-
it "should be able to retrieve information" do
|
|
204
|
-
hook = github.repos.edit_hook user, repo, hook_id, inputs
|
|
205
|
-
hook.name.should == 'web'
|
|
206
|
-
end
|
|
207
|
-
|
|
208
|
-
end
|
|
209
|
-
|
|
210
|
-
context "failed to edit resource" do
|
|
211
|
-
before do
|
|
212
|
-
stub_patch("/repos/#{user}/#{repo}/hooks/#{hook_id}").with(inputs).
|
|
213
|
-
to_return(:body => fixture("repos/hook.json"), :status => 404, :headers => { :content_type => "application/json; charset=utf-8"})
|
|
214
|
-
|
|
215
|
-
end
|
|
216
|
-
|
|
217
|
-
it "should fail to find resource" do
|
|
218
|
-
expect {
|
|
219
|
-
github.repos.edit_hook user, repo, hook_id, inputs
|
|
220
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
221
|
-
end
|
|
222
|
-
end
|
|
223
|
-
end # edit_hook
|
|
224
|
-
|
|
225
|
-
describe "delete_hook" do
|
|
226
|
-
let(:hook_id) { 1 }
|
|
227
|
-
|
|
228
|
-
context "resource edited successfully" do
|
|
229
|
-
before do
|
|
230
|
-
stub_delete("/repos/#{user}/#{repo}/hooks/#{hook_id}").
|
|
231
|
-
to_return(:body => '', :status => 204, :headers => { :content_type => "application/json; charset=utf-8"})
|
|
232
|
-
end
|
|
233
|
-
|
|
234
|
-
it "should fail to delete without 'user/repo' parameters" do
|
|
235
|
-
github.user, github.repo = nil, nil
|
|
236
|
-
expect { github.repos.delete_hook }.to raise_error(ArgumentError)
|
|
237
|
-
end
|
|
238
|
-
|
|
239
|
-
it "should fail to delete resource without 'hook_id'" do
|
|
240
|
-
expect {
|
|
241
|
-
github.repos.delete_hook user, repo
|
|
242
|
-
}.to raise_error(ArgumentError)
|
|
243
|
-
end
|
|
244
|
-
|
|
245
|
-
it "should delete the resource" do
|
|
246
|
-
github.repos.delete_hook user, repo, hook_id
|
|
247
|
-
a_delete("/repos/#{user}/#{repo}/hooks/#{hook_id}").should have_been_made
|
|
248
|
-
end
|
|
249
|
-
end
|
|
250
|
-
|
|
251
|
-
context "failed to edit resource" do
|
|
252
|
-
before do
|
|
253
|
-
stub_delete("/repos/#{user}/#{repo}/hooks/#{hook_id}").
|
|
254
|
-
to_return(:body => fixture("repos/hook.json"), :status => 404, :headers => { :content_type => "application/json; charset=utf-8"})
|
|
255
|
-
|
|
256
|
-
end
|
|
257
|
-
|
|
258
|
-
it "should fail to find resource" do
|
|
259
|
-
expect {
|
|
260
|
-
github.repos.delete_hook user, repo, hook_id
|
|
261
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
262
|
-
end
|
|
263
|
-
end
|
|
264
|
-
end # delete_hook
|
|
265
|
-
|
|
266
|
-
describe "test_hook" do
|
|
267
|
-
let(:hook_id) { 1 }
|
|
268
|
-
|
|
269
|
-
context "resource edited successfully" do
|
|
270
|
-
before do
|
|
271
|
-
stub_post("/repos/#{user}/#{repo}/hooks/#{hook_id}/test").
|
|
272
|
-
to_return(:body => '', :status => 204, :headers => { :content_type => "application/json; charset=utf-8"})
|
|
273
|
-
end
|
|
274
|
-
|
|
275
|
-
it "should fail to test without 'user/repo' parameters" do
|
|
276
|
-
github.user, github.repo = nil, nil
|
|
277
|
-
expect { github.repos.test_hook }.to raise_error(ArgumentError)
|
|
278
|
-
end
|
|
279
|
-
|
|
280
|
-
it "should fail to test resource without 'hook_id'" do
|
|
281
|
-
expect {
|
|
282
|
-
github.repos.test_hook user, repo
|
|
283
|
-
}.to raise_error(ArgumentError)
|
|
284
|
-
end
|
|
285
|
-
|
|
286
|
-
it "should trigger test for the resource" do
|
|
287
|
-
github.repos.test_hook user, repo, hook_id
|
|
288
|
-
a_post("/repos/#{user}/#{repo}/hooks/#{hook_id}/test").should have_been_made
|
|
289
|
-
end
|
|
290
|
-
end
|
|
291
|
-
|
|
292
|
-
context "failed to test resource" do
|
|
293
|
-
before do
|
|
294
|
-
stub_post("/repos/#{user}/#{repo}/hooks/#{hook_id}/test").
|
|
295
|
-
to_return(:body => '', :status => 404, :headers => { :content_type => "application/json; charset=utf-8"})
|
|
296
|
-
|
|
297
|
-
end
|
|
298
|
-
|
|
299
|
-
it "should fail to find resource" do
|
|
300
|
-
expect {
|
|
301
|
-
github.repos.test_hook user, repo, hook_id
|
|
302
|
-
}.to raise_error(Github::ResourceNotFound)
|
|
303
|
-
end
|
|
304
|
-
end
|
|
305
|
-
end # test_hook
|
|
306
|
-
|
|
307
|
-
end # Github::Repos::Hooks
|