twitter 4.8.1 → 5.0.0.rc.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.
- data.tar.gz.sig +0 -0
- data/CHANGELOG.md +30 -0
- data/LICENSE.md +1 -1
- data/README.md +386 -266
- data/lib/twitter.rb +4 -39
- data/lib/twitter/arguments.rb +11 -0
- data/lib/twitter/base.rb +89 -68
- data/lib/twitter/client.rb +69 -110
- data/lib/twitter/configuration.rb +7 -3
- data/lib/twitter/creatable.rb +2 -4
- data/lib/twitter/cursor.rb +50 -42
- data/lib/twitter/direct_message.rb +2 -11
- data/lib/twitter/entity/uri.rb +13 -0
- data/lib/twitter/enumerable.rb +15 -0
- data/lib/twitter/error.rb +55 -7
- data/lib/twitter/error/already_favorited.rb +1 -1
- data/lib/twitter/error/already_posted.rb +10 -0
- data/lib/twitter/error/already_retweeted.rb +1 -1
- data/lib/twitter/error/bad_gateway.rb +2 -3
- data/lib/twitter/error/bad_request.rb +2 -2
- data/lib/twitter/error/forbidden.rb +2 -2
- data/lib/twitter/error/gateway_timeout.rb +2 -3
- data/lib/twitter/error/internal_server_error.rb +2 -3
- data/lib/twitter/error/not_acceptable.rb +2 -2
- data/lib/twitter/error/not_found.rb +2 -2
- data/lib/twitter/error/service_unavailable.rb +2 -3
- data/lib/twitter/error/too_many_requests.rb +2 -2
- data/lib/twitter/error/unauthorized.rb +2 -2
- data/lib/twitter/error/unprocessable_entity.rb +2 -2
- data/lib/twitter/factory.rb +2 -8
- data/lib/twitter/geo_factory.rb +2 -2
- data/lib/twitter/geo_results.rb +36 -0
- data/lib/twitter/identity.rb +0 -22
- data/lib/twitter/list.rb +18 -4
- data/lib/twitter/media/photo.rb +3 -3
- data/lib/twitter/media_factory.rb +2 -2
- data/lib/twitter/null_object.rb +24 -0
- data/lib/twitter/oembed.rb +3 -2
- data/lib/twitter/place.rb +15 -9
- data/lib/twitter/profile_banner.rb +5 -3
- data/lib/twitter/rate_limit.rb +1 -17
- data/lib/twitter/relationship.rb +2 -10
- data/lib/twitter/rest/api/direct_messages.rb +135 -0
- data/lib/twitter/rest/api/favorites.rb +120 -0
- data/lib/twitter/rest/api/friends_and_followers.rb +290 -0
- data/lib/twitter/rest/api/help.rb +58 -0
- data/lib/twitter/rest/api/lists.rb +491 -0
- data/lib/twitter/rest/api/oauth.rb +45 -0
- data/lib/twitter/rest/api/places_and_geo.rb +104 -0
- data/lib/twitter/rest/api/saved_searches.rb +91 -0
- data/lib/twitter/rest/api/search.rb +37 -0
- data/lib/twitter/rest/api/spam_reporting.rb +29 -0
- data/lib/twitter/rest/api/suggested_users.rb +51 -0
- data/lib/twitter/rest/api/timelines.rb +202 -0
- data/lib/twitter/rest/api/trends.rb +58 -0
- data/lib/twitter/rest/api/tweets.rb +293 -0
- data/lib/twitter/rest/api/undocumented.rb +52 -0
- data/lib/twitter/rest/api/users.rb +383 -0
- data/lib/twitter/rest/api/utils.rb +219 -0
- data/lib/twitter/rest/client.rb +193 -0
- data/lib/twitter/rest/request/multipart_with_file.rb +36 -0
- data/lib/twitter/rest/response/parse_json.rb +27 -0
- data/lib/twitter/{response → rest/response}/raise_error.rb +8 -11
- data/lib/twitter/search_results.rb +33 -21
- data/lib/twitter/settings.rb +1 -6
- data/lib/twitter/size.rb +1 -1
- data/lib/twitter/streaming/client.rb +77 -0
- data/lib/twitter/streaming/connection.rb +22 -0
- data/lib/twitter/streaming/response.rb +30 -0
- data/lib/twitter/suggestion.rb +4 -2
- data/lib/twitter/token.rb +8 -0
- data/lib/twitter/trend.rb +2 -1
- data/lib/twitter/trend_results.rb +59 -0
- data/lib/twitter/tweet.rb +41 -85
- data/lib/twitter/user.rb +51 -41
- data/lib/twitter/version.rb +4 -4
- data/spec/fixtures/already_posted.json +1 -0
- data/spec/fixtures/ids_list.json +1 -1
- data/spec/fixtures/ids_list2.json +1 -1
- data/spec/fixtures/search.json +1 -1
- data/spec/fixtures/search_malformed.json +1 -1
- data/spec/fixtures/track_streaming.json +3 -0
- data/spec/helper.rb +8 -13
- data/spec/twitter/base_spec.rb +25 -99
- data/spec/twitter/configuration_spec.rb +1 -1
- data/spec/twitter/cursor_spec.rb +13 -31
- data/spec/twitter/direct_message_spec.rb +41 -8
- data/spec/twitter/entity/uri_spec.rb +74 -0
- data/spec/twitter/error_spec.rb +59 -11
- data/spec/twitter/geo/point_spec.rb +1 -1
- data/spec/twitter/geo_factory_spec.rb +3 -3
- data/spec/twitter/geo_results_spec.rb +35 -0
- data/spec/twitter/identifiable_spec.rb +0 -21
- data/spec/twitter/list_spec.rb +51 -8
- data/spec/twitter/media/photo_spec.rb +118 -3
- data/spec/twitter/media_factory_spec.rb +2 -2
- data/spec/twitter/null_object_spec.rb +26 -0
- data/spec/twitter/oembed_spec.rb +69 -45
- data/spec/twitter/place_spec.rb +68 -12
- data/spec/twitter/profile_banner_spec.rb +1 -1
- data/spec/twitter/rate_limit_spec.rb +12 -12
- data/spec/twitter/relationship_spec.rb +31 -9
- data/spec/twitter/{api → rest/api}/direct_messages_spec.rb +22 -9
- data/spec/twitter/{api → rest/api}/favorites_spec.rb +80 -7
- data/spec/twitter/{api → rest/api}/friends_and_followers_spec.rb +104 -65
- data/spec/twitter/{api → rest/api}/geo_spec.rb +10 -10
- data/spec/twitter/{api → rest/api}/help_spec.rb +6 -6
- data/spec/twitter/{api → rest/api}/lists_spec.rb +77 -56
- data/spec/twitter/{api → rest/api}/oauth_spec.rb +6 -6
- data/spec/twitter/{api → rest/api}/saved_searches_spec.rb +7 -7
- data/spec/twitter/{api → rest/api}/search_spec.rb +8 -9
- data/spec/twitter/{api → rest/api}/spam_reporting_spec.rb +3 -3
- data/spec/twitter/{api → rest/api}/suggested_users_spec.rb +5 -5
- data/spec/twitter/{api → rest/api}/timelines_spec.rb +9 -9
- data/spec/twitter/{api → rest/api}/trends_spec.rb +6 -6
- data/spec/twitter/rest/api/tweets_spec.rb +503 -0
- data/spec/twitter/{api → rest/api}/undocumented_spec.rb +19 -45
- data/spec/twitter/{api → rest/api}/users_spec.rb +60 -35
- data/spec/twitter/rest/client_spec.rb +193 -0
- data/spec/twitter/saved_search_spec.rb +11 -0
- data/spec/twitter/search_results_spec.rb +29 -42
- data/spec/twitter/settings_spec.rb +17 -6
- data/spec/twitter/streaming/client_spec.rb +75 -0
- data/spec/twitter/token_spec.rb +16 -0
- data/spec/twitter/trend_results_spec.rb +89 -0
- data/spec/twitter/trend_spec.rb +23 -0
- data/spec/twitter/tweet_spec.rb +122 -115
- data/spec/twitter/user_spec.rb +136 -77
- data/spec/twitter_spec.rb +0 -119
- data/twitter.gemspec +8 -5
- metadata +148 -141
- metadata.gz.sig +0 -0
- data/lib/twitter/action/favorite.rb +0 -19
- data/lib/twitter/action/follow.rb +0 -30
- data/lib/twitter/action/list_member_added.rb +0 -39
- data/lib/twitter/action/mention.rb +0 -46
- data/lib/twitter/action/reply.rb +0 -27
- data/lib/twitter/action/retweet.rb +0 -27
- data/lib/twitter/action/tweet.rb +0 -20
- data/lib/twitter/action_factory.rb +0 -22
- data/lib/twitter/api/arguments.rb +0 -13
- data/lib/twitter/api/direct_messages.rb +0 -148
- data/lib/twitter/api/favorites.rb +0 -126
- data/lib/twitter/api/friends_and_followers.rb +0 -334
- data/lib/twitter/api/help.rb +0 -64
- data/lib/twitter/api/lists.rb +0 -618
- data/lib/twitter/api/oauth.rb +0 -44
- data/lib/twitter/api/places_and_geo.rb +0 -121
- data/lib/twitter/api/saved_searches.rb +0 -99
- data/lib/twitter/api/search.rb +0 -37
- data/lib/twitter/api/spam_reporting.rb +0 -30
- data/lib/twitter/api/suggested_users.rb +0 -55
- data/lib/twitter/api/timelines.rb +0 -214
- data/lib/twitter/api/trends.rb +0 -63
- data/lib/twitter/api/tweets.rb +0 -304
- data/lib/twitter/api/undocumented.rb +0 -97
- data/lib/twitter/api/users.rb +0 -439
- data/lib/twitter/api/utils.rb +0 -187
- data/lib/twitter/configurable.rb +0 -96
- data/lib/twitter/default.rb +0 -102
- data/lib/twitter/entity/url.rb +0 -9
- data/lib/twitter/error/client_error.rb +0 -35
- data/lib/twitter/error/decode_error.rb +0 -9
- data/lib/twitter/error/identity_map_key_error.rb +0 -9
- data/lib/twitter/error/server_error.rb +0 -28
- data/lib/twitter/exceptable.rb +0 -36
- data/lib/twitter/identity_map.rb +0 -22
- data/lib/twitter/request/multipart_with_file.rb +0 -34
- data/lib/twitter/response/parse_json.rb +0 -25
- data/spec/fixtures/about_me.json +0 -1
- data/spec/fixtures/activity_summary.json +0 -1
- data/spec/fixtures/bad_gateway.json +0 -1
- data/spec/fixtures/bad_request.json +0 -1
- data/spec/fixtures/by_friends.json +0 -1
- data/spec/fixtures/end_session.json +0 -1
- data/spec/fixtures/forbidden.json +0 -1
- data/spec/fixtures/internal_server_error.json +0 -1
- data/spec/fixtures/not_acceptable.json +0 -1
- data/spec/fixtures/phoenix_search.phoenix +0 -1
- data/spec/fixtures/resolve.json +0 -1
- data/spec/fixtures/service_unavailable.json +0 -1
- data/spec/fixtures/totals.json +0 -1
- data/spec/fixtures/trends.json +0 -1
- data/spec/fixtures/unauthorized.json +0 -1
- data/spec/fixtures/video_facets.json +0 -1
- data/spec/twitter/action/favorite_spec.rb +0 -29
- data/spec/twitter/action/follow_spec.rb +0 -29
- data/spec/twitter/action/list_member_added_spec.rb +0 -41
- data/spec/twitter/action/mention_spec.rb +0 -52
- data/spec/twitter/action/reply_spec.rb +0 -41
- data/spec/twitter/action/retweet_spec.rb +0 -41
- data/spec/twitter/action_factory_spec.rb +0 -35
- data/spec/twitter/action_spec.rb +0 -16
- data/spec/twitter/api/tweets_spec.rb +0 -285
- data/spec/twitter/client_spec.rb +0 -223
- data/spec/twitter/error/client_error_spec.rb +0 -23
- data/spec/twitter/error/server_error_spec.rb +0 -20
data/spec/twitter/client_spec.rb
DELETED
@@ -1,223 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
describe Twitter::Client do
|
4
|
-
|
5
|
-
subject do
|
6
|
-
Twitter::Client.new(:consumer_key => "CK", :consumer_secret => "CS", :oauth_token => "OT", :oauth_token_secret => "OS")
|
7
|
-
end
|
8
|
-
|
9
|
-
context "with module configuration" do
|
10
|
-
|
11
|
-
before do
|
12
|
-
Twitter.configure do |config|
|
13
|
-
Twitter::Configurable.keys.each do |key|
|
14
|
-
config.send("#{key}=", key)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
after do
|
20
|
-
Twitter.reset!
|
21
|
-
end
|
22
|
-
|
23
|
-
it "inherits the module configuration" do
|
24
|
-
client = Twitter::Client.new
|
25
|
-
Twitter::Configurable.keys.each do |key|
|
26
|
-
expect(client.instance_variable_get(:"@#{key}")).to eq key
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context "with class configuration" do
|
31
|
-
|
32
|
-
before do
|
33
|
-
@configuration = {
|
34
|
-
:connection_options => {:timeout => 10},
|
35
|
-
:consumer_key => 'CK',
|
36
|
-
:consumer_secret => 'CS',
|
37
|
-
:endpoint => 'http://tumblr.com/',
|
38
|
-
:middleware => Proc.new{},
|
39
|
-
:oauth_token => 'OT',
|
40
|
-
:oauth_token_secret => 'OS',
|
41
|
-
:bearer_token => 'BT',
|
42
|
-
:identity_map => ::Hash
|
43
|
-
}
|
44
|
-
end
|
45
|
-
|
46
|
-
context "during initialization" do
|
47
|
-
it "overrides the module configuration" do
|
48
|
-
client = Twitter::Client.new(@configuration)
|
49
|
-
Twitter::Configurable.keys.each do |key|
|
50
|
-
expect(client.instance_variable_get(:"@#{key}")).to eq @configuration[key]
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
context "after initialization" do
|
56
|
-
it "overrides the module configuration after initialization" do
|
57
|
-
client = Twitter::Client.new
|
58
|
-
client.configure do |config|
|
59
|
-
@configuration.each do |key, value|
|
60
|
-
config.send("#{key}=", value)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
Twitter::Configurable.keys.each do |key|
|
64
|
-
expect(client.instance_variable_get(:"@#{key}")).to eq @configuration[key]
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
it "does not cache the screen name across clients" do
|
73
|
-
stub_get("/1.1/account/verify_credentials.json").to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
74
|
-
client1 = Twitter::Client.new
|
75
|
-
expect(client1.verify_credentials.id).to eq 7505382
|
76
|
-
stub_get("/1.1/account/verify_credentials.json").to_return(:body => fixture("pengwynn.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
77
|
-
client2 = Twitter::Client.new
|
78
|
-
expect(client2.verify_credentials.id).to eq 14100886
|
79
|
-
end
|
80
|
-
|
81
|
-
describe "#delete" do
|
82
|
-
before do
|
83
|
-
stub_delete("/custom/delete").with(:query => {:deleted => "object"})
|
84
|
-
end
|
85
|
-
it "allows custom delete requests" do
|
86
|
-
subject.delete("/custom/delete", {:deleted => "object"})
|
87
|
-
expect(a_delete("/custom/delete").with(:query => {:deleted => "object"})).to have_been_made
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
describe "#put" do
|
92
|
-
before do
|
93
|
-
stub_put("/custom/put").with(:body => {:updated => "object"})
|
94
|
-
end
|
95
|
-
it "allows custom put requests" do
|
96
|
-
subject.put("/custom/put", {:updated => "object"})
|
97
|
-
expect(a_put("/custom/put").with(:body => {:updated => "object"})).to have_been_made
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
describe "#user_token?" do
|
102
|
-
it "returns true if the user token/secret are present" do
|
103
|
-
client = Twitter::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT', :oauth_token_secret => 'OS')
|
104
|
-
expect(client.user_token?).to be_true
|
105
|
-
end
|
106
|
-
it "returns false if the user token/secret are not completely present" do
|
107
|
-
client = Twitter::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT')
|
108
|
-
expect(client.user_token?).to be_false
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
describe "#bearer_token?" do
|
113
|
-
it "returns true if the app token is present" do
|
114
|
-
client = Twitter::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :bearer_token => 'BT')
|
115
|
-
expect(client.bearer_token?).to be_true
|
116
|
-
end
|
117
|
-
it "returns false if the bearer_token is not present" do
|
118
|
-
client = Twitter::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS')
|
119
|
-
expect(client.bearer_token?).to be_false
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
describe "#credentials?" do
|
124
|
-
it "returns true if all credentials are present" do
|
125
|
-
client = Twitter::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT', :oauth_token_secret => 'OS')
|
126
|
-
expect(client.credentials?).to be_true
|
127
|
-
end
|
128
|
-
it "returns false if any credentials are missing" do
|
129
|
-
client = Twitter::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :oauth_token => 'OT')
|
130
|
-
expect(client.credentials?).to be_false
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
describe "#connection" do
|
135
|
-
it "looks like Faraday connection" do
|
136
|
-
expect(subject.send(:connection)).to respond_to(:run_request)
|
137
|
-
end
|
138
|
-
it "memoizes the connection" do
|
139
|
-
c1, c2 = subject.send(:connection), subject.send(:connection)
|
140
|
-
expect(c1.object_id).to eq c2.object_id
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
describe "#request" do
|
145
|
-
it "encodes the entire body when no uploaded media is present" do
|
146
|
-
stub_post("/1.1/statuses/update.json").with(:body => {:status => "Update"}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
147
|
-
subject.update("Update")
|
148
|
-
expect(a_post("/1.1/statuses/update.json").with(:body => {:status => "Update"})).to have_been_made
|
149
|
-
end
|
150
|
-
it "encodes none of the body when uploaded media is present" do
|
151
|
-
stub_post("/1.1/statuses/update_with_media.json")
|
152
|
-
subject.update_with_media("Update", fixture("pbjt.gif"))
|
153
|
-
expect(a_post("/1.1/statuses/update_with_media.json")).to have_been_made
|
154
|
-
end
|
155
|
-
it "catches Faraday errors" do
|
156
|
-
subject.stub!(:connection).and_raise(Faraday::Error::ClientError.new("Oops"))
|
157
|
-
expect{subject.send(:request, :get, "/path")}.to raise_error Twitter::Error::ClientError
|
158
|
-
end
|
159
|
-
it "catches MultiJson::DecodeError errors" do
|
160
|
-
subject.stub!(:connection).and_raise(MultiJson::DecodeError.new("unexpected token", [], "<!DOCTYPE html>"))
|
161
|
-
expect{subject.send(:request, :get, "/path")}.to raise_error Twitter::Error::DecodeError
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
describe "#oauth_auth_header" do
|
166
|
-
it "creates the correct auth headers" do
|
167
|
-
uri = "/1.1/direct_messages.json"
|
168
|
-
authorization = subject.send(:oauth_auth_header, :get, uri)
|
169
|
-
expect(authorization.options[:signature_method]).to eq "HMAC-SHA1"
|
170
|
-
expect(authorization.options[:version]).to eq "1.0"
|
171
|
-
expect(authorization.options[:consumer_key]).to eq "CK"
|
172
|
-
expect(authorization.options[:consumer_secret]).to eq "CS"
|
173
|
-
expect(authorization.options[:token]).to eq "OT"
|
174
|
-
expect(authorization.options[:token_secret]).to eq "OS"
|
175
|
-
end
|
176
|
-
it "submits the correct auth header when no media is present" do
|
177
|
-
# We use static values for nounce and timestamp to get a stable signature
|
178
|
-
secret = {:consumer_key => 'CK', :consumer_secret => 'CS',
|
179
|
-
:token => 'OT', :token_secret => 'OS',
|
180
|
-
:nonce => 'b6ebe4c2a11af493f8a2290fe1296965', :timestamp => '1370968658'}
|
181
|
-
header = {"Authorization" => /oauth_signature="FbthwmgGq02iQw%2FuXGEWaL6V6eM%3D"/}
|
182
|
-
|
183
|
-
subject.stub(:credentials).and_return(secret)
|
184
|
-
stub_post("/1.1/statuses/update.json")
|
185
|
-
subject.update("Just a test")
|
186
|
-
expect(a_post("/1.1/statuses/update.json").
|
187
|
-
with(:headers => header)).to have_been_made
|
188
|
-
end
|
189
|
-
it "submits the correct auth header when media is present" do
|
190
|
-
# We use static values for nounce and timestamp to get a stable signature
|
191
|
-
secret = {:consumer_key => 'CK', :consumer_secret => 'CS',
|
192
|
-
:token => 'OT', :token_secret => 'OS',
|
193
|
-
:nonce => 'e08201ad0dab4897c99445056feefd95', :timestamp => '1370967652'}
|
194
|
-
header = {"Authorization" => /oauth_signature="9ziouUPwZT9IWWRbJL8r0BerKYA%3D"/}
|
195
|
-
|
196
|
-
subject.stub(:credentials).and_return(secret)
|
197
|
-
stub_post("/1.1/statuses/update_with_media.json")
|
198
|
-
subject.update_with_media("Just a test", fixture("pbjt.gif"))
|
199
|
-
expect(a_post("/1.1/statuses/update_with_media.json").
|
200
|
-
with(:headers => header)).to have_been_made
|
201
|
-
end
|
202
|
-
end
|
203
|
-
|
204
|
-
describe "#bearer_auth_header" do
|
205
|
-
subject do
|
206
|
-
Twitter::Client.new(:bearer_token => "BT")
|
207
|
-
end
|
208
|
-
|
209
|
-
it "creates the correct auth headers with supplied bearer_token" do
|
210
|
-
uri = "/1.1/direct_messages.json"
|
211
|
-
authorization = subject.send(:bearer_auth_header)
|
212
|
-
expect(authorization).to eq "Bearer BT"
|
213
|
-
end
|
214
|
-
end
|
215
|
-
|
216
|
-
describe "#bearer_token_credentials_auth_header" do
|
217
|
-
it "creates the correct auth header with supplied consumer_key and consumer_secret" do
|
218
|
-
uri = "/1.1/direct_messages.json"
|
219
|
-
authorization = subject.send(:bearer_token_credentials_auth_header)
|
220
|
-
expect(authorization).to eq "Basic Q0s6Q1M="
|
221
|
-
end
|
222
|
-
end
|
223
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
describe Twitter::Error::ClientError do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@client = Twitter::Client.new
|
7
|
-
end
|
8
|
-
|
9
|
-
Twitter::Error::ClientError.errors.each do |status, exception|
|
10
|
-
[nil, "error", "errors"].each do |body|
|
11
|
-
context "when HTTP status is #{status} and body is #{body.inspect}" do
|
12
|
-
before do
|
13
|
-
body_message = '{"' + body + '":"Client Error"}' unless body.nil?
|
14
|
-
stub_get("/1.1/statuses/user_timeline.json").with(:query => {:screen_name => 'sferik'}).to_return(:status => status, :body => body_message)
|
15
|
-
end
|
16
|
-
it "raises #{exception.name}" do
|
17
|
-
expect{@client.user_timeline('sferik')}.to raise_error exception
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
describe Twitter::Error::ServerError do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@client = Twitter::Client.new
|
7
|
-
end
|
8
|
-
|
9
|
-
Twitter::Error::ServerError.errors.each do |status, exception|
|
10
|
-
context "when HTTP status is #{status}" do
|
11
|
-
before do
|
12
|
-
stub_get("/1.1/statuses/user_timeline.json").with(:query => {:screen_name => 'sferik'}).to_return(:status => status)
|
13
|
-
end
|
14
|
-
it "raises #{exception.name}" do
|
15
|
-
expect{@client.user_timeline('sferik')}.to raise_error exception
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|