зеркало из https://github.com/github/ruby.git
Add a test for Exception#detailed_message
This commit is contained in:
Родитель
4db986431a
Коммит
5099f64fa4
|
@ -1421,4 +1421,33 @@ $stderr = $stdout; raise "\x82\xa0"') do |outs, errs, status|
|
|||
end
|
||||
end;
|
||||
end
|
||||
|
||||
def test_detailed_message
|
||||
e = RuntimeError.new("message")
|
||||
assert_equal("message (RuntimeError)", e.detailed_message)
|
||||
assert_equal("\e[1mmessage (\e[1;4mRuntimeError\e[m\e[1m)\e[m", e.detailed_message(highlight: true))
|
||||
|
||||
e = RuntimeError.new("foo\nbar\nbaz")
|
||||
assert_equal("foo (RuntimeError)\nbar\nbaz", e.detailed_message)
|
||||
assert_equal("\e[1mfoo (\e[1;4mRuntimeError\e[m\e[1m)\e[m\n\e[1mbar\e[m\n\e[1mbaz\e[m", e.detailed_message(highlight: true))
|
||||
|
||||
e = RuntimeError.new("")
|
||||
assert_equal("unhandled exception", e.detailed_message)
|
||||
assert_equal("\e[1;4munhandled exception\e[m", e.detailed_message(highlight: true))
|
||||
|
||||
e = RuntimeError.new
|
||||
assert_equal("RuntimeError (RuntimeError)", e.detailed_message)
|
||||
assert_equal("\e[1mRuntimeError (\e[1;4mRuntimeError\e[m\e[1m)\e[m", e.detailed_message(highlight: true))
|
||||
end
|
||||
|
||||
def test_full_message_with_custom_detailed_message
|
||||
e = RuntimeError.new("message")
|
||||
opt_ = nil
|
||||
e.define_singleton_method(:detailed_message) do |**opt|
|
||||
opt_ = opt
|
||||
"BOO!"
|
||||
end
|
||||
assert_match("BOO!", e.full_message.lines.first)
|
||||
assert_equal({ highlight: Exception.to_tty? }, opt_)
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче