github_api 0.8.3 → 0.8.4
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.
- data/features/cassettes/issues/labels/create.yml +54 -0
- data/features/cassettes/issues/labels/delete.yml +46 -0
- data/features/cassettes/issues/labels/get.yml +63 -0
- data/features/cassettes/issues/labels/list_issue.yml +64 -0
- data/features/cassettes/issues/labels/list_milestone.yml +65 -0
- data/features/cassettes/issues/labels/update.yml +52 -0
- data/features/issues/labels.feature +71 -0
- data/features/issues/milestones.feature +3 -3
- data/features/step_definitions/common_steps.rb +5 -0
- data/features/support/vcr.rb +1 -1
- data/lib/github_api/issues.rb +5 -4
- data/lib/github_api/issues/labels.rb +35 -47
- data/lib/github_api/version.rb +1 -1
- data/spec/github/issues/labels/add_spec.rb +50 -0
- data/spec/github/issues/labels/create_spec.rb +59 -0
- data/spec/github/issues/labels/delete_spec.rb +39 -0
- data/spec/github/issues/labels/get_spec.rb +47 -0
- data/spec/github/issues/labels/list_spec.rb +100 -0
- data/spec/github/issues/labels/update_spec.rb +61 -0
- data/spec/github/issues/labels_spec.rb +0 -410
- metadata +44 -32
@@ -6,6 +6,11 @@ When /^(.*) within a cassette named "([^"]*)"$/ do |step_to_call, cassette_name|
|
|
6
6
|
VCR.use_cassette(cassette_name) { step step_to_call }
|
7
7
|
end
|
8
8
|
|
9
|
+
When /^(.*) within a cassette named "([^"]*)" and match on (.*)$/ do |step_to_call, cassette_name, matchers|
|
10
|
+
matches = matchers.split(',').map { |m| m.gsub(/\s*/,'') }.map(&:to_sym)
|
11
|
+
VCR.use_cassette(cassette_name, :match_requests_on => matches) { step step_to_call }
|
12
|
+
end
|
13
|
+
|
9
14
|
Then /^the response should equal (.*)$/ do |expected_response|
|
10
15
|
expected = case expected_response
|
11
16
|
when /t/
|
data/features/support/vcr.rb
CHANGED
@@ -3,7 +3,7 @@ require 'vcr'
|
|
3
3
|
VCR.configure do |conf|
|
4
4
|
conf.hook_into :webmock
|
5
5
|
conf.cassette_library_dir = 'features/cassettes'
|
6
|
-
conf.default_cassette_options = { :record => :
|
6
|
+
conf.default_cassette_options = { :record => :once }
|
7
7
|
conf.filter_sensitive_data('<EMAIL>') { SETTINGS['email'] }
|
8
8
|
conf.filter_sensitive_data('<TOKEN>') { SETTINGS['oauth_token'] }
|
9
9
|
conf.filter_sensitive_data('<BASIC_AUTH>') { SETTINGS['basic_auth'] }
|
data/lib/github_api/issues.rb
CHANGED
@@ -29,7 +29,7 @@ module Github
|
|
29
29
|
].freeze
|
30
30
|
|
31
31
|
VALID_ISSUE_PARAM_VALUES = {
|
32
|
-
'filter' => %w[ assigned created mentioned subscribed ],
|
32
|
+
'filter' => %w[ assigned created mentioned subscribed all ],
|
33
33
|
'state' => %w[ open closed ],
|
34
34
|
'sort' => %w[ created updated comments ],
|
35
35
|
'direction' => %w[ desc asc ],
|
@@ -98,9 +98,10 @@ module Github
|
|
98
98
|
# = Parameters
|
99
99
|
# <tt>:filter</tt>
|
100
100
|
# * <tt>assigned</tt> Issues assigned to you (default)
|
101
|
-
# * <tt>created</tt> Issues
|
102
|
-
# * <tt>mentioned</tt> Issues
|
103
|
-
# * <tt>subscribed</tt> Issues
|
101
|
+
# * <tt>created</tt> Issues created by you
|
102
|
+
# * <tt>mentioned</tt> Issues mentioning you
|
103
|
+
# * <tt>subscribed</tt> Issues you've subscribed to updates for
|
104
|
+
# * <tt>all</tt> All issues the user can see
|
104
105
|
# <tt>:milestone</tt>
|
105
106
|
# * Integer Milestone number
|
106
107
|
# * <tt>none</tt> for Issues with no Milestone.
|
@@ -17,12 +17,30 @@ module Github
|
|
17
17
|
# github.issues.labels.list
|
18
18
|
# github.issues.labels.list { |label| ... }
|
19
19
|
#
|
20
|
+
# Get labels for every issue in a milestone
|
21
|
+
#
|
22
|
+
# = Examples
|
23
|
+
# github = Github.new
|
24
|
+
# github.issues.labels.list 'user-name', 'repo-name', milestone_id: 'milestone-id'
|
25
|
+
#
|
26
|
+
# List labels on an issue
|
27
|
+
#
|
28
|
+
# = Examples
|
29
|
+
# @github = Github.new
|
30
|
+
# @github.issues.labels.list 'user-name', 'repo-name', issue_id: 'issue-id'
|
31
|
+
#
|
20
32
|
def list(user_name, repo_name, params={})
|
21
33
|
set :user => user_name, :repo => repo_name
|
22
34
|
assert_presence_of user, repo
|
23
35
|
normalize! params
|
24
36
|
|
25
|
-
response =
|
37
|
+
response = if (milestone_id = params.delete('milestone_id'))
|
38
|
+
get_request("/repos/#{user}/#{repo}/milestones/#{milestone_id}/labels", params)
|
39
|
+
elsif (issue_id = params.delete('issue_id'))
|
40
|
+
get_request("/repos/#{user}/#{repo}/issues/#{issue_id}/labels", params)
|
41
|
+
else
|
42
|
+
get_request("/repos/#{user}/#{repo}/labels", params)
|
43
|
+
end
|
26
44
|
return response unless block_given?
|
27
45
|
response.each { |el| yield el }
|
28
46
|
end
|
@@ -32,14 +50,14 @@ module Github
|
|
32
50
|
#
|
33
51
|
# = Examples
|
34
52
|
# github = Github.new
|
35
|
-
# github.issues.labels.find 'user-name', 'repo-name', 'label-
|
53
|
+
# github.issues.labels.find 'user-name', 'repo-name', 'label-name'
|
36
54
|
#
|
37
|
-
def get(user_name, repo_name,
|
55
|
+
def get(user_name, repo_name, label_name, params={})
|
38
56
|
set :user => user_name, :repo => repo_name
|
39
|
-
assert_presence_of user, repo,
|
57
|
+
assert_presence_of user, repo, label_name
|
40
58
|
normalize! params
|
41
59
|
|
42
|
-
get_request("/repos/#{user}/#{repo}/labels/#{
|
60
|
+
get_request("/repos/#{user}/#{repo}/labels/#{label_name}", params)
|
43
61
|
end
|
44
62
|
alias :find :get
|
45
63
|
|
@@ -72,18 +90,18 @@ module Github
|
|
72
90
|
#
|
73
91
|
# = Examples
|
74
92
|
# @github = Github.new
|
75
|
-
# @github.issues.labels.update 'user-name', 'repo-name', 'label-
|
93
|
+
# @github.issues.labels.update 'user-name', 'repo-name', 'label-name',
|
76
94
|
# :name => 'API', :color => "FFFFFF"
|
77
95
|
#
|
78
|
-
def update(user_name, repo_name,
|
96
|
+
def update(user_name, repo_name, label_name, params={})
|
79
97
|
set :user => user_name, :repo => repo_name
|
80
|
-
assert_presence_of user, repo,
|
98
|
+
assert_presence_of user, repo, label_name
|
81
99
|
|
82
100
|
normalize! params
|
83
101
|
filter! VALID_LABEL_INPUTS, params
|
84
102
|
assert_required_keys(VALID_LABEL_INPUTS, params)
|
85
103
|
|
86
|
-
patch_request("/repos/#{user}/#{repo}/labels/#{
|
104
|
+
patch_request("/repos/#{user}/#{repo}/labels/#{label_name}", params)
|
87
105
|
end
|
88
106
|
alias :edit :update
|
89
107
|
|
@@ -91,30 +109,16 @@ module Github
|
|
91
109
|
#
|
92
110
|
# = Examples
|
93
111
|
# github = Github.new
|
94
|
-
# github.issues.labels.delete 'user-name', 'repo-name', 'label-
|
112
|
+
# github.issues.labels.delete 'user-name', 'repo-name', 'label-name'
|
95
113
|
#
|
96
|
-
def delete(user_name, repo_name,
|
114
|
+
def delete(user_name, repo_name, label_name, params={})
|
97
115
|
set :user => user_name, :repo => repo_name
|
98
116
|
assert_presence_of user, repo
|
99
117
|
|
100
|
-
assert_presence_of
|
118
|
+
assert_presence_of label_name
|
101
119
|
normalize! params
|
102
120
|
|
103
|
-
delete_request("/repos/#{user}/#{repo}/labels/#{
|
104
|
-
end
|
105
|
-
|
106
|
-
# List labels on an issue
|
107
|
-
#
|
108
|
-
# = Examples
|
109
|
-
# @github = Github.new
|
110
|
-
# @github.issues.labels.issue 'user-name', 'repo-name', 'issue-id'
|
111
|
-
#
|
112
|
-
def issue(user_name, repo_name, issue_id, params={})
|
113
|
-
set :user => user_name, :repo => repo_name
|
114
|
-
assert_presence_of user, repo, issue_id
|
115
|
-
normalize! params
|
116
|
-
|
117
|
-
get_request("/repos/#{user}/#{repo}/issues/#{issue_id}/labels", params)
|
121
|
+
delete_request("/repos/#{user}/#{repo}/labels/#{label_name}", params)
|
118
122
|
end
|
119
123
|
|
120
124
|
# Add labels to an issue
|
@@ -146,19 +150,19 @@ module Github
|
|
146
150
|
# github = Github.new
|
147
151
|
# github.issues.labels.remove 'user-name', 'repo-name', 'issue-id'
|
148
152
|
#
|
149
|
-
def remove(user_name, repo_name, issue_id,
|
153
|
+
def remove(user_name, repo_name, issue_id, label_name=nil, params={})
|
150
154
|
set :user => user_name, :repo => repo_name
|
151
155
|
assert_presence_of user, repo, issue_id
|
152
156
|
normalize! params
|
153
157
|
|
154
|
-
if
|
155
|
-
delete_request("/repos/#{user}/#{repo}/issues/#{issue_id}/labels/#{
|
158
|
+
if label_name
|
159
|
+
delete_request("/repos/#{user}/#{repo}/issues/#{issue_id}/labels/#{label_name}", params)
|
156
160
|
else
|
157
161
|
delete_request("/repos/#{user}/#{repo}/issues/#{issue_id}/labels", params)
|
158
162
|
end
|
159
163
|
end
|
160
164
|
|
161
|
-
# Replace all labels for an issue
|
165
|
+
# Replace all labels for an issue
|
162
166
|
#
|
163
167
|
# Sending an empty array ([]) will remove all Labels from the Issue.
|
164
168
|
#
|
@@ -177,21 +181,5 @@ module Github
|
|
177
181
|
put_request("/repos/#{user}/#{repo}/issues/#{issue_id}/labels", params)
|
178
182
|
end
|
179
183
|
|
180
|
-
# Get labels for every issue in a milestone
|
181
|
-
#
|
182
|
-
# = Examples
|
183
|
-
# github = Github.new
|
184
|
-
# github.issues.labels. 'user-name', 'repo-name', 'milestone-id'
|
185
|
-
#
|
186
|
-
def milestone(user_name, repo_name, milestone_id, params={})
|
187
|
-
set :user => user_name, :repo => repo_name
|
188
|
-
assert_presence_of user, repo, milestone_id
|
189
|
-
normalize! params
|
190
|
-
|
191
|
-
response = get_request("/repos/#{user}/#{repo}/milestones/#{milestone_id}/labels", params)
|
192
|
-
return response unless block_given?
|
193
|
-
response.each { |el| yield el }
|
194
|
-
end
|
195
|
-
|
196
184
|
end # Issues::Labels
|
197
185
|
end # Github
|
data/lib/github_api/version.rb
CHANGED
@@ -0,0 +1,50 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Github::Issues::Labels, '#add' do
|
6
|
+
let(:user) { 'peter-murach' }
|
7
|
+
let(:repo) { 'github' }
|
8
|
+
let(:request_path) { "/repos/#{user}/#{repo}/issues/#{issue_id}/labels" }
|
9
|
+
|
10
|
+
before {
|
11
|
+
stub_post(request_path).
|
12
|
+
to_return(:body => body, :status => status,
|
13
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
14
|
+
}
|
15
|
+
|
16
|
+
after { reset_authentication_for(subject) }
|
17
|
+
|
18
|
+
let(:issue_id) { 1 }
|
19
|
+
let(:labels) { "Label 1" }
|
20
|
+
|
21
|
+
context "labels added" do
|
22
|
+
let(:body) { fixture('issues/labels.json') }
|
23
|
+
let(:status) { 200 }
|
24
|
+
|
25
|
+
it "should fail to add labels if issue-id is missing" do
|
26
|
+
expect {
|
27
|
+
subject.add user, repo, nil, labels
|
28
|
+
}.to raise_error(ArgumentError)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should create resource successfully" do
|
32
|
+
subject.add user, repo, issue_id, labels
|
33
|
+
a_post(request_path).should have_been_made
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should return the resource" do
|
37
|
+
labels = subject.add user, repo, issue_id, labels
|
38
|
+
labels.first.should be_a Hashie::Mash
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should get the label information" do
|
42
|
+
labels = subject.add user, repo, issue_id, labels
|
43
|
+
labels.first.name.should == 'bug'
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
it_should_behave_like 'request failure' do
|
48
|
+
let(:requestable) { subject.add user, repo, issue_id, labels }
|
49
|
+
end
|
50
|
+
end # add
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Github::Issues::Labels, '#create' do
|
6
|
+
let(:user) { 'peter-murach' }
|
7
|
+
let(:repo) { 'github' }
|
8
|
+
let(:request_path) { "/repos/#{user}/#{repo}/labels" }
|
9
|
+
let(:inputs) {
|
10
|
+
{
|
11
|
+
"name" => "API",
|
12
|
+
"color" => "FFFFFF",
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
before {
|
17
|
+
stub_post(request_path).with(inputs).
|
18
|
+
to_return(:body => body, :status => status,
|
19
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
20
|
+
}
|
21
|
+
|
22
|
+
after { reset_authentication_for(subject) }
|
23
|
+
|
24
|
+
context "resouce created" do
|
25
|
+
let(:body) { fixture('issues/label.json') }
|
26
|
+
let(:status) { 200 }
|
27
|
+
|
28
|
+
it "should fail to create resource if 'name' input is missing" do
|
29
|
+
expect {
|
30
|
+
subject.create user, repo, inputs.except('name')
|
31
|
+
}.to raise_error(Github::Error::RequiredParams)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should fail to create resource if 'color' input is missing" do
|
35
|
+
expect {
|
36
|
+
subject.create user, repo, inputs.except('color')
|
37
|
+
}.to raise_error(Github::Error::RequiredParams)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should create resource successfully" do
|
41
|
+
subject.create user, repo, inputs
|
42
|
+
a_post(request_path).with(inputs).should have_been_made
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should return the resource" do
|
46
|
+
label = subject.create user, repo, inputs
|
47
|
+
label.should be_a Hashie::Mash
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should get the label information" do
|
51
|
+
label = subject.create user, repo, inputs
|
52
|
+
label.name.should == 'bug'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it_should_behave_like 'request failure' do
|
57
|
+
let(:requestable) { subject.create user, repo, inputs }
|
58
|
+
end
|
59
|
+
end # create
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Github::Issues::Labels, '#delete' do
|
6
|
+
let(:user) { 'peter-murach' }
|
7
|
+
let(:repo) { 'github' }
|
8
|
+
let(:label_id) { 1 }
|
9
|
+
let(:request_path) { "/repos/#{user}/#{repo}/labels/#{label_id}" }
|
10
|
+
let(:inputs) {
|
11
|
+
{
|
12
|
+
"name" => "API",
|
13
|
+
"color" => "FFFFFF",
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
before {
|
18
|
+
stub_delete(request_path).with(inputs).
|
19
|
+
to_return(:body => body, :status => status,
|
20
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
21
|
+
}
|
22
|
+
|
23
|
+
after { reset_authentication_for(subject) }
|
24
|
+
|
25
|
+
context "resouce removed" do
|
26
|
+
let(:body) { fixture('issues/label.json') }
|
27
|
+
let(:status) { 204 }
|
28
|
+
|
29
|
+
it "should remove resource successfully" do
|
30
|
+
subject.delete user, repo, label_id
|
31
|
+
a_delete(request_path).should have_been_made
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
it_should_behave_like 'request failure' do
|
36
|
+
let(:requestable) { subject.delete user, repo, label_id }
|
37
|
+
end
|
38
|
+
|
39
|
+
end # delete
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Github::Issues::Labels, '#get' do
|
6
|
+
let(:user) { 'peter-murach' }
|
7
|
+
let(:repo) { 'github' }
|
8
|
+
let(:label_id) { 1 }
|
9
|
+
let(:request_path) { "/repos/#{user}/#{repo}/labels/#{label_id}" }
|
10
|
+
|
11
|
+
before {
|
12
|
+
stub_get(request_path).to_return(:body => body, :status => status,
|
13
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
14
|
+
}
|
15
|
+
|
16
|
+
after { reset_authentication_for(subject) }
|
17
|
+
|
18
|
+
context "resource found" do
|
19
|
+
let(:body) { fixture('issues/label.json') }
|
20
|
+
let(:status) { 200 }
|
21
|
+
|
22
|
+
it { should respond_to :get }
|
23
|
+
|
24
|
+
it "should fail to get resource without label id" do
|
25
|
+
expect { subject.get user, repo, nil }.to raise_error(ArgumentError)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should get the resource" do
|
29
|
+
subject.get user, repo, label_id
|
30
|
+
a_get(request_path).should have_been_made
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should get label information" do
|
34
|
+
label = subject.get user, repo, label_id
|
35
|
+
label.name.should == 'bug'
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should return mash" do
|
39
|
+
label = subject.get user, repo, label_id
|
40
|
+
label.should be_a Hashie::Mash
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
it_should_behave_like 'request failure' do
|
45
|
+
let(:requestable) { subject.get user, repo, label_id }
|
46
|
+
end
|
47
|
+
end # find
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Github::Issues::Labels, '#list' do
|
6
|
+
let(:user) { 'peter-murach' }
|
7
|
+
let(:repo) { 'github' }
|
8
|
+
let(:request_path) { "/repos/#{user}/#{repo}/labels" }
|
9
|
+
let(:body) { fixture('issues/labels.json') }
|
10
|
+
let(:status) { 200 }
|
11
|
+
|
12
|
+
before {
|
13
|
+
stub_get(request_path).to_return(:body => body, :status => status,
|
14
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
15
|
+
}
|
16
|
+
|
17
|
+
after { reset_authentication_for(subject) }
|
18
|
+
|
19
|
+
context "for this repository" do
|
20
|
+
it { should respond_to :all }
|
21
|
+
|
22
|
+
it "should fail to get resource without username" do
|
23
|
+
expect { subject.list nil, repo }.to raise_error(ArgumentError)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should get the resources" do
|
27
|
+
subject.list user, repo
|
28
|
+
a_get(request_path).should have_been_made
|
29
|
+
end
|
30
|
+
|
31
|
+
it_should_behave_like 'an array of resources' do
|
32
|
+
let(:requestable) { subject.list user, repo }
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should get issue information" do
|
36
|
+
labels = subject.list user, repo
|
37
|
+
labels.first.name.should == 'bug'
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should yield to a block" do
|
41
|
+
yielded = []
|
42
|
+
result = subject.list(user, repo) { |obj| yielded << obj }
|
43
|
+
yielded.should == result
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context "for this milestone" do
|
48
|
+
let(:milestone_id) { 1 }
|
49
|
+
let(:request_path) { "/repos/#{user}/#{repo}/milestones/#{milestone_id}/labels"}
|
50
|
+
let(:body) { fixture('issues/labels.json') }
|
51
|
+
let(:status) { 200 }
|
52
|
+
|
53
|
+
it "should get the resources" do
|
54
|
+
subject.list user, repo, :milestone_id => milestone_id
|
55
|
+
a_get(request_path).should have_been_made
|
56
|
+
end
|
57
|
+
|
58
|
+
it_should_behave_like 'an array of resources' do
|
59
|
+
let(:requestable) { subject.list user, repo, :milestone_id => milestone_id }
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should get issue information" do
|
63
|
+
labels = subject.list user, repo, :milestone_id => milestone_id
|
64
|
+
labels.first.name.should == 'bug'
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should yield to a block" do
|
68
|
+
yielded = []
|
69
|
+
result = subject.list(user, repo, :milestone_id => milestone_id) { |obj| yielded << obj }
|
70
|
+
yielded.should == result
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
context "resource found" do
|
75
|
+
let(:issue_id) { 1 }
|
76
|
+
let(:request_path) { "/repos/#{user}/#{repo}/issues/#{issue_id}/labels" }
|
77
|
+
let(:body) { fixture('issues/labels.json') }
|
78
|
+
let(:status) { 200 }
|
79
|
+
|
80
|
+
it "should get the resources" do
|
81
|
+
subject.list user, repo, :issue_id => issue_id
|
82
|
+
a_get(request_path).should have_been_made
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should get issue information" do
|
86
|
+
labels = subject.list user, repo, :issue_id => issue_id
|
87
|
+
labels.first.name.should == 'bug'
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should yield to a block" do
|
91
|
+
yielded = []
|
92
|
+
result = subject.list(user, repo, :issue_id => issue_id) { |obj| yielded << obj }
|
93
|
+
yielded.should == result
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
it_should_behave_like 'request failure' do
|
98
|
+
let(:requestable) { subject.list user, repo }
|
99
|
+
end
|
100
|
+
end # list
|