@@ -313,8 +313,8 @@ defmodule ExUnit.DocTest do
313
313
end
314
314
315
315
tests =
316
- Enum . map ( exprs , fn { expr , expected , formatted } ->
317
- test_case_content ( expr , expected , location , stack , formatted )
316
+ Enum . map ( exprs , fn { expr , expected , doctest } ->
317
+ test_case_content ( expr , expected , location , stack , doctest )
318
318
end )
319
319
320
320
{ :__block__ , [ ] , test_import ( module , do_import ) ++ tests }
@@ -327,69 +327,65 @@ defmodule ExUnit.DocTest do
327
327
end ) > 1
328
328
end
329
329
330
- defp test_case_content ( expr , :test , location , stack , formatted ) do
331
- string_to_quoted ( location , stack , expr , " \n " <> formatted ) |> insert_assertions ( )
330
+ defp test_case_content ( expr , :test , location , stack , doctest ) do
331
+ string_to_quoted ( location , stack , expr , doctest ) |> insert_assertions ( )
332
332
end
333
333
334
- defp test_case_content ( expr , { :test , expected } , location , stack , formatted ) do
335
- doctest = "\n " <> formatted <> "\n " <> expected
334
+ defp test_case_content ( expr , { :test , expected } , location , stack , doctest ) do
336
335
expr_ast = string_to_quoted ( location , stack , expr , doctest ) |> insert_assertions ( )
337
336
expected_ast = string_to_quoted ( location , stack , expected , doctest )
338
337
last_expr = Macro . to_string ( last_expr ( expr_ast ) )
339
338
340
339
quote do
341
340
value = unquote ( expr_ast )
342
341
expected = unquote ( expected_ast )
343
- formatted = unquote ( formatted )
342
+ doctest = unquote ( doctest )
344
343
last_expr = unquote ( last_expr )
345
344
expected_expr = unquote ( expected )
346
345
stack = unquote ( stack )
347
346
348
- ExUnit.DocTest . __test__ ( value , expected , formatted , last_expr , expected_expr , stack )
347
+ ExUnit.DocTest . __test__ ( value , expected , doctest , last_expr , expected_expr , stack )
349
348
end
350
349
end
351
350
352
- defp test_case_content ( expr , { :inspect , expected } , location , stack , formatted ) do
353
- doctest = "\n " <> formatted <> "\n " <> expected
351
+ defp test_case_content ( expr , { :inspect , expected } , location , stack , doctest ) do
354
352
expr_ast = string_to_quoted ( location , stack , expr , doctest ) |> insert_assertions ( )
355
- expected_ast = string_to_quoted ( location , stack , expected , doctest )
356
353
last_expr = Macro . to_string ( last_expr ( expr_ast ) )
357
354
358
355
quote do
359
356
value = unquote ( expr_ast )
360
- expected = unquote ( expected_ast )
361
- formatted = unquote ( formatted )
357
+ expected = unquote ( expected )
358
+ doctest = unquote ( doctest )
362
359
last_expr = unquote ( last_expr )
363
- expected_expr = unquote ( expected )
360
+ expected_expr = unquote ( inspect ( expected ) )
364
361
stack = unquote ( stack )
365
362
366
- ExUnit.DocTest . __inspect__ ( value , expected , formatted , last_expr , expected_expr , stack )
363
+ ExUnit.DocTest . __inspect__ ( value , expected , doctest , last_expr , expected_expr , stack )
367
364
end
368
365
end
369
366
370
- defp test_case_content ( expr , { :error , exception , message } , location , stack , formatted ) do
371
- doctest = "\n " <> formatted <> "\n ** (#{ inspect ( exception ) } ) #{ inspect ( message ) } "
367
+ defp test_case_content ( expr , { :error , exception , message } , location , stack , doctest ) do
372
368
expr_ast = string_to_quoted ( location , stack , expr , doctest )
373
369
374
370
quote do
375
371
stack = unquote ( stack )
376
372
message = unquote ( message )
377
- formatted = unquote ( formatted )
373
+ doctest = unquote ( doctest )
378
374
exception = unquote ( exception )
379
- ExUnit.DocTest . __error__ ( fn -> unquote ( expr_ast ) end , message , exception , formatted , stack )
375
+ ExUnit.DocTest . __error__ ( fn -> unquote ( expr_ast ) end , message , exception , doctest , stack )
380
376
end
381
377
end
382
378
383
379
@ doc false
384
- def __test__ ( value , expected , formatted , last_expr , expected_expr , stack ) do
380
+ def __test__ ( value , expected , doctest , last_expr , expected_expr , stack ) do
385
381
case value do
386
382
^ expected ->
387
383
:ok
388
384
389
385
_ ->
390
386
error = [
391
387
message: "Doctest failed" ,
392
- doctest: " \n " <> formatted <> " \n " <> expected_expr ,
388
+ doctest: doctest ,
393
389
expr: "#{ last_expr } === #{ String . trim ( expected_expr ) } " ,
394
390
left: value ,
395
391
right: expected
@@ -400,7 +396,7 @@ defmodule ExUnit.DocTest do
400
396
end
401
397
402
398
@ doc false
403
- def __inspect__ ( value , expected , formatted , last_expr , expected_expr , parent_stack ) do
399
+ def __inspect__ ( value , expected , doctest , last_expr , expected_expr , parent_stack ) do
404
400
result =
405
401
try do
406
402
inspect ( value , safe: false )
@@ -418,15 +414,14 @@ defmodule ExUnit.DocTest do
418
414
:ok
419
415
420
416
{ extra , stack } ->
421
- doctest = "\n " <> formatted <> "\n " <> expected_expr
422
417
expr = "inspect(#{ last_expr } ) === #{ String . trim ( expected_expr ) } "
423
418
error = [ doctest: doctest , expr: expr ] ++ extra
424
419
reraise ExUnit.AssertionError , error , stack ++ parent_stack
425
420
end
426
421
end
427
422
428
423
@ doc false
429
- def __error__ ( fun , message , exception , formatted , stack ) do
424
+ def __error__ ( fun , message , exception , doctest , stack ) do
430
425
try do
431
426
fun . ( )
432
427
rescue
@@ -451,12 +446,10 @@ defmodule ExUnit.DocTest do
451
446
end
452
447
453
448
if failed do
454
- doctest = "\n " <> formatted <> "\n ** (#{ inspect ( exception ) } ) #{ inspect ( message ) } "
455
449
reraise ExUnit.AssertionError , [ message: failed , doctest: doctest ] , stack
456
450
end
457
451
else
458
452
_ ->
459
- doctest = "\n " <> formatted <> "\n ** (#{ inspect ( exception ) } ) #{ inspect ( message ) } "
460
453
failed = "Doctest failed: expected exception #{ inspect ( exception ) } but nothing was raised"
461
454
error = [ message: failed , doctest: doctest ]
462
455
reraise ExUnit.AssertionError , error , stack
@@ -862,7 +855,8 @@ defmodule ExUnit.DocTest do
862
855
end
863
856
864
857
defp add_expr ( % { exprs: exprs } = test , expr , expected , formatted ) do
865
- % { test | exprs: [ { expr , tag_expected ( expected ) , formatted } | exprs ] }
858
+ doctest = "\n " <> formatted <> "\n " <> expected
859
+ % { test | exprs: [ { expr , tag_expected ( expected ) , doctest } | exprs ] }
866
860
end
867
861
868
862
defp tag_expected ( string ) do
@@ -876,7 +870,7 @@ defmodule ExUnit.DocTest do
876
870
877
871
_ ->
878
872
if inspectable? ( string ) do
879
- { :inspect , inspect ( string ) }
873
+ { :inspect , string }
880
874
else
881
875
{ :test , string }
882
876
end
0 commit comments