github_api 0.8.0 → 0.8.1

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.
Files changed (53) hide show
  1. data/features/gists/comments.feature +8 -8
  2. data/lib/github_api/gists/comments.rb +15 -15
  3. data/lib/github_api/repos.rb +3 -1
  4. data/lib/github_api/repos/comments.rb +6 -5
  5. data/lib/github_api/requestable.rb +67 -0
  6. data/lib/github_api/version.rb +1 -1
  7. data/spec/github/activity/activity_spec.rb +2 -0
  8. data/spec/github/activity/events/issue_spec.rb +8 -20
  9. data/spec/github/activity/events/network_spec.rb +8 -20
  10. data/spec/github/activity/events/org_spec.rb +8 -18
  11. data/spec/github/activity/events/performed_spec.rb +13 -31
  12. data/spec/github/activity/events/public_spec.rb +7 -18
  13. data/spec/github/activity/events/received_spec.rb +12 -31
  14. data/spec/github/activity/events/repository_spec.rb +8 -20
  15. data/spec/github/activity/events/user_org_spec.rb +8 -20
  16. data/spec/github/activity/notifications/list_spec.rb +4 -11
  17. data/spec/github/activity/starring/list_spec.rb +8 -21
  18. data/spec/github/activity/watching/list_spec.rb +4 -18
  19. data/spec/github/gists/comments_spec.rb +24 -23
  20. data/spec/github/git_data/blobs/create_spec.rb +62 -0
  21. data/spec/github/git_data/blobs/get_spec.rb +49 -0
  22. data/spec/github/git_data/blobs_spec.rb +0 -116
  23. data/spec/github/repos/branch_spec.rb +3 -9
  24. data/spec/github/repos/branches_spec.rb +5 -13
  25. data/spec/github/repos/collaborators/add_spec.rb +37 -0
  26. data/spec/github/repos/collaborators/get_spec.rb +51 -0
  27. data/spec/github/repos/collaborators/list_spec.rb +51 -0
  28. data/spec/github/repos/collaborators/remove_spec.rb +37 -0
  29. data/spec/github/repos/collaborators_spec.rb +1 -176
  30. data/spec/github/repos/comments/create_spec.rb +2 -33
  31. data/spec/github/repos/comments/delete_spec.rb +3 -9
  32. data/spec/github/repos/comments/get_spec.rb +3 -9
  33. data/spec/github/repos/comments/list_spec.rb +16 -40
  34. data/spec/github/repos/comments/update_spec.rb +5 -11
  35. data/spec/github/repos/commits/get_spec.rb +3 -9
  36. data/spec/github/repos/commits/list_spec.rb +9 -20
  37. data/spec/github/repos/contributors_spec.rb +5 -13
  38. data/spec/github/repos/delete_spec.rb +3 -8
  39. data/spec/github/repos/downloads/create_spec.rb +3 -9
  40. data/spec/github/repos/downloads/delete_spec.rb +3 -9
  41. data/spec/github/repos/downloads/get_spec.rb +5 -12
  42. data/spec/github/repos/downloads/list_spec.rb +8 -18
  43. data/spec/github/repos/edit_spec.rb +3 -9
  44. data/spec/github/repos/forks/create_spec.rb +3 -9
  45. data/spec/github/repos/forks/list_spec.rb +8 -21
  46. data/spec/github/repos/get_spec.rb +3 -9
  47. data/spec/github/repos/list_spec.rb +8 -7
  48. data/spec/github/repos_spec.rb +2 -0
  49. data/spec/shared/api_interface_behaviour.rb +15 -0
  50. data/spec/shared/array_of_resources_behaviour.rb +15 -0
  51. data/spec/shared/request_failure_behaviour.rb +16 -0
  52. data/spec/spec_helper.rb +1 -1
  53. metadata +43 -33
@@ -33,30 +33,6 @@ describe Github::Repos::Comments, '#create' do
33
33
  }.to raise_error(Github::Error::RequiredParams)
34
34
  end
35
35
 
36
- it "should fail to create resource if 'commit_id' input is missing" do
37
- expect {
38
- subject.create user, repo, sha, inputs.except(:commit_id)
39
- }.to raise_error(Github::Error::RequiredParams)
40
- end
41
-
42
- it "should fail to create resource if 'line' input is missing" do
43
- expect {
44
- subject.create user, repo, sha, inputs.except(:line)
45
- }.to raise_error(Github::Error::RequiredParams)
46
- end
47
-
48
- it "should fail to create resource if 'path' input is missing" do
49
- expect {
50
- subject.create user, repo, sha, inputs.except(:path)
51
- }.to raise_error(Github::Error::RequiredParams)
52
- end
53
-
54
- it "should fail to create resource if 'position' input is missing" do
55
- expect {
56
- subject.create user, repo, sha, inputs.except(:position)
57
- }.to raise_error(Github::Error::RequiredParams)
58
- end
59
-
60
36
  it "should create resource successfully" do
61
37
  subject.create user, repo, sha, inputs
62
38
  a_post(request_path).with(inputs).should have_been_made
@@ -73,14 +49,7 @@ describe Github::Repos::Comments, '#create' do
73
49
  end
74
50
  end
75
51
 
76
- context "failed to create resource" do
77
- let(:body) { '' }
78
- let(:status) { 404 }
79
-
80
- it "should fail to retrieve resource" do
81
- expect {
82
- subject.create user, repo, sha, inputs
83
- }.to raise_error(Github::Error::NotFound)
84
- end
52
+ it_should_behave_like 'request failure' do
53
+ let(:requestable) { subject.create user, repo, sha, inputs }
85
54
  end
86
55
  end # create
@@ -36,14 +36,8 @@ describe Github::Repos::Comments, '#delete' do
36
36
  end
37
37
  end
38
38
 
39
- context "failed to delete resource" do
40
- let(:body) { '' }
41
- let(:status) { 404 }
42
-
43
- it "should fail to find resource" do
44
- expect {
45
- subject.delete user, repo, comment_id
46
- }.to raise_error(Github::Error::NotFound)
47
- end
39
+ it_should_behave_like 'request failure' do
40
+ let(:requestable) { subject.delete user, repo, comment_id }
48
41
  end
42
+
49
43
  end # delete
@@ -41,14 +41,8 @@ describe Github::Repos::Comments, '#get' do
41
41
  end
42
42
  end
43
43
 
44
- context "resource not found" do
45
- let(:body) { '' }
46
- let(:status) { 404 }
47
-
48
- it "should fail to retrive resource" do
49
- expect {
50
- subject.get user, repo, comment_id
51
- }.to raise_error(Github::Error::NotFound)
52
- end
44
+ it_should_behave_like 'request failure' do
45
+ let(:requestable) { subject.get user, repo, comment_id }
53
46
  end
47
+
54
48
  end # get
@@ -31,15 +31,8 @@ describe Github::Repos::Comments, '#list' do
31
31
  a_get(request_path).should have_been_made
32
32
  end
33
33
 
34
- it "should return array of resources" do
35
- repo_comments = subject.list user, repo
36
- repo_comments.should be_an Array
37
- repo_comments.should have(1).items
38
- end
39
-
40
- it "should be a mash type" do
41
- repo_comments = subject.list user, repo
42
- repo_comments.first.should be_a Hashie::Mash
34
+ it_should_behave_like 'an array of resources' do
35
+ let(:requestable) { subject.list user, repo }
43
36
  end
44
37
 
45
38
  it "should get commit comment information" do
@@ -48,21 +41,16 @@ describe Github::Repos::Comments, '#list' do
48
41
  end
49
42
 
50
43
  it "should yield to a block" do
51
- subject.should_receive(:list).with(user, repo).and_yield('web')
52
- subject.list(user, repo) { |param| 'web' }
44
+ yielded = []
45
+ result = subject.list(user, repo) { |obj| yielded << obj }
46
+ yielded.should == result
53
47
  end
54
48
  end
55
49
 
56
- context "resource not found" do
57
- let(:body) { '' }
58
- let(:status) { [404, "Not Found"] }
59
-
60
- it "should return 404 with a message 'Not Found'" do
61
- expect {
62
- subject.list user, repo
63
- }.to raise_error(Github::Error::NotFound)
64
- end
50
+ it_should_behave_like 'request failure' do
51
+ let(:requestable) { subject.list user, repo }
65
52
  end
53
+
66
54
  end # without sha
67
55
 
68
56
  context 'with sha' do
@@ -83,15 +71,8 @@ describe Github::Repos::Comments, '#list' do
83
71
  a_get(request_path).should have_been_made
84
72
  end
85
73
 
86
- it "should return array of resources" do
87
- commit_comments = subject.list user, repo, :sha => sha
88
- commit_comments.should be_an Array
89
- commit_comments.should have(1).items
90
- end
91
-
92
- it "should be a mash type" do
93
- commit_comments = subject.list user, repo, :sha => sha
94
- commit_comments.first.should be_a Hashie::Mash
74
+ it_should_behave_like 'an array of resources' do
75
+ let(:requestable) { subject.list user, repo, :sha => sha }
95
76
  end
96
77
 
97
78
  it "should get commit comment information" do
@@ -100,21 +81,16 @@ describe Github::Repos::Comments, '#list' do
100
81
  end
101
82
 
102
83
  it "should yield to a block" do
103
- subject.should_receive(:list).with(user, repo, :sha=>sha).and_yield('web')
104
- subject.list(user, repo, :sha => sha) { |param| 'web' }
84
+ yielded = []
85
+ result = subject.list(user, repo, :sha => sha) { |obj| yielded << obj }
86
+ yielded.should == result
105
87
  end
106
88
  end
107
89
 
108
- context "resource not found" do
109
- let(:body) { '' }
110
- let(:status) { 404 }
111
-
112
- it "should fail to retrive resource" do
113
- expect {
114
- subject.list user, repo, :sha => sha
115
- }.to raise_error(Github::Error::NotFound)
116
- end
90
+ it_should_behave_like 'request failure' do
91
+ let(:requestable) { subject.list user, repo, :sha => sha }
117
92
  end
93
+
118
94
  end # with sha
119
95
 
120
96
  end # list
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe Github::Repos::Comments, '#delete' do
5
+ describe Github::Repos::Comments, '#update' do
6
6
  let(:user) { 'peter-murach' }
7
7
  let(:repo) { 'github' }
8
8
  let(:comment_id) { 1 }
@@ -41,14 +41,8 @@ describe Github::Repos::Comments, '#delete' do
41
41
  end
42
42
  end
43
43
 
44
- context "failed to update resource" do
45
- let(:body) { '' }
46
- let(:status) { 404 }
47
-
48
- it "should fail to retrieve resource" do
49
- expect {
50
- subject.update user, repo, comment_id, inputs
51
- }.to raise_error(Github::Error::NotFound)
52
- end
44
+ it_should_behave_like 'request failure' do
45
+ let(:requestable) { subject.update user, repo, comment_id, inputs }
53
46
  end
54
- end # update_comment
47
+
48
+ end # update
@@ -43,14 +43,8 @@ describe Github::Repos::Commits, '#get' do
43
43
  end
44
44
  end
45
45
 
46
- context "resource not found" do
47
- let(:body) { '' }
48
- let(:status) { 404 }
49
-
50
- it "should fail to retrive resource" do
51
- expect {
52
- subject.get user, repo, sha
53
- }.to raise_error(Github::Error::NotFound)
54
- end
46
+ it_should_behave_like 'request failure' do
47
+ let(:requestable) { subject.get user, repo, sha }
55
48
  end
49
+
56
50
  end # get
@@ -19,6 +19,7 @@ describe Github::Repos::Commits, '#list' do
19
19
  let(:status) { 200 }
20
20
 
21
21
  it { should respond_to :all }
22
+
22
23
  it "should fail to get resource without username" do
23
24
  expect { subject.list }.to raise_error(ArgumentError)
24
25
  end
@@ -28,15 +29,8 @@ describe Github::Repos::Commits, '#list' do
28
29
  a_get(request_path).should have_been_made
29
30
  end
30
31
 
31
- it "should return array of resources" do
32
- commits = subject.list user, repo
33
- commits.should be_an Array
34
- commits.should have(1).items
35
- end
36
-
37
- it "should be a mash type" do
38
- commits = subject.list user, repo
39
- commits.first.should be_a Hashie::Mash
32
+ it_should_behave_like 'an array of resources' do
33
+ let(:requestable) { subject.list user, repo }
40
34
  end
41
35
 
42
36
  it "should get commit information" do
@@ -45,19 +39,14 @@ describe Github::Repos::Commits, '#list' do
45
39
  end
46
40
 
47
41
  it "should yield to a block" do
48
- subject.should_receive(:list).with(user, repo).and_yield('web')
49
- subject.list(user, repo) { |param| 'web' }
42
+ yielded = []
43
+ result = subject.list(user, repo) { |obj| yielded << obj }
44
+ yielded.should == result
50
45
  end
51
46
  end
52
47
 
53
- context "resource not found" do
54
- let(:body) { '' }
55
- let(:status) { [404, "Not Found"] }
56
-
57
- it "should return 404 with a message 'Not Found'" do
58
- expect {
59
- subject.list user, repo
60
- }.to raise_error(Github::Error::NotFound)
61
- end
48
+ it_should_behave_like 'request failure' do
49
+ let(:requestable) { subject.list user, repo }
62
50
  end
51
+
63
52
  end # list
@@ -32,10 +32,8 @@ describe Github::Repos, '#contributors' do
32
32
  a_get(request_path).should have_been_made
33
33
  end
34
34
 
35
- it "should return array of resources" do
36
- contributors = subject.contributors user, repo
37
- contributors.should be_an Array
38
- contributors.should have(1).items
35
+ it_should_behave_like 'an array of resources' do
36
+ let(:requestable) { subject.contributors user, repo }
39
37
  end
40
38
 
41
39
  it "should get branch information" do
@@ -49,14 +47,8 @@ describe Github::Repos, '#contributors' do
49
47
  end
50
48
  end
51
49
 
52
- context "resource not found" do
53
- let(:body) { '' }
54
- let(:status) { 404 }
55
-
56
- it "should fail to get resource" do
57
- expect {
58
- subject.contributors user, repo
59
- }.to raise_error(Github::Error::NotFound)
60
- end
50
+ it_should_behave_like 'request failure' do
51
+ let(:requestable) { subject.contributors user, repo }
61
52
  end
53
+
62
54
  end # contributors
@@ -31,13 +31,8 @@ describe Github::Repos, '#delete' do
31
31
  expect { subject.delete user, nil }.to raise_error(ArgumentError)
32
32
  end
33
33
 
34
- context 'failed to delete' do
35
- let(:status) { 404 }
36
-
37
- it "should fail to delete resource that is not found" do
38
- expect {
39
- subject.delete user, repo
40
- }.to raise_error(Github::Error::NotFound)
41
- end
34
+ it_should_behave_like 'request failure' do
35
+ let(:requestable) { subject.delete user, repo }
42
36
  end
37
+
43
38
  end # delete
@@ -53,14 +53,8 @@ describe Github::Repos::Downloads, '#create' do
53
53
  end
54
54
  end
55
55
 
56
- context "failed to create resource" do
57
- let(:body) { "" }
58
- let(:status) { [404, "Not Found"] }
59
-
60
- it "should faile to retrieve resource" do
61
- expect {
62
- subject.create user, repo, inputs
63
- }.to raise_error(Github::Error::NotFound)
64
- end
56
+ it_should_behave_like 'request failure' do
57
+ let(:requestable) { subject.create user, repo, inputs }
65
58
  end
59
+
66
60
  end # create
@@ -35,14 +35,8 @@ describe Github::Repos::Downloads, '#delete' do
35
35
  end
36
36
  end
37
37
 
38
- context "failed to delete resource" do
39
- let(:body) { "" }
40
- let(:status) { [404, "Not Found"] }
41
-
42
- it "should fail to find resource" do
43
- expect {
44
- subject.delete user, repo, download_id
45
- }.to raise_error(Github::Error::NotFound)
46
- end
38
+ it_should_behave_like 'request failure' do
39
+ let(:requestable) { subject.delete user, repo, download_id }
47
40
  end
41
+
48
42
  end # delete
@@ -3,13 +3,12 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Github::Repos::Downloads, '#get' do
6
- let(:github) { Github.new }
7
6
  let(:user) { 'peter-murach' }
8
7
  let(:repo) { 'github' }
9
8
  let(:download_id) { 1 }
10
9
  let(:request_path) { "/repos/#{user}/#{repo}/downloads/#{download_id}" }
11
10
 
12
- after { reset_authentication_for(github) }
11
+ after { reset_authentication_for(subject) }
13
12
 
14
13
  before {
15
14
  stub_get(request_path).
@@ -28,7 +27,7 @@ describe Github::Repos::Downloads, '#get' do
28
27
  end
29
28
 
30
29
  it "should get the resource" do
31
- github.repos.downloads.get user, repo, download_id
30
+ subject.get user, repo, download_id
32
31
  a_get(request_path).should have_been_made
33
32
  end
34
33
 
@@ -44,15 +43,9 @@ describe Github::Repos::Downloads, '#get' do
44
43
  end
45
44
  end
46
45
 
47
- context "resource not found" do
48
- let(:body) { "" }
49
- let(:status) { [404, "Not Found"] }
50
-
51
- it "should fail to retrive resource" do
52
- expect {
53
- subject.get user, repo, download_id
54
- }.to raise_error(Github::Error::NotFound)
55
- end
46
+ it_should_behave_like 'request failure' do
47
+ let(:requestable) { subject.get user, repo, download_id }
56
48
  end
49
+
57
50
  end # get
58
51
 
@@ -30,15 +30,8 @@ describe Github::Repos::Downloads, '#list' do
30
30
  a_get(request_path).should have_been_made
31
31
  end
32
32
 
33
- it "should return array of resources" do
34
- downloads = subject.list user, repo
35
- downloads.should be_an Array
36
- downloads.should have(1).items
37
- end
38
-
39
- it "should be a mash type" do
40
- downloads = subject.list user, repo
41
- downloads.first.should be_a Hashie::Mash
33
+ it_should_behave_like 'an array of resources' do
34
+ let(:requestable) { subject.list user, repo }
42
35
  end
43
36
 
44
37
  it "should get download information" do
@@ -47,17 +40,14 @@ describe Github::Repos::Downloads, '#list' do
47
40
  end
48
41
 
49
42
  it "should yield to a block" do
50
- subject.should_receive(:list).with(user, repo).and_yield('web')
51
- subject.list(user, repo) { |param| 'web' }
43
+ yielded = []
44
+ result = subject.list(user, repo) { |obj| yielded << obj }
45
+ yielded.should == result
52
46
  end
53
47
  end
54
48
 
55
- context "resource not found" do
56
- let(:body) { "" }
57
- let(:status) { [404, "Not Found"] }
58
-
59
- it "should return 404 with a message 'Not Found'" do
60
- expect { subject.list user, repo }.to raise_error(Github::Error::NotFound)
61
- end
49
+ it_should_behave_like 'request failure' do
50
+ let(:requestable) { subject.list user, repo }
62
51
  end
52
+
63
53
  end # list
@@ -53,14 +53,8 @@ describe Github::Repos, '#edit' do
53
53
  end
54
54
  end
55
55
 
56
- context "failed to edit resource" do
57
- let(:body) { '' }
58
- let(:status) { 404 }
59
-
60
- it "should fail to find resource" do
61
- expect {
62
- subject.edit user, repo, inputs
63
- }.to raise_error(Github::Error::NotFound)
64
- end
56
+ it_should_behave_like 'request failure' do
57
+ let(:requestable) { subject.edit user, repo, inputs }
65
58
  end
59
+
66
60
  end # edit