mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-12-17 21:50:25 +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]
|
expected = diff[:right]
|
||||||
got = diff[:left]
|
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 =
|
message_io =
|
||||||
if_io(reason.message != "Doctest failed", fn ->
|
if_io(reason.message != "Doctest failed", fn ->
|
||||||
|
|
@ -175,19 +181,22 @@ defmodule Livebook.Runtime.Evaluator.Doctests do
|
||||||
[colorize(:red, message), "\n"]
|
[colorize(:red, message), "\n"]
|
||||||
end)
|
end)
|
||||||
|
|
||||||
source_io = [
|
source_io =
|
||||||
String.duplicate(" ", @pad_size),
|
if_io(source, fn ->
|
||||||
format_label("doctest"),
|
[
|
||||||
"\n",
|
String.duplicate(" ", @pad_size),
|
||||||
pad(source, @pad_size + 2)
|
format_label("doctest"),
|
||||||
]
|
"\n",
|
||||||
|
pad(source, @pad_size + 2)
|
||||||
|
]
|
||||||
|
end)
|
||||||
|
|
||||||
expected_io =
|
expected_io =
|
||||||
if_io(expected, fn ->
|
if_io(expected, fn ->
|
||||||
[
|
[
|
||||||
"\n",
|
"\n",
|
||||||
String.duplicate(" ", @pad_size),
|
String.duplicate(" ", @pad_size),
|
||||||
format_label("expected"),
|
format_label(expected_label),
|
||||||
"\n",
|
"\n",
|
||||||
String.duplicate(" ", @pad_size + 2),
|
String.duplicate(" ", @pad_size + 2),
|
||||||
expected
|
expected
|
||||||
|
|
@ -199,7 +208,7 @@ defmodule Livebook.Runtime.Evaluator.Doctests do
|
||||||
[
|
[
|
||||||
"\n",
|
"\n",
|
||||||
String.duplicate(" ", @pad_size),
|
String.duplicate(" ", @pad_size),
|
||||||
format_label("got"),
|
format_label(got_label),
|
||||||
"\n",
|
"\n",
|
||||||
String.duplicate(" ", @pad_size + 2),
|
String.duplicate(" ", @pad_size + 2),
|
||||||
got
|
got
|
||||||
|
|
|
||||||
|
|
@ -401,6 +401,11 @@ defmodule Livebook.Runtime.EvaluatorTest do
|
||||||
|
|
||||||
iex> 1 +
|
iex> 1 +
|
||||||
:who_knows
|
:who_knows
|
||||||
|
|
||||||
|
iex> 1 = 2
|
||||||
|
|
||||||
|
iex> require ExUnit.Assertions
|
||||||
|
...> ExUnit.Assertions.assert false
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
|
@ -444,7 +449,7 @@ defmodule Livebook.Runtime.EvaluatorTest do
|
||||||
|
|
||||||
assert_receive {:runtime_evaluation_output, :code_1, {:text, doctest_result}}
|
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 =~ "Doctest did not compile, got: (TokenMissingError)"
|
||||||
|
|
||||||
assert doctest_result =~
|
assert doctest_result =~
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue