From f63ba0916132e16d5eeb1a5c1ad868b0169bf7fc Mon Sep 17 00:00:00 2001 From: Daniel Leidert Date: Mon, 22 Nov 2021 01:34:25 +0100 Subject: [PATCH 1/3] Properly accept argument and keywords --- lib/flexmock/composite_expectation.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/flexmock/composite_expectation.rb b/lib/flexmock/composite_expectation.rb index 370046f..fbc8e54 100644 --- a/lib/flexmock/composite_expectation.rb +++ b/lib/flexmock/composite_expectation.rb @@ -16,9 +16,9 @@ def add(expectation) end # Apply the constraint method to all expectations in the composite. - def method_missing(sym, *args, &block) + def method_missing(sym, *args, **keywords, &block) @expectations.each do |expectation| - expectation.send(sym, *args, &block) + expectation.send(sym, *args, **keywords, &block) end self end From b3a2d7984803d70778c1f585ca48fb1fd374e44c Mon Sep 17 00:00:00 2001 From: Daniel Leidert Date: Mon, 22 Nov 2021 01:34:48 +0100 Subject: [PATCH 2/3] Use binding.source_location for test Fixes the warning: warning: __FILE__ in eval may not return location in binding; use Binding#source_location instead --- test/test_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_helper.rb b/test/test_helper.rb index 9eb3310..c4fd622 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -50,7 +50,7 @@ def assert_failure(klass, options={}, &block) # added. def assert_mock_failure(klass, options={}, &block) ex = assert_failure(klass, options, &block) - file = eval("__FILE__", block.binding) + file = block.binding.source_location.first assert_matching_line(ex, file, options) end From 8a4be2142b37a6ab4b6b8a3f38a07f2b06752acf Mon Sep 17 00:00:00 2001 From: Daniel Leidert Date: Mon, 22 Nov 2021 01:35:53 +0100 Subject: [PATCH 3/3] Relax error message on test a bit Fixes ``` 1) Failure: TestStubbing#test_partial_mocks_leaves_NoMethodError_exceptions_raised_by_the_original_method_unchanged [/build/ruby-flexmock-2XiXfY/ruby-flexmock-2.3.6/test/partial_mock_test.rb:625]: --- expected +++ actual @@ -1 +1,3 @@ -"undefined method `does_not_exist' for #<#:0xXXXXXX>" +# encoding: US-ASCII +# valid: true +"undefined method `does_not_exist' for #<#:0xXXXXXX @flexmock_proxy=#, #:0xXXXXXX ...>, @mock=)>, @proxy_definition_module=#, @initialize_override=nil, @method_definitions={:mocked_method=>##mocked_method() /build/ruby-flexmock-2XiXfY/ruby-flexmock-2.3.6/test/partial_mock_test.rb:619>}>, container=#>, @flexmock_created_mocks=[)>, #:0xXXXXXX ...>, @mock=)>, @proxy_definition_module=#, @initialize_override=nil, @method_definitions={:mocked_method=>##mocked_method() /build/ruby-flexmock-2XiXfY/ruby-flexmock-2.3.6/test/partial_mock_test.rb:619>}>]>>]>>" ``` --- test/partial_mock_test.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/partial_mock_test.rb b/test/partial_mock_test.rb index 065ecb5..3564db3 100644 --- a/test/partial_mock_test.rb +++ b/test/partial_mock_test.rb @@ -634,7 +634,8 @@ def test_partial_mocks_leaves_NoMethodError_exceptions_raised_by_the_original_me exception = assert_raises(NameError) do obj.mocked_method end - assert_equal "undefined method `does_not_exist' for #{obj}", exception.message + assert(/undefined method `does_not_exist' for #<#