savon 2.9.0 → 2.10.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 85eee2aa2cf1a1c2130cf5c50c453ef5dec838c3
4
- data.tar.gz: bb9aa1c1c8e3cff15b8bbb4ca24a3d8b0764814a
3
+ metadata.gz: 041367085f94b9a23b1dc4725ce5e776c1efdaca
4
+ data.tar.gz: 3920e53e9e6246063ab38a64aa7d26f31adc3dbd
5
5
  SHA512:
6
- metadata.gz: 0681726a8f75c5ea133b98bdf2ac582e9af225677b643a20dbf0832cbd2458fce15a6c409d42691dbeffc97cdb15f6451dece2d60b5dcf8d2b3c4d5801de555c
7
- data.tar.gz: 09cf940fcb8e9e8b669967eac9daa31f14ccfb633a1679af94aec21856be2fccd329018fc549014a7a9bded9fabb396393adf4e0c6c526c9e9c844613546f506
6
+ metadata.gz: 952a31b9b054f74ee5e152b3a85628b6a511e4ea5b134f0098b886940b27f23c2e23eb685241e6a79057ddfa9837dfc800adec5a8bf5e249f2d979fa2e296506
7
+ data.tar.gz: 02d114680d544563398f70e74d1b46f5c4c3b7a0643ab165fc354cbb84d24a5472be5a156fc55ab07014a721ef97db523b9485ac42c544d517bba0e4e9ac5c83
@@ -4,6 +4,7 @@ script: "bundle exec rake --trace"
4
4
  rvm:
5
5
  - 2.0
6
6
  - 2.1
7
+ - 2.2
7
8
  - jruby
8
9
  notifications:
9
10
  irc: "irc.freenode.org#savon"
@@ -1,3 +1,7 @@
1
+ * 2.10.0 (2015-03-02)
2
+
3
+ * Fix: This reverts a purported "fix" to operation names.
4
+
1
5
  # 2.9.0 (2015-01-29)
2
6
 
3
7
  * Feature: [#655] Wasabi exceptions should be rethrown as Savon errors. This should make it easier to catch errors thrown by Savon::Client.
@@ -54,8 +54,8 @@ module Savon
54
54
  end
55
55
 
56
56
  def verify_message!
57
- return if @expected[:message] == :any
58
- unless @expected[:message] == @actual[:message]
57
+ return if @expected[:message].eql? :any
58
+ unless @expected[:message] === @actual[:message]
59
59
  expected_message = " with this message: #{@expected[:message].inspect}" if @expected[:message]
60
60
  expected_message ||= " with no message."
61
61
 
@@ -26,14 +26,14 @@ module Savon
26
26
  private
27
27
 
28
28
  def log_request(request)
29
- logger.info "SOAP request: #{request.url}"
30
- logger.info headers_to_log(request.headers)
31
- logger.debug body_to_log(request.body)
29
+ logger.info { "SOAP request: #{request.url}" }
30
+ logger.info { headers_to_log(request.headers) }
31
+ logger.debug { body_to_log(request.body) }
32
32
  end
33
33
 
34
34
  def log_response(response)
35
- logger.info "SOAP response (status #{response.code})"
36
- logger.debug body_to_log(response.body)
35
+ logger.info { "SOAP response (status #{response.code})" }
36
+ logger.debug { body_to_log(response.body) }
37
37
  end
38
38
 
39
39
  def headers_to_log(headers)
@@ -1,3 +1,3 @@
1
1
  module Savon
2
- VERSION = '2.9.0'
2
+ VERSION = '2.10.0'
3
3
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
 
19
19
  s.add_dependency "nori", "~> 2.4"
20
20
  s.add_dependency "httpi", "~> 2.3"
21
- s.add_dependency "wasabi", "3.3.0"
21
+ s.add_dependency "wasabi", "~> 3.4"
22
22
  s.add_dependency "akami", "~> 1.2"
23
23
  s.add_dependency "gyoku", "~> 1.2"
24
24
  s.add_dependency "uuid", "~> 2.3.7"
@@ -127,6 +127,12 @@ describe "Savon's mock interface" do
127
127
  expect { new_client.call(:find_user) }.to_not raise_error
128
128
  end
129
129
 
130
+ it "matchers can be used to specify the message" do
131
+ savon.expects(:find_user).with(:message => include(:username)).returns("<fixture/>")
132
+ message = { :username => "Han Solo", password: "querty"}
133
+
134
+ expect { new_client.call(:find_user, :message => message) }.to_not raise_error
135
+ end
130
136
 
131
137
  it "allows code to rescue Savon::Error and still report test failures" do
132
138
  message = { :username => "luke" }
@@ -504,46 +504,39 @@ describe "Options" do
504
504
 
505
505
  context "global :filters" do
506
506
  it "filters a list of XML tags from logged SOAP messages" do
507
- silence_stdout do
507
+ captured = mock_stdout do
508
508
  client = new_client(:endpoint => @server.url(:repeat), :log => true)
509
-
510
509
  client.globals[:filters] << :password
511
510
 
512
- # filter out logs we're not interested in
513
- client.globals[:logger].expects(:info).at_least_once
514
- client.globals[:logger].expects(:debug).at_least_once
515
-
516
- # check whether the password is filtered
517
- client.globals[:logger].expects(:debug).with { |message|
518
- message.include? "<password>***FILTERED***</password>"
519
- }.twice
520
-
521
511
  message = { :username => "luke", :password => "secret" }
522
512
  client.call(:authenticate, :message => message)
523
513
  end
514
+
515
+ captured.rewind
516
+ messages = captured.readlines.join("\n")
517
+
518
+ expect(messages).to include("<password>***FILTERED***</password>")
524
519
  end
525
520
  end
526
521
 
527
522
  context "global :pretty_print_xml" do
528
523
  it "is a nice but expensive way to debug XML messages" do
529
- silence_stdout do
530
- client = new_client(:endpoint => @server.url(:repeat), :pretty_print_xml => true, :log => true)
531
-
532
- # filter out logs we're not interested in
533
- client.globals[:logger].expects(:info).at_least_once
534
- client.globals[:logger].expects(:debug).at_least_once
535
-
536
- # check whether the message is pretty printed
537
- client.globals[:logger].expects(:debug).with { |message|
538
- envelope = message =~ /\n<env:Envelope/
539
- body = message =~ /\n <env:Body>/
540
- message_tag = message =~ /\n <tns:authenticate\/>/
541
-
542
- envelope && body && message_tag
543
- }.twice
524
+ captured = mock_stdout do
525
+ client = new_client(
526
+ :endpoint => @server.url(:repeat),
527
+ :pretty_print_xml => true,
528
+ :log => true)
529
+ client.globals[:logger].formatter = proc { |*, msg| "#{msg}\n" }
544
530
 
545
531
  client.call(:authenticate)
546
532
  end
533
+
534
+ captured.rewind
535
+ messages = captured.readlines.join("\n")
536
+
537
+ expect(messages).to match(/\n<env:Envelope/)
538
+ expect(messages).to match(/\n <env:Body/)
539
+ expect(messages).to match(/\n <tns:authenticate/)
547
540
  end
548
541
  end
549
542
 
@@ -0,0 +1,37 @@
1
+ require "spec_helper"
2
+
3
+ describe Savon::RequestLogger do
4
+
5
+ subject { described_class.new(globals) }
6
+ let(:globals) { Savon::GlobalOptions.new(:log => true, :pretty_print_xml => true) }
7
+ let(:request) {
8
+ stub('Request',
9
+ :url => 'http://example.com',
10
+ :headers => [],
11
+ :body => '<TestRequest />'
12
+ )
13
+ }
14
+
15
+ let(:response) {
16
+ stub('Response',
17
+ :code => 200,
18
+ :body => '<TestResponse />'
19
+ )
20
+ }
21
+
22
+ before(:each) {
23
+ globals[:logger].level = Logger::DEBUG
24
+ }
25
+
26
+ describe '#log_request / #log_response' do
27
+ it 'does not prepare log messages when no logging is needed' do
28
+ begin
29
+ globals[:logger].level = Logger::FATAL
30
+
31
+ Savon::LogMessage.expects(:new).never
32
+ subject.log(request) { response }
33
+ end
34
+ end
35
+
36
+ end
37
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: savon
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.0
4
+ version: 2.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Harrington
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-30 00:00:00.000000000 Z
11
+ date: 2015-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nori
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: wasabi
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.3.0
47
+ version: '3.4'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.3.0
54
+ version: '3.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: akami
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -293,6 +293,7 @@ files:
293
293
  - spec/savon/operation_spec.rb
294
294
  - spec/savon/options_spec.rb
295
295
  - spec/savon/qualified_message_spec.rb
296
+ - spec/savon/request_logger_spec.rb
296
297
  - spec/savon/request_spec.rb
297
298
  - spec/savon/response_spec.rb
298
299
  - spec/savon/soap_fault_spec.rb