httparty 0.12.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of httparty might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88f8c122e637f99fecd417041020833f2ba2a775
4
- data.tar.gz: 308db16b7ab96c4beb228bf72eaf85626c40298b
3
+ metadata.gz: e2e263bc6000ec32578c99ef814398a9742be7a7
4
+ data.tar.gz: 9f8eb0a8ddb0100669e3f08c86fbde96b7c538d7
5
5
  SHA512:
6
- metadata.gz: ba5e4e41966cb967db3dae1988eb551721cf134f55d008e376353b482538cacda2a35294d7f52a43ddb81a137783e64ef8723962e8b5259617c2d21bc9a07f07
7
- data.tar.gz: 7388e5ec85b6a1c5fb862c1ea11e92c1c501da28bce3a4f2af93ec0b4b535fa059a091632e5710c51c5cf3ce520e8c7f3120f95dd797cedbb84c45490fd23871
6
+ metadata.gz: 4e02f9c9aab76af35b66bc0421d7322357a3a180f55cb50434259ce907d9cb536adaef681312fdee37648d8b558731c1c003d5bb57caa0000a187d24377449b3
7
+ data.tar.gz: 39286a8c98a2375f4fa60c98fb0ec3a5dd8828760029fcdefa054acce0da38cc20eb113cfbb6759a6df3f7ffaf7a9d62021c17ddb599318cf557ab70fdfedfad
@@ -1,7 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.8.7
4
- - ree
5
3
  - 1.9.3
6
4
  - 2.0.0
7
5
  notifications:
@@ -18,7 +18,7 @@ OptionParser.new do |o|
18
18
  o.on("-f",
19
19
  "--format [FORMAT]",
20
20
  "Output format to use instead of pretty-print ruby: " +
21
- "plain, json or xml") do |f|
21
+ "plain, csv, json or xml") do |f|
22
22
  opts[:output_format] = f.downcase.to_sym
23
23
  end
24
24
 
@@ -107,6 +107,9 @@ else
107
107
  require 'rexml/document'
108
108
  REXML::Document.new(response.body).write(STDOUT, 2)
109
109
  puts
110
+ when :csv
111
+ require 'csv'
112
+ puts CSV.parse(response.body).map{|row| row.to_s }
110
113
  else
111
114
  puts response
112
115
  end
@@ -14,6 +14,21 @@ Feature: Handles Multiple Formats
14
14
  Then it should return a String
15
15
  And the return value should match '<h1>Some HTML</h1>'
16
16
 
17
+ Scenario: A CSV service
18
+ Given a remote service that returns:
19
+ """
20
+ "Last Name","Name"
21
+ "jennings","waylon"
22
+ "cash","johnny"
23
+ """
24
+ And that service is accessed at the path '/service.csv'
25
+ And the response from the service has a Content-Type of 'application/csv'
26
+ When I call HTTParty#get with '/service.csv'
27
+ Then it should return an Array equaling:
28
+ | Last Name | Name |
29
+ | jennings | waylon |
30
+ | cash | johnny |
31
+
17
32
  Scenario: A JSON service
18
33
  Given a remote service that returns '{ "jennings": "waylon", "cash": "johnny" }'
19
34
  And that service is accessed at the path '/service.json'
@@ -29,6 +29,11 @@ Then /it should return a Hash equaling:/ do |hash_table|
29
29
  end
30
30
  end
31
31
 
32
+ Then /it should return an Array equaling:/ do |array|
33
+ @response_from_httparty.should be_an_instance_of(Array)
34
+ @response_from_httparty.should eql array.raw
35
+ end
36
+
32
37
  Then /it should return a response with a (\d+) response code/ do |code|
33
38
  @response_from_httparty.code.should eql(code.to_i)
34
39
  end
@@ -3,6 +3,11 @@ Given /a remote service that returns '(.*)'/ do |response_body|
3
3
  Given "the response from the service has a body of '#{response_body}'"
4
4
  end
5
5
 
6
+ Given /^a remote service that returns:$/ do |response_body|
7
+ @handler = BasicMongrelHandler.new
8
+ @handler.response_body = response_body
9
+ end
10
+
6
11
  Given /a remote service that returns a (\d+) status code/ do |code|
7
12
  @handler = BasicMongrelHandler.new
8
13
  @handler.response_code = code
@@ -5,6 +5,7 @@ require 'uri'
5
5
  require 'zlib'
6
6
  require 'multi_xml'
7
7
  require 'json'
8
+ require 'csv'
8
9
 
9
10
  require 'httparty/module_inheritable_attributes'
10
11
  require 'httparty/cookie_hash'
@@ -282,6 +283,17 @@ module HTTParty
282
283
  default_options[:pem_password] = password
283
284
  end
284
285
 
286
+ # Allows setting a PKCS12 file to be used
287
+ #
288
+ # class Foo
289
+ # include HTTParty
290
+ # pkcs12 File.read('/home/user/my.p12'), "password"
291
+ # end
292
+ def pkcs12(p12_contents, password)
293
+ default_options[:p12] = p12_contents
294
+ default_options[:p12_password] = password
295
+ end
296
+
285
297
  # Override the way query strings are normalized.
286
298
  # Helpful for overriding the default rails normalization of Array queries.
287
299
  #
@@ -481,11 +493,18 @@ module HTTParty
481
493
  private
482
494
 
483
495
  def perform_request(http_method, path, options, &block) #:nodoc:
484
- options = default_options.dup.merge(options)
496
+ options = default_options.merge(options)
497
+ process_headers(options)
485
498
  process_cookies(options)
486
499
  Request.new(http_method, path, options).perform(&block)
487
500
  end
488
501
 
502
+ def process_headers(options)
503
+ if options[:headers] && headers.any?
504
+ options[:headers] = headers.merge(options[:headers])
505
+ end
506
+ end
507
+
489
508
  def process_cookies(options) #:nodoc:
490
509
  return unless options[:cookies] || default_cookies.any?
491
510
  options[:headers] ||= headers.dup
@@ -539,7 +558,7 @@ module HTTParty
539
558
  end
540
559
 
541
560
  def self.copy(*args, &block)
542
- Basement.move(*args, &block)
561
+ Basement.copy(*args, &block)
543
562
  end
544
563
 
545
564
  def self.head(*args, &block)
@@ -147,6 +147,14 @@ module HTTParty
147
147
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
148
148
  end
149
149
 
150
+ # PKCS12 client certificate authentication
151
+ if options[:p12]
152
+ p12 = OpenSSL::PKCS12.new(options[:p12], options[:p12_password])
153
+ http.cert = p12.certificate
154
+ http.key = p12.key
155
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
156
+ end
157
+
150
158
  # SSL certificate authority file and/or directory
151
159
  if options[:ssl_ca_file]
152
160
  http.ca_file = options[:ssl_ca_file]
@@ -1,13 +1,16 @@
1
1
  module HTTParty
2
+ # @abstact Exceptions raised by HTTParty inherit from Error
3
+ class Error < StandardError; end
4
+
2
5
  # Exception raised when you attempt to set a non-existant format
3
- class UnsupportedFormat < StandardError; end
6
+ class UnsupportedFormat < Error; end
4
7
 
5
8
  # Exception raised when using a URI scheme other than HTTP or HTTPS
6
- class UnsupportedURIScheme < StandardError; end
9
+ class UnsupportedURIScheme < Error; end
7
10
 
8
11
  # @abstract Exceptions which inherit from ResponseError contain the Net::HTTP
9
12
  # response object accessible via the {#response} method.
10
- class ResponseError < StandardError
13
+ class ResponseError < Error
11
14
  # Returns the response of the last request
12
15
  # @return [Net::HTTPResponse] A subclass of Net::HTTPResponse, e.g.
13
16
  # Net::HTTPOK
@@ -44,9 +44,9 @@ module Net
44
44
  private
45
45
 
46
46
  def parse(response_header)
47
- response_header['www-authenticate'] =~ /^(\w+) (.*)/
47
+ response_header['www-authenticate'] =~ /Digest (.*)/
48
48
  params = {}
49
- $2.gsub(/(\w+)="(.*?)"/) { params[$1] = $2 }
49
+ $1.gsub(/(\w+)="(.*?)"/) { params[$1] = $2 }
50
50
  params
51
51
  end
52
52
 
@@ -1,5 +1,5 @@
1
1
  module HTTParty
2
- # The default parser used by HTTParty, supports xml, json, html, and
2
+ # The default parser used by HTTParty, supports xml, json, html, csv and
3
3
  # plain text.
4
4
  #
5
5
  # == Custom Parsers
@@ -45,7 +45,10 @@ module HTTParty
45
45
  'application/javascript' => :plain,
46
46
  'text/javascript' => :plain,
47
47
  'text/html' => :html,
48
- 'text/plain' => :plain
48
+ 'text/plain' => :plain,
49
+ 'text/csv' => :csv,
50
+ 'application/csv' => :csv,
51
+ 'text/comma-separated-values' => :csv
49
52
  }
50
53
 
51
54
  # The response body of the request
@@ -113,6 +116,10 @@ module HTTParty
113
116
  JSON.load(body, nil)
114
117
  end
115
118
 
119
+ def csv
120
+ CSV.parse(body)
121
+ end
122
+
116
123
  def html
117
124
  body
118
125
  end
@@ -15,7 +15,7 @@ module HTTParty
15
15
  SupportedURISchemes = [URI::HTTP, URI::HTTPS, URI::Generic]
16
16
 
17
17
  NON_RAILS_QUERY_STRING_NORMALIZER = Proc.new do |query|
18
- Array(query).map do |key, value|
18
+ Array(query).sort_by { |a| a[0].to_s }.map do |key, value|
19
19
  if value.nil?
20
20
  key.to_s
21
21
  elsif value.is_a?(Array)
@@ -23,7 +23,7 @@ module HTTParty
23
23
  else
24
24
  HashConversions.to_params(key => value)
25
25
  end
26
- end.flatten.sort.join('&')
26
+ end.flatten.join('&')
27
27
  end
28
28
 
29
29
  attr_accessor :http_method, :options, :last_response, :redirect, :last_uri
@@ -174,6 +174,7 @@ module HTTParty
174
174
  query_string_parts << options[:query] unless options[:query].nil?
175
175
  end
176
176
 
177
+ query_string_parts.reject!(&:empty?) unless query_string_parts == [""]
177
178
  query_string_parts.size > 0 ? query_string_parts.join('&') : nil
178
179
  end
179
180
 
@@ -50,9 +50,9 @@ module HTTParty
50
50
  alias_method :multiple_choice?, :multiple_choices?
51
51
  end
52
52
 
53
- def respond_to?(name)
53
+ def respond_to?(name, include_all = false)
54
54
  return true if [:request, :response, :parsed_response, :body, :headers].include?(name)
55
- parsed_response.respond_to?(name) || response.respond_to?(name)
55
+ parsed_response.respond_to?(name, include_all) || response.respond_to?(name, include_all)
56
56
  end
57
57
 
58
58
  protected
@@ -23,8 +23,8 @@ module HTTParty
23
23
  end
24
24
  end
25
25
 
26
- def respond_to?(method)
27
- super || @header.respond_to?(method)
26
+ def respond_to?(method, include_all = false)
27
+ super || @header.respond_to?(method, include_all)
28
28
  end
29
29
  end
30
30
  end
@@ -1,3 +1,3 @@
1
1
  module HTTParty
2
- VERSION = "0.12.0"
2
+ VERSION = "0.13.0"
3
3
  end
@@ -0,0 +1,2 @@
1
+ "name","url","id","description","protected","screen_name","followers_count","profile_image_url","location"
2
+ "Magic 8 Bot",,"17656026","ask me a question","false","magic8bot","90","http://s3.amazonaws.com/twitter_production/profile_images/65565851/8ball_large_normal.jpg",
@@ -251,6 +251,48 @@ describe HTTParty::ConnectionAdapter do
251
251
  end
252
252
  end
253
253
  end
254
+
255
+ context "when providing PKCS12 certificates" do
256
+ let(:p12) { :p12_contents }
257
+ let(:options) { {:p12 => p12, :p12_password => "password"} }
258
+
259
+ context "when scheme is https" do
260
+ let(:uri) { URI 'https://google.com' }
261
+ let(:pkcs12) { mock("OpenSSL::PKCS12", :certificate => cert, :key => key) }
262
+ let(:cert) { mock("OpenSSL::X509::Certificate") }
263
+ let(:key) { mock("OpenSSL::PKey::RSA") }
264
+
265
+ before do
266
+ OpenSSL::PKCS12.should_receive(:new).with(p12, "password").and_return(pkcs12)
267
+ end
268
+
269
+ it "uses the provided P12 certificate " do
270
+ subject.cert.should == cert
271
+ subject.key.should == key
272
+ end
273
+
274
+ it "will verify the certificate" do
275
+ subject.verify_mode.should == OpenSSL::SSL::VERIFY_PEER
276
+ end
277
+ end
278
+
279
+ context "when scheme is not https" do
280
+ let(:uri) { URI 'http://google.com' }
281
+ let(:http) { Net::HTTP.new(uri) }
282
+
283
+ before do
284
+ Net::HTTP.stub(:new => http)
285
+ OpenSSL::PKCS12.new.should_not_receive(:new).with(p12, "password")
286
+ http.should_not_receive(:cert=)
287
+ http.should_not_receive(:key=)
288
+ end
289
+
290
+ it "has no PKCS12 certificate " do
291
+ subject.cert.should be_nil
292
+ subject.key.should be_nil
293
+ end
294
+ end
295
+ end
254
296
  end
255
297
  end
256
298
  end
@@ -0,0 +1,23 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+
3
+ describe HTTParty::Error do
4
+ subject { described_class }
5
+
6
+ its(:ancestors) { should include(StandardError) }
7
+
8
+ describe HTTParty::UnsupportedFormat do
9
+ its(:ancestors) { should include(HTTParty::Error) }
10
+ end
11
+
12
+ describe HTTParty::UnsupportedURIScheme do
13
+ its(:ancestors) { should include(HTTParty::Error) }
14
+ end
15
+
16
+ describe HTTParty::ResponseError do
17
+ its(:ancestors) { should include(HTTParty::Error) }
18
+ end
19
+
20
+ describe HTTParty::RedirectionTooDeep do
21
+ its(:ancestors) { should include(HTTParty::ResponseError) }
22
+ end
23
+ end
@@ -112,4 +112,41 @@ describe Net::HTTPHeader::DigestAuthenticator do
112
112
  authorization_header.should include(%Q(response="#{request_digest}"))
113
113
  end
114
114
  end
115
+
116
+ context "with multiple authenticate headers" do
117
+ before do
118
+ @digest = setup_digest({
119
+ 'www-authenticate' => 'NTLM, Digest realm="myhost@testrealm.com", nonce="NONCE", qop="auth"',
120
+ })
121
+ end
122
+
123
+ it "should set prefix" do
124
+ authorization_header.should =~ /^Digest /
125
+ end
126
+
127
+ it "should set username" do
128
+ authorization_header.should include(%Q(username="Mufasa"))
129
+ end
130
+
131
+ it "should set digest-uri" do
132
+ authorization_header.should include(%Q(uri="/dir/index.html"))
133
+ end
134
+
135
+ it "should set qop" do
136
+ authorization_header.should include(%Q(qop="auth"))
137
+ end
138
+
139
+ it "should set cnonce" do
140
+ authorization_header.should include(%Q(cnonce="md5(deadbeef)"))
141
+ end
142
+
143
+ it "should set nonce-count" do
144
+ authorization_header.should include(%Q(nc=00000001))
145
+ end
146
+
147
+ it "should set response" do
148
+ request_digest = "md5(md5(Mufasa:myhost@testrealm.com:Circle Of Life):NONCE:00000001:md5(deadbeef):auth:md5(GET:/dir/index.html))"
149
+ authorization_header.should include(%Q(response="#{request_digest}"))
150
+ end
151
+ end
115
152
  end
@@ -156,5 +156,10 @@ describe HTTParty::Parser do
156
156
  it "parses plain text by simply returning the body" do
157
157
  subject.send(:plain).should == 'body'
158
158
  end
159
+
160
+ it "parses csv with CSV" do
161
+ CSV.should_receive(:parse).with('body')
162
+ subject.send(:csv)
163
+ end
159
164
  end
160
165
  end
@@ -21,8 +21,8 @@ describe HTTParty::Request do
21
21
  end
22
22
 
23
23
  it "URI encodes array values" do
24
- query_string = normalizer[{:people => ["Bob Marley", "Tim & Jon"]}]
25
- query_string.should == "people=Bob%20Marley&people=Tim%20%26%20Jon"
24
+ query_string = normalizer[{:people => ["Otis Redding", "Bob Marley", "Tim & Jon"], :page => 1, :xyzzy => 3}]
25
+ query_string.should == "page=1&people=Otis%20Redding&people=Bob%20Marley&people=Tim%20%26%20Jon&xyzzy=3"
26
26
  end
27
27
  end
28
28
 
@@ -133,6 +133,12 @@ describe HTTParty::Request do
133
133
  URI.unescape(@request.uri.query).should == ""
134
134
  end
135
135
 
136
+ it "does not append an ampersand when queries are embedded in paths" do
137
+ @request.path = "/path?a=1"
138
+ @request.options[:query] = {}
139
+ @request.uri.query.should == "a=1"
140
+ end
141
+
136
142
  it "does not duplicate query string parameters when uri is called twice" do
137
143
  @request.options[:query] = {:foo => :bar}
138
144
  @request.uri
@@ -196,6 +202,24 @@ describe HTTParty::Request do
196
202
  end
197
203
  end
198
204
 
205
+ it 'should handle text/csv' do
206
+ ["text/csv", "text/csv; charset=iso8859-1"].each do |ct|
207
+ @request.send(:format_from_mimetype, ct).should == :csv
208
+ end
209
+ end
210
+
211
+ it 'should handle application/csv' do
212
+ ["application/csv", "application/csv; charset=iso8859-1"].each do |ct|
213
+ @request.send(:format_from_mimetype, ct).should == :csv
214
+ end
215
+ end
216
+
217
+ it 'should handle text/comma-separated-values' do
218
+ ["text/comma-separated-values", "text/comma-separated-values; charset=iso8859-1"].each do |ct|
219
+ @request.send(:format_from_mimetype, ct).should == :csv
220
+ end
221
+ end
222
+
199
223
  it 'should handle text/javascript' do
200
224
  ["text/javascript", "text/javascript; charset=iso8859-1"].each do |ct|
201
225
  @request.send(:format_from_mimetype, ct).should == :plain
@@ -225,6 +249,12 @@ describe HTTParty::Request do
225
249
  @request.send(:parse_response, xml).should == {'books' => {'book' => {'id' => '1234', 'name' => 'Foo Bar!'}}}
226
250
  end
227
251
 
252
+ it 'should handle csv automatically' do
253
+ csv=[%q["id","Name"],%q["1234","Foo Bar!"]].join("\n")
254
+ @request.options[:format] = :csv
255
+ @request.send(:parse_response, csv).should == [["id","Name"],["1234","Foo Bar!"]]
256
+ end
257
+
228
258
  it 'should handle json automatically' do
229
259
  json = %q[{"books": {"book": {"name": "Foo Bar!", "id": "1234"}}}]
230
260
  @request.options[:format] = :json
@@ -38,6 +38,18 @@ describe HTTParty do
38
38
  end
39
39
  end
40
40
 
41
+ describe "pkcs12" do
42
+ it 'should set the p12 content' do
43
+ @klass.pkcs12 'P12-CONTENT', 'PASSWORD'
44
+ @klass.default_options[:p12].should == 'P12-CONTENT'
45
+ end
46
+
47
+ it 'should set the password' do
48
+ @klass.pkcs12 'P12-CONTENT', 'PASSWORD'
49
+ @klass.default_options[:p12_password].should == 'PASSWORD'
50
+ end
51
+ end
52
+
41
53
  describe 'ssl_version' do
42
54
  it 'should set the ssl_version content' do
43
55
  @klass.ssl_version :SSLv3
@@ -148,12 +160,18 @@ describe HTTParty do
148
160
  @klass.get('')
149
161
  end
150
162
 
151
- it "overwrites class headers when passing in headers" do
152
- expect_headers(:baz => 'spax')
163
+ it "merges class headers with request headers" do
164
+ expect_headers(:baz => 'spax', :foo => 'bar')
153
165
  @klass.headers(:foo => 'bar')
154
166
  @klass.get('', :headers => {:baz => 'spax'})
155
167
  end
156
168
 
169
+ it 'overrides class headers with request headers' do
170
+ expect_headers(:baz => 'spax', :foo => 'baz')
171
+ @klass.headers(:foo => 'bar')
172
+ @klass.get('', :headers => {:baz => 'spax', :foo => 'baz'})
173
+ end
174
+
157
175
  context "with cookies" do
158
176
  it 'utilizes the class-level cookies' do
159
177
  expect_headers(:foo => 'bar', 'cookie' => 'type=snickerdoodle')
@@ -379,6 +397,11 @@ describe HTTParty do
379
397
  @klass.default_options[:format].should == :xml
380
398
  end
381
399
 
400
+ it "should allow csv" do
401
+ @klass.format :csv
402
+ @klass.default_options[:format].should == :csv
403
+ end
404
+
382
405
  it "should allow json" do
383
406
  @klass.format :json
384
407
  @klass.default_options[:format].should == :json
@@ -398,7 +421,7 @@ describe HTTParty do
398
421
  it 'should only print each format once with an exception' do
399
422
  lambda do
400
423
  @klass.format :foobar
401
- end.should raise_error(HTTParty::UnsupportedFormat, "':foobar' Must be one of: html, json, plain, xml")
424
+ end.should raise_error(HTTParty::UnsupportedFormat, "':foobar' Must be one of: csv, html, json, plain, xml")
402
425
  end
403
426
 
404
427
  it 'sets the default parser' do
@@ -691,6 +714,14 @@ describe HTTParty do
691
714
  }
692
715
  end
693
716
 
717
+ it "should be able parse response type csv automatically" do
718
+ stub_http_response_with('twitter.csv')
719
+ profile = HTTParty.get('http://twitter.com/statuses/profile.csv')
720
+ profile.size.should == 2
721
+ profile[0].should == ["name","url","id","description","protected","screen_name","followers_count","profile_image_url","location"]
722
+ profile[1].should == ["Magic 8 Bot",nil,"17656026","ask me a question","false","magic8bot","90","http://s3.amazonaws.com/twitter_production/profile_images/65565851/8ball_large_normal.jpg",nil]
723
+ end
724
+
694
725
  it "should not get undefined method add_node for nil class for the following xml" do
695
726
  stub_http_response_with('undefined_method_add_node_for_nil.xml')
696
727
  result = HTTParty.get('http://foobar.com')
@@ -1,4 +1,5 @@
1
1
  $:.push File.expand_path("../lib", __FILE__)
2
+
2
3
  require "httparty"
3
4
 
4
5
  require 'spec/autorun'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: httparty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Nunemaker
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-10 00:00:00.000000000 Z
12
+ date: 2014-02-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -112,11 +112,13 @@ files:
112
112
  - spec/fixtures/ssl/generated/server.crt
113
113
  - spec/fixtures/ssl/generated/server.key
114
114
  - spec/fixtures/ssl/openssl-exts.cnf
115
+ - spec/fixtures/twitter.csv
115
116
  - spec/fixtures/twitter.json
116
117
  - spec/fixtures/twitter.xml
117
118
  - spec/fixtures/undefined_method_add_node_for_nil.xml
118
119
  - spec/httparty/connection_adapter_spec.rb
119
120
  - spec/httparty/cookie_hash_spec.rb
121
+ - spec/httparty/exception_spec.rb
120
122
  - spec/httparty/logger/apache_logger_spec.rb
121
123
  - spec/httparty/logger/curl_logger_spec.rb
122
124
  - spec/httparty/logger/logger_spec.rb
@@ -182,11 +184,13 @@ test_files:
182
184
  - spec/fixtures/ssl/generated/server.crt
183
185
  - spec/fixtures/ssl/generated/server.key
184
186
  - spec/fixtures/ssl/openssl-exts.cnf
187
+ - spec/fixtures/twitter.csv
185
188
  - spec/fixtures/twitter.json
186
189
  - spec/fixtures/twitter.xml
187
190
  - spec/fixtures/undefined_method_add_node_for_nil.xml
188
191
  - spec/httparty/connection_adapter_spec.rb
189
192
  - spec/httparty/cookie_hash_spec.rb
193
+ - spec/httparty/exception_spec.rb
190
194
  - spec/httparty/logger/apache_logger_spec.rb
191
195
  - spec/httparty/logger/curl_logger_spec.rb
192
196
  - spec/httparty/logger/logger_spec.rb