id summary reporter owner description type status priority milestone component resolution keywords cc merged author reviewer upstream work_issues branch commit dependencies stopgaps
10589 sage -fixdoctests doesn't work correctly mderickx mvngu "This patch fixes the following problems with the command line fixdoctests option:
* correctly deals with tests for which output it expected but none is generated, or for which no output is expected by some is generated.
* makes fixdoctests play nicely with the changes introduced in #12415
* adds some tests to sage/tests/cmdline.py
* makes the script work slightly better with tests that produce output with varying indentation
* cleans up the code of sage-fixdoctests
* sage-fixdoctests now checks to see if it can write to the specified output directory and if not it prompts the user for a better place to put the file
* the script now takes an optional argument --long so that fixdoctests can also massage --long doctests
* there is an updated usage message for fixdoctests printed by sage --advanced
* there is an updated usage message for fixdoctests in the reference manual
---
Original ticket:
To reproduce this remove all but the first test result from the patch at: #10568
{{{
maarten-derickxs-macbook-pro:sage maarten$ sage -t matrix/matrix_sparse.pyx
sage -t ""devel/sage-main/sage/matrix/matrix_sparse.pyx""
**********************************************************************
File ""/Applications/sage-4.6.rc0/devel/sage-main/sage/matrix/matrix_sparse.pyx"", line 301:
sage: (2/3)*M
Expected nothing
Got:
[ 0 2/3 4/3 2 8/3 10/3]
[ 4 14/3 16/3 6 20/3 22/3]
[ 8 26/3 28/3 10 32/3 34/3]
**********************************************************************
File ""/Applications/sage-4.6.rc0/devel/sage-main/sage/matrix/matrix_sparse.pyx"", line 302:
sage: 7*M
Expected nothing
Got:
[ 0 7 14 21 28 35]
[ 42 49 56 63 70 77]
[ 84 91 98 105 112 119]
**********************************************************************
File ""/Applications/sage-4.6.rc0/devel/sage-main/sage/matrix/matrix_sparse.pyx"", line 303:
sage: (1/4)*M
Expected nothing
Got:
[ 0 1/4 1/2 3/4 1 5/4]
[ 3/2 7/4 2 9/4 5/2 11/4]
[ 3 13/4 7/2 15/4 4 17/4]
**********************************************************************
File ""/Applications/sage-4.6.rc0/devel/sage-main/sage/matrix/matrix_sparse.pyx"", line 306:
sage: m==(97/42)*(42/97*m)
Expected nothing
Got:
True
**********************************************************************
1 items had failures:
4 of 9 in __main__.example_6
***Test Failed*** 4 failures.
For whitespace errors, see the file /Users/maarten/.sage//tmp/.doctest_matrix_sparse.py
[12.5 s]
----------------------------------------------------------------------
The following tests failed:
sage -t ""devel/sage-main/sage/matrix/matrix_sparse.pyx""
Total time for all tests: 12.6 seconds
maarten-derickxs-macbook-pro:sage maarten$ sage -fixdoctests matrix/matrix_sparse.pyx
}}}
The bug was caused by the script not allowing for the cases when either the expected or computed returns from the doctests were empty. The attached patch does this properly and also cleans up the script a little (well, a lot, actually).
Note that the script lives in $SAGE_ROOT/local/bin which is not part of the standard repository. The (new) doctests for the script live in sage/tests/cmdline.py
**Apply:** [attachment:trac_10589--doctests_for_fixdoctests-am.patch]
**Apply to scripts repository:** [attachment:trac_10589--fixdoctest_failures-am.patch] (modifies $SAGE_ROOT/local/bin)
**Applt to root repository:** [attachment:trac_10589--updating_fixdoctests_command_line_options-am.patch] (modifies $SAGE_ROOT/spkg/bin)" defect closed minor sage-5.13 scripts fixed days45 sage-5.13.beta1 Andrew Mathas Travis Scrimshaw N/A #12415