diff options
author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-10-28 15:14:55 +0000 |
---|---|---|
committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-10-28 15:14:55 +0000 |
commit | 974e862db9f6c91dc9448570d1a103aad357a6e5 (patch) | |
tree | 02c6ae19120f92f7aea5d691be9e9a20618be7e7 /spec/mspec/lib/mspec/matchers | |
parent | ad1b64d35d7ca980a0398f09cff527d7420cd5c1 (diff) | |
download | ruby-974e862db9f6c91dc9448570d1a103aad357a6e5.tar.gz |
Update to ruby/mspec@90925d6
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/mspec/lib/mspec/matchers')
-rw-r--r-- | spec/mspec/lib/mspec/matchers/complain.rb | 34 | ||||
-rw-r--r-- | spec/mspec/lib/mspec/matchers/raise_error.rb | 8 |
2 files changed, 26 insertions, 16 deletions
diff --git a/spec/mspec/lib/mspec/matchers/complain.rb b/spec/mspec/lib/mspec/matchers/complain.rb index 71b6a77680..4bcb255040 100644 --- a/spec/mspec/lib/mspec/matchers/complain.rb +++ b/spec/mspec/lib/mspec/matchers/complain.rb @@ -7,44 +7,48 @@ class ComplainMatcher def matches?(proc) @saved_err = $stderr - @stderr = $stderr = IOStub.new @verbose = $VERBOSE - $VERBOSE = false - - proc.call + begin + err = $stderr = IOStub.new + $VERBOSE = false + Thread.current[:in_mspec_complain_matcher] = true + proc.call + ensure + $VERBOSE = @verbose + $stderr = @saved_err + Thread.current[:in_mspec_complain_matcher] = false + end + @warning = err.to_s unless @complaint.nil? case @complaint when Regexp - return false unless $stderr =~ @complaint + return false unless @warning =~ @complaint else - return false unless $stderr == @complaint + return false unless @warning == @complaint end end - return $stderr.empty? ? false : true - ensure - $VERBOSE = @verbose - $stderr = @saved_err + return @warning.empty? ? false : true end def failure_message if @complaint.nil? ["Expected a warning", "but received none"] elsif @complaint.kind_of? Regexp - ["Expected warning to match: #{@complaint.inspect}", "but got: #{@stderr.chomp.inspect}"] + ["Expected warning to match: #{@complaint.inspect}", "but got: #{@warning.chomp.inspect}"] else - ["Expected warning: #{@complaint.inspect}", "but got: #{@stderr.chomp.inspect}"] + ["Expected warning: #{@complaint.inspect}", "but got: #{@warning.chomp.inspect}"] end end def negative_failure_message if @complaint.nil? - ["Unexpected warning: ", @stderr.chomp.inspect] + ["Unexpected warning: ", @warning.chomp.inspect] elsif @complaint.kind_of? Regexp - ["Expected warning not to match: #{@complaint.inspect}", "but got: #{@stderr.chomp.inspect}"] + ["Expected warning not to match: #{@complaint.inspect}", "but got: #{@warning.chomp.inspect}"] else - ["Expected warning: #{@complaint.inspect}", "but got: #{@stderr.chomp.inspect}"] + ["Expected warning: #{@complaint.inspect}", "but got: #{@warning.chomp.inspect}"] end end end diff --git a/spec/mspec/lib/mspec/matchers/raise_error.rb b/spec/mspec/lib/mspec/matchers/raise_error.rb index 28c7a5ea2f..2f9afdc687 100644 --- a/spec/mspec/lib/mspec/matchers/raise_error.rb +++ b/spec/mspec/lib/mspec/matchers/raise_error.rb @@ -53,13 +53,19 @@ class RaiseErrorMatcher exception_class_and_message(exception.class, exception.message) end + def format_result(result) + result.pretty_inspect.chomp + rescue => e + "#pretty_inspect raised #{e.class}; A #<#{result.class}>" + end + def failure_message message = ["Expected #{format_expected_exception}"] if @actual message << "but got #{format_exception(@actual)}" else - message << "but no exception was raised (#{@result.pretty_inspect.chomp} was returned)" + message << "but no exception was raised (#{format_result(@result)} was returned)" end message |