mediawiki_api 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 47ada7ae6cca60fe668ec85a2db600bc2c8476d3
4
- data.tar.gz: 1404eb28565f5c58106dd534426a1d29de9686bb
3
+ metadata.gz: 05fde886762b19553fe636b7e7d8cccb220a7481
4
+ data.tar.gz: 37036c78dcbd186c31f9da0a08f754f7931d1daa
5
5
  SHA512:
6
- metadata.gz: d19e7cceb2b8436cfcae8198eba6d220ef333bf8b9397328929dec24a7b68bd738e24118b4994d60c19639514d3f85fc636bcef525ba5ce9a038d20555274b91
7
- data.tar.gz: d1911e5759b7ac06de105c3728c7afbb50a3eec5e79549dfe2d92bdbe45f861ea91cc7d1827a40032350867a274feca6cbe8aee9f0fbca1763c9465b67f3390c
6
+ metadata.gz: ab02ae9dd0aaca8aac8c4d4bd08a8a9dabe2e907b2b6f656575d1ee29be059f4a39eb8802e720360c36b301e198a8579648802d4accfaf132d5416961d50ab50
7
+ data.tar.gz: e18cd950e866512999fb22e86fc7021ce260d99935f8f558b782ef75c38ad6e7aa4fa2df03e99970742e165f9bc17dd4033320c0785cc7948f760453b7c0cf4c
data/README.md CHANGED
@@ -50,14 +50,14 @@ MediaWiki API gem at: [Gerrit](https://gerrit.wikimedia.org/r/#/admin/projects/m
50
50
 
51
51
  ## Contributing
52
52
 
53
- 1. Fork it ( http://github.com/<my-github-username>/mediawiki_api/fork )
54
- 2. Create your feature branch (`git checkout -b my-new-feature`)
55
- 3. Commit your changes (`git commit -am "Add some feature"`)
56
- 4. Push to the branch (`git push origin my-new-feature`)
57
- 5. Create new Pull Request
53
+ See https://www.mediawiki.org/wiki/Gerrit
58
54
 
59
55
  ## Release notes
60
56
 
57
+ ### 0.2.1 2014-08-26
58
+
59
+ - Fix error handling for token requests
60
+
61
61
  ### 0.2.0 2014-08-06
62
62
 
63
63
  - Automatic response parsing.
@@ -146,7 +146,9 @@ module MediawikiApi
146
146
  unless @tokens.include?(type)
147
147
  response = action(:tokens, type: type, http_method: :get, token_type: false)
148
148
 
149
- raise TokenError, response.warnings.join(", ") if response.warnings?
149
+ if response.warnings? && response.warnings.grep(/Unrecognized value for parameter 'type'/).any?
150
+ raise TokenError, response.warnings.join(", ")
151
+ end
150
152
 
151
153
  @tokens[type] = response.data["#{type}token"]
152
154
  end
@@ -1,3 +1,3 @@
1
1
  module MediawikiApi
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/spec/client_spec.rb CHANGED
@@ -15,14 +15,17 @@ describe MediawikiApi::Client do
15
15
  subject { client.action(action, params) }
16
16
 
17
17
  let(:action) { "something" }
18
+ let(:token_type) { action }
18
19
  let(:params) { {} }
19
20
 
20
21
  let(:response) { { headers: response_headers, body: response_body.to_json } }
21
22
  let(:response_headers) { nil }
22
23
  let(:response_body) { { "something" => {} } }
23
24
 
25
+ let(:token_warning) { nil }
26
+
24
27
  before do
25
- @token_request = stub_token_request(action)
28
+ @token_request = stub_token_request(token_type, token_warning)
26
29
  @request = stub_api_request(:post, action: action, token: mock_token).to_return(response)
27
30
  end
28
31
 
@@ -105,6 +108,24 @@ describe MediawikiApi::Client do
105
108
  expect { subject }.to raise_error(MediawikiApi::ApiError, "detailed message (code)")
106
109
  end
107
110
  end
111
+
112
+ context "given a bad token type" do
113
+ let(:params) { { token_type: token_type } }
114
+ let(:token_type) { "badtoken" }
115
+ let(:token_warning) { "Unrecognized value for parameter 'type': badtoken" }
116
+
117
+ it "raises a TokenError" do
118
+ expect { subject }.to raise_error(MediawikiApi::TokenError, token_warning)
119
+ end
120
+ end
121
+
122
+ context "when the token response includes only other types of warnings (see bug 70066)" do
123
+ let(:token_warning) { "action=tokens has been deprecated. Please use action=query&meta=tokens instead." }
124
+
125
+ it "raises no exception" do
126
+ expect { subject }.to_not raise_error
127
+ end
128
+ end
108
129
  end
109
130
 
110
131
  describe "#log_in" do
@@ -22,8 +22,11 @@ module MediawikiApi::RequestHelpers
22
22
  stub_api_request(method, params.merge(action: action, token: mock_token))
23
23
  end
24
24
 
25
- def stub_token_request(type)
25
+ def stub_token_request(type, warning = nil)
26
+ response = { tokens: { "#{type}token" => mock_token } }
27
+ response[:warnings] = { type => { "*" => [warning] } } unless warning.nil?
28
+
26
29
  stub_api_request(:get, action: "tokens", type: type).
27
- to_return(body: { tokens: { "#{type}token" => mock_token } }.to_json)
30
+ to_return(body: response.to_json)
28
31
  end
29
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mediawiki_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amir Aharoni
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2014-08-06 00:00:00.000000000 Z
16
+ date: 2014-08-27 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: faraday