mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-09-14 08:54:35 +08:00
Handle assertion errors in doctests (#1752)
This commit is contained in:
parent
503f8df76a
commit
429a89b1aa
2 changed files with 24 additions and 10 deletions
|
@ -163,7 +163,13 @@ defmodule Livebook.Runtime.Evaluator.Doctests do
|
|||
|
||||
expected = diff[:right]
|
||||
got = diff[:left]
|
||||
source = String.trim(reason.doctest)
|
||||
|
||||
{expected_label, got_label, source} =
|
||||
if reason.doctest == ExUnit.AssertionError.no_value() do
|
||||
{"right", "left", nil}
|
||||
else
|
||||
{"expected", "got", String.trim(reason.doctest)}
|
||||
end
|
||||
|
||||
message_io =
|
||||
if_io(reason.message != "Doctest failed", fn ->
|
||||
|
@ -175,19 +181,22 @@ defmodule Livebook.Runtime.Evaluator.Doctests do
|
|||
[colorize(:red, message), "\n"]
|
||||
end)
|
||||
|
||||
source_io = [
|
||||
String.duplicate(" ", @pad_size),
|
||||
format_label("doctest"),
|
||||
"\n",
|
||||
pad(source, @pad_size + 2)
|
||||
]
|
||||
source_io =
|
||||
if_io(source, fn ->
|
||||
[
|
||||
String.duplicate(" ", @pad_size),
|
||||
format_label("doctest"),
|
||||
"\n",
|
||||
pad(source, @pad_size + 2)
|
||||
]
|
||||
end)
|
||||
|
||||
expected_io =
|
||||
if_io(expected, fn ->
|
||||
[
|
||||
"\n",
|
||||
String.duplicate(" ", @pad_size),
|
||||
format_label("expected"),
|
||||
format_label(expected_label),
|
||||
"\n",
|
||||
String.duplicate(" ", @pad_size + 2),
|
||||
expected
|
||||
|
@ -199,7 +208,7 @@ defmodule Livebook.Runtime.Evaluator.Doctests do
|
|||
[
|
||||
"\n",
|
||||
String.duplicate(" ", @pad_size),
|
||||
format_label("got"),
|
||||
format_label(got_label),
|
||||
"\n",
|
||||
String.duplicate(" ", @pad_size + 2),
|
||||
got
|
||||
|
|
|
@ -401,6 +401,11 @@ defmodule Livebook.Runtime.EvaluatorTest do
|
|||
|
||||
iex> 1 +
|
||||
:who_knows
|
||||
|
||||
iex> 1 = 2
|
||||
|
||||
iex> require ExUnit.Assertions
|
||||
...> ExUnit.Assertions.assert false
|
||||
"""
|
||||
|
||||
@doc """
|
||||
|
@ -444,7 +449,7 @@ defmodule Livebook.Runtime.EvaluatorTest do
|
|||
|
||||
assert_receive {:runtime_evaluation_output, :code_1, {:text, doctest_result}}
|
||||
|
||||
assert doctest_result =~ "6 doctests, 5 failures"
|
||||
assert doctest_result =~ "8 doctests, 7 failures"
|
||||
assert doctest_result =~ "Doctest did not compile, got: (TokenMissingError)"
|
||||
|
||||
assert doctest_result =~
|
||||
|
|
Loading…
Add table
Reference in a new issue