diff options
| author | Jean Boussier <jean.boussier@gmail.com> | 2026-02-05 20:38:00 +0100 |
|---|---|---|
| committer | Benoit Daloze <eregontp@gmail.com> | 2026-02-07 10:06:36 +0100 |
| commit | d066b9e01ccb2260fac8b2580c10e73335c7c7db (patch) | |
| tree | ece08ae6b0309149e09a640a3b41537a6485ee13 /spec/ruby | |
| parent | 96d00640978d78ede1f5b2b63e422cfd1e849891 (diff) | |
Refactor type error to be more consistent
[Bug #21864]
Co-Authored-By: Benoit Daloze <eregontp@gmail.com>
Diffstat (limited to 'spec/ruby')
23 files changed, 34 insertions, 34 deletions
diff --git a/spec/ruby/core/array/try_convert_spec.rb b/spec/ruby/core/array/try_convert_spec.rb index bea8815006..2d5e14375f 100644 --- a/spec/ruby/core/array/try_convert_spec.rb +++ b/spec/ruby/core/array/try_convert_spec.rb @@ -39,7 +39,7 @@ describe "Array.try_convert" do it "sends #to_ary to the argument and raises TypeError if it's not a kind of Array" do obj = mock("to_ary") obj.should_receive(:to_ary).and_return(Object.new) - -> { Array.try_convert obj }.should raise_error(TypeError, "can't convert MockObject to Array (MockObject#to_ary gives Object)") + -> { Array.try_convert obj }.should raise_consistent_error(TypeError, "can't convert MockObject into Array (MockObject#to_ary gives Object)") end it "does not rescue exceptions raised by #to_ary" do diff --git a/spec/ruby/core/basicobject/instance_eval_spec.rb b/spec/ruby/core/basicobject/instance_eval_spec.rb index f8d9d75059..475910e56e 100644 --- a/spec/ruby/core/basicobject/instance_eval_spec.rb +++ b/spec/ruby/core/basicobject/instance_eval_spec.rb @@ -284,7 +284,7 @@ describe "BasicObject#instance_eval" do def source_code.to_str() :symbol end a = BasicObject.new - -> { a.instance_eval(source_code) }.should raise_error(TypeError, /can't convert Object to String/) + -> { a.instance_eval(source_code) }.should raise_consistent_error(TypeError, /can't convert Object into String/) end it "converts filename argument with #to_str method" do @@ -303,7 +303,7 @@ describe "BasicObject#instance_eval" do filename = Object.new def filename.to_str() :symbol end - -> { Object.new.instance_eval("raise", filename) }.should raise_error(TypeError, /can't convert Object to String/) + -> { Object.new.instance_eval("raise", filename) }.should raise_consistent_error(TypeError, /can't convert Object into String/) end it "converts lineno argument with #to_int method" do @@ -322,6 +322,6 @@ describe "BasicObject#instance_eval" do lineno = Object.new def lineno.to_int() :symbol end - -> { Object.new.instance_eval("raise", "file.rb", lineno) }.should raise_error(TypeError, /can't convert Object to Integer/) + -> { Object.new.instance_eval("raise", "file.rb", lineno) }.should raise_consistent_error(TypeError, /can't convert Object into Integer/) end end diff --git a/spec/ruby/core/data/deconstruct_keys_spec.rb b/spec/ruby/core/data/deconstruct_keys_spec.rb index df378f8b98..979d136893 100644 --- a/spec/ruby/core/data/deconstruct_keys_spec.rb +++ b/spec/ruby/core/data/deconstruct_keys_spec.rb @@ -106,7 +106,7 @@ describe "Data#deconstruct_keys" do -> { d.deconstruct_keys([key]) - }.should raise_error(TypeError, /can't convert MockObject to Integer/) + }.should raise_consistent_error(TypeError, /can't convert MockObject into Integer/) end it "raises TypeError if index is not a String, a Symbol and not convertible to Integer " do diff --git a/spec/ruby/core/dir/for_fd_spec.rb b/spec/ruby/core/dir/for_fd_spec.rb index 1559e1baa4..be80a2c1fe 100644 --- a/spec/ruby/core/dir/for_fd_spec.rb +++ b/spec/ruby/core/dir/for_fd_spec.rb @@ -54,7 +54,7 @@ platform_is_not :windows do it "raises TypeError when value cannot be converted to Integer" do -> { Dir.for_fd(nil) - }.should raise_error(TypeError, "no implicit conversion from nil to integer") + }.should raise_consistent_error(TypeError, "no implicit conversion of nil into Integer") end it "raises a SystemCallError if the file descriptor given is not valid" do diff --git a/spec/ruby/core/hash/try_convert_spec.rb b/spec/ruby/core/hash/try_convert_spec.rb index d359ae49d8..3932c8cdfd 100644 --- a/spec/ruby/core/hash/try_convert_spec.rb +++ b/spec/ruby/core/hash/try_convert_spec.rb @@ -39,7 +39,7 @@ describe "Hash.try_convert" do it "sends #to_hash to the argument and raises TypeError if it's not a kind of Hash" do obj = mock("to_hash") obj.should_receive(:to_hash).and_return(Object.new) - -> { Hash.try_convert obj }.should raise_error(TypeError, "can't convert MockObject to Hash (MockObject#to_hash gives Object)") + -> { Hash.try_convert obj }.should raise_consistent_error(TypeError, "can't convert MockObject into Hash (MockObject#to_hash gives Object)") end it "does not rescue exceptions raised by #to_hash" do diff --git a/spec/ruby/core/integer/try_convert_spec.rb b/spec/ruby/core/integer/try_convert_spec.rb index 8a0ca671a9..ba14a5aa7e 100644 --- a/spec/ruby/core/integer/try_convert_spec.rb +++ b/spec/ruby/core/integer/try_convert_spec.rb @@ -29,7 +29,7 @@ describe "Integer.try_convert" do obj.should_receive(:to_int).and_return(Object.new) -> { Integer.try_convert obj - }.should raise_error(TypeError, "can't convert MockObject to Integer (MockObject#to_int gives Object)") + }.should raise_consistent_error(TypeError, "can't convert MockObject into Integer (MockObject#to_int gives Object)") end it "responds with a different error message when it raises a TypeError, depending on the type of the non-Integer object :to_int returns" do @@ -37,7 +37,7 @@ describe "Integer.try_convert" do obj.should_receive(:to_int).and_return("A String") -> { Integer.try_convert obj - }.should raise_error(TypeError, "can't convert MockObject to Integer (MockObject#to_int gives String)") + }.should raise_consistent_error(TypeError, "can't convert MockObject into Integer (MockObject#to_int gives String)") end it "does not rescue exceptions raised by #to_int" do diff --git a/spec/ruby/core/io/lineno_spec.rb b/spec/ruby/core/io/lineno_spec.rb index e82cdd9f17..3439a97729 100644 --- a/spec/ruby/core/io/lineno_spec.rb +++ b/spec/ruby/core/io/lineno_spec.rb @@ -96,7 +96,7 @@ describe "IO#lineno=" do it "raises TypeError if cannot convert argument to Integer implicitly" do -> { @io.lineno = "1" }.should raise_error(TypeError, 'no implicit conversion of String into Integer') - -> { @io.lineno = nil }.should raise_error(TypeError, 'no implicit conversion from nil to integer') + -> { @io.lineno = nil }.should raise_consistent_error(TypeError, 'no implicit conversion of nil into Integer') end it "does not accept Integers that don't fit in a C int" do diff --git a/spec/ruby/core/io/try_convert_spec.rb b/spec/ruby/core/io/try_convert_spec.rb index a9e99de7aa..820b13ab50 100644 --- a/spec/ruby/core/io/try_convert_spec.rb +++ b/spec/ruby/core/io/try_convert_spec.rb @@ -38,7 +38,7 @@ describe "IO.try_convert" do it "raises a TypeError if the object does not return an IO from #to_io" do obj = mock("io") obj.should_receive(:to_io).and_return("io") - -> { IO.try_convert(obj) }.should raise_error(TypeError, "can't convert MockObject to IO (MockObject#to_io gives String)") + -> { IO.try_convert(obj) }.should raise_consistent_error(TypeError, "can't convert MockObject into IO (MockObject#to_io gives String)") end it "propagates an exception raised by #to_io" do diff --git a/spec/ruby/core/kernel/Rational_spec.rb b/spec/ruby/core/kernel/Rational_spec.rb index cc11a35451..7e63e0dd57 100644 --- a/spec/ruby/core/kernel/Rational_spec.rb +++ b/spec/ruby/core/kernel/Rational_spec.rb @@ -131,7 +131,7 @@ describe "Kernel.Rational" do obj = Object.new def obj.to_r; []; end - -> { Rational(obj) }.should raise_error(TypeError, "can't convert Object to Rational (Object#to_r gives Array)") + -> { Rational(obj) }.should raise_consistent_error(TypeError, "can't convert Object into Rational (Object#to_r gives Array)") end end diff --git a/spec/ruby/core/kernel/shared/sprintf.rb b/spec/ruby/core/kernel/shared/sprintf.rb index 2b2c6c9b63..5ffe118035 100644 --- a/spec/ruby/core/kernel/shared/sprintf.rb +++ b/spec/ruby/core/kernel/shared/sprintf.rb @@ -306,13 +306,13 @@ describe :kernel_sprintf, shared: true do it "raises TypeError if argument is not String or Integer and cannot be converted to them" do -> { @method.call("%c", []) - }.should raise_error(TypeError, /no implicit conversion of Array into Integer/) + }.should raise_consistent_error(TypeError, /no implicit conversion of Array into Integer/) end it "raises TypeError if argument is nil" do -> { @method.call("%c", nil) - }.should raise_error(TypeError, /no implicit conversion from nil to integer/) + }.should raise_consistent_error(TypeError, /no implicit conversion of nil into Integer/) end it "tries to convert argument to String with to_str" do @@ -341,7 +341,7 @@ describe :kernel_sprintf, shared: true do -> { @method.call("%c", obj) - }.should raise_error(TypeError, /can't convert BasicObject to String/) + }.should raise_consistent_error(TypeError, /can't convert BasicObject into String/) end it "raises TypeError if converting to Integer with to_int returns non-Integer" do @@ -352,7 +352,7 @@ describe :kernel_sprintf, shared: true do -> { @method.call("%c", obj) - }.should raise_error(TypeError, /can't convert BasicObject to Integer/) + }.should raise_consistent_error(TypeError, /can't convert BasicObject into Integer/) end end diff --git a/spec/ruby/core/module/define_method_spec.rb b/spec/ruby/core/module/define_method_spec.rb index c5dfc53764..a4fe4fad18 100644 --- a/spec/ruby/core/module/define_method_spec.rb +++ b/spec/ruby/core/module/define_method_spec.rb @@ -254,7 +254,7 @@ describe "Module#define_method" do -> { Class.new { define_method(obj, -> {}) } - }.should raise_error(TypeError, /can't convert Object to String/) + }.should raise_consistent_error(TypeError, /can't convert Object into String/) end it "raises a TypeError when the given method is no Method/Proc" do diff --git a/spec/ruby/core/module/instance_method_spec.rb b/spec/ruby/core/module/instance_method_spec.rb index 182cdf5c54..c6bc201520 100644 --- a/spec/ruby/core/module/instance_method_spec.rb +++ b/spec/ruby/core/module/instance_method_spec.rb @@ -79,7 +79,7 @@ describe "Module#instance_method" do obj = Object.new def obj.to_str() [] end - -> { ModuleSpecs::InstanceMeth.instance_method(obj) }.should raise_error(TypeError, /can't convert Object to String/) + -> { ModuleSpecs::InstanceMeth.instance_method(obj) }.should raise_consistent_error(TypeError, /can't convert Object into String/) end it "raises a NameError if the method has been undefined" do diff --git a/spec/ruby/core/module/shared/class_eval.rb b/spec/ruby/core/module/shared/class_eval.rb index 526d0a2036..b6e653a2ac 100644 --- a/spec/ruby/core/module/shared/class_eval.rb +++ b/spec/ruby/core/module/shared/class_eval.rb @@ -66,7 +66,7 @@ describe :module_class_eval, shared: true do it "raises a TypeError when the given filename can't be converted to string using to_str" do (file = mock('123')).should_receive(:to_str).and_return(123) - -> { ModuleSpecs.send(@method, "1+1", file) }.should raise_error(TypeError, /can't convert MockObject to String/) + -> { ModuleSpecs.send(@method, "1+1", file) }.should raise_consistent_error(TypeError, /can't convert MockObject into String/) end it "converts non string eval-string to string using to_str" do @@ -85,7 +85,7 @@ describe :module_class_eval, shared: true do -> { ModuleSpecs.send(@method, o) }.should raise_error(TypeError, "no implicit conversion of MockObject into String") (o = mock('123')).should_receive(:to_str).and_return(123) - -> { ModuleSpecs.send(@method, o) }.should raise_error(TypeError, /can't convert MockObject to String/) + -> { ModuleSpecs.send(@method, o) }.should raise_consistent_error(TypeError, /can't convert MockObject into String/) end it "raises an ArgumentError when no arguments and no block are given" do diff --git a/spec/ruby/core/process/detach_spec.rb b/spec/ruby/core/process/detach_spec.rb index f13bda1f5d..f5f3b263f5 100644 --- a/spec/ruby/core/process/detach_spec.rb +++ b/spec/ruby/core/process/detach_spec.rb @@ -75,7 +75,7 @@ describe "Process.detach" do pid = MockObject.new('mock-enumerable') pid.should_receive(:to_int).and_return(:symbol) - -> { Process.detach(pid) }.should raise_error(TypeError, "can't convert MockObject to Integer (MockObject#to_int gives Symbol)") + -> { Process.detach(pid) }.should raise_consistent_error(TypeError, "can't convert MockObject into Integer (MockObject#to_int gives Symbol)") end end end diff --git a/spec/ruby/core/queue/initialize_spec.rb b/spec/ruby/core/queue/initialize_spec.rb index 592fbe2487..6b9e6b7fa9 100644 --- a/spec/ruby/core/queue/initialize_spec.rb +++ b/spec/ruby/core/queue/initialize_spec.rb @@ -55,6 +55,6 @@ describe "Queue#initialize" do enumerable = MockObject.new('mock-enumerable') enumerable.should_receive(:to_a).and_return("string") - -> { Queue.new(enumerable) }.should raise_error(TypeError, "can't convert MockObject to Array (MockObject#to_a gives String)") + -> { Queue.new(enumerable) }.should raise_consistent_error(TypeError, "can't convert MockObject into Array (MockObject#to_a gives String)") end end diff --git a/spec/ruby/core/regexp/shared/new.rb b/spec/ruby/core/regexp/shared/new.rb index 12c3d7c9c2..7b0f12d623 100644 --- a/spec/ruby/core/regexp/shared/new.rb +++ b/spec/ruby/core/regexp/shared/new.rb @@ -46,7 +46,7 @@ describe :regexp_new_non_string_or_regexp, shared: true do obj = Object.new def obj.to_str() [] end - -> { Regexp.send(@method, obj) }.should raise_error(TypeError, /can't convert Object to String/) + -> { Regexp.send(@method, obj) }.should raise_consistent_error(TypeError, /can't convert Object into String/) end end diff --git a/spec/ruby/core/regexp/try_convert_spec.rb b/spec/ruby/core/regexp/try_convert_spec.rb index e775dbe971..44a6fead83 100644 --- a/spec/ruby/core/regexp/try_convert_spec.rb +++ b/spec/ruby/core/regexp/try_convert_spec.rb @@ -22,6 +22,6 @@ describe "Regexp.try_convert" do it "raises a TypeError if the object does not return an Regexp from #to_regexp" do obj = mock("regexp") obj.should_receive(:to_regexp).and_return("string") - -> { Regexp.try_convert(obj) }.should raise_error(TypeError, "can't convert MockObject to Regexp (MockObject#to_regexp gives String)") + -> { Regexp.try_convert(obj) }.should raise_consistent_error(TypeError, "can't convert MockObject into Regexp (MockObject#to_regexp gives String)") end end diff --git a/spec/ruby/core/string/try_convert_spec.rb b/spec/ruby/core/string/try_convert_spec.rb index 72ce5dd8b2..7019f1fc2a 100644 --- a/spec/ruby/core/string/try_convert_spec.rb +++ b/spec/ruby/core/string/try_convert_spec.rb @@ -39,7 +39,7 @@ describe "String.try_convert" do it "sends #to_str to the argument and raises TypeError if it's not a kind of String" do obj = mock("to_str") obj.should_receive(:to_str).and_return(Object.new) - -> { String.try_convert obj }.should raise_error(TypeError, "can't convert MockObject to String (MockObject#to_str gives Object)") + -> { String.try_convert obj }.should raise_consistent_error(TypeError, "can't convert MockObject into String (MockObject#to_str gives Object)") end it "does not rescue exceptions raised by #to_str" do diff --git a/spec/ruby/core/struct/deconstruct_keys_spec.rb b/spec/ruby/core/struct/deconstruct_keys_spec.rb index e16b50f930..0360a4b194 100644 --- a/spec/ruby/core/struct/deconstruct_keys_spec.rb +++ b/spec/ruby/core/struct/deconstruct_keys_spec.rb @@ -106,7 +106,7 @@ describe "Struct#deconstruct_keys" do -> { s.deconstruct_keys([key]) - }.should raise_error(TypeError, /can't convert MockObject to Integer/) + }.should raise_consistent_error(TypeError, /can't convert MockObject into Integer/) end it "raises TypeError if index is not a String, a Symbol and not convertible to Integer" do diff --git a/spec/ruby/language/send_spec.rb b/spec/ruby/language/send_spec.rb index 5d6340ffc5..c60381cf55 100644 --- a/spec/ruby/language/send_spec.rb +++ b/spec/ruby/language/send_spec.rb @@ -112,7 +112,7 @@ describe "Invoking a method" do -> { specs.makeproc(&o) - }.should raise_error(TypeError, "can't convert LangSendSpecs::RawToProc to Proc (LangSendSpecs::RawToProc#to_proc gives Integer)") + }.should raise_consistent_error(TypeError, "can't convert LangSendSpecs::RawToProc into Proc (LangSendSpecs::RawToProc#to_proc gives Integer)") end it "raises TypeError if block object isn't a Proc and doesn't respond to `to_proc`" do diff --git a/spec/ruby/shared/queue/deque.rb b/spec/ruby/shared/queue/deque.rb index a154da6274..fbd00143f8 100644 --- a/spec/ruby/shared/queue/deque.rb +++ b/spec/ruby/shared/queue/deque.rb @@ -105,11 +105,11 @@ describe :queue_deq, shared: true do q = @object.call -> { q.send(@method, timeout: "1") - }.should raise_error(TypeError, "no implicit conversion to float from string") + }.should raise_consistent_error(TypeError, "no implicit conversion of String into Float") -> { q.send(@method, timeout: false) - }.should raise_error(TypeError, "no implicit conversion to float from false") + }.should raise_consistent_error(TypeError, "no implicit conversion of false into Float") end it "raise ArgumentError if non_block = true is passed too" do diff --git a/spec/ruby/shared/sizedqueue/enque.rb b/spec/ruby/shared/sizedqueue/enque.rb index 6804af3fb3..bab4c407e1 100644 --- a/spec/ruby/shared/sizedqueue/enque.rb +++ b/spec/ruby/shared/sizedqueue/enque.rb @@ -90,11 +90,11 @@ describe :sizedqueue_enq, shared: true do q = @object.call(1) -> { q.send(@method, 2, timeout: "1") - }.should raise_error(TypeError, "no implicit conversion to float from string") + }.should raise_consistent_error(TypeError, "no implicit conversion of String into Float") -> { q.send(@method, 2, timeout: false) - }.should raise_error(TypeError, "no implicit conversion to float from false") + }.should raise_consistent_error(TypeError, "no implicit conversion of false into Float") end it "raise ArgumentError if non_block = true is passed too" do diff --git a/spec/ruby/shared/types/rb_num2dbl_fails.rb b/spec/ruby/shared/types/rb_num2dbl_fails.rb index ec7cc11986..4d4856fa6c 100644 --- a/spec/ruby/shared/types/rb_num2dbl_fails.rb +++ b/spec/ruby/shared/types/rb_num2dbl_fails.rb @@ -7,11 +7,11 @@ describe :rb_num2dbl_fails, shared: true do it "fails if string is provided" do - -> { @object.call("123") }.should raise_error(TypeError, "no implicit conversion to float from string") + -> { @object.call("123") }.should raise_consistent_error(TypeError, "no implicit conversion of String into Float") end it "fails if boolean is provided" do - -> { @object.call(true) }.should raise_error(TypeError, "no implicit conversion to float from true") - -> { @object.call(false) }.should raise_error(TypeError, "no implicit conversion to float from false") + -> { @object.call(true) }.should raise_consistent_error(TypeError, "no implicit conversion of true into Float") + -> { @object.call(false) }.should raise_consistent_error(TypeError, "no implicit conversion of false into Float") end end |
