Wed, 12 Oct 2011 22:01:14 +0200 tests: add support for inline doctests in test files
Idan Kamara <idankk86@gmail.com> [Wed, 12 Oct 2011 22:01:14 +0200] rev 15236
tests: add support for inline doctests in test files This adds doctest like syntax to .t files, that can be interleaved with regular shell code: $ echo -n a > file >>> print open('file').read() a >>> open('file', 'a').write('b') $ cat file ab The syntax is exactly the same as regular doctests, so multiline statements look like this: >>> for i in range(3): ... print i 0 1 2 Each block has its own context, i.e.: >>> x = 0 >>> print x 0 $ echo 'foo' foo >>> print x will result in a NameError. Errors are displayed in standard doctest format: >>> print 'foo' bar --- /home/idan/dev/hg/default/tests/test-test.t +++ /home/idan/dev/hg/default/tests/test-test.t.err @@ -2,3 +2,16 @@ > >>> print 'foo' > bar > EOF + ********************************************************************** + File "/tmp/tmps8X_0ohg-tst", line 1, in tmps8X_0ohg-tst + Failed example: + print 'foo' + Expected: + bar + Got: + foo + ********************************************************************** + 1 items had failures: + 1 of 1 in tmps8X_0ohg-tst + ***Test Failed*** 1 failures. + [1] As for the implementation, it's quite simple: when the test runner sees a line starting with '>>>' it converts it, and all subsequent lines until the next line that begins with '$' to a 'python -m heredoctest <<EOF' call with the proper heredoc to follow. So if we have this test file: >>> for c in 'abcd': ... print c a b c d $ echo foo foo It gets converted to: $ python -m heredoctest <<EOF > >>> for c in 'abcd': > ... print c > a > b > c > d > EOF $ echo foo foo And then processed like every other test file by converting it to a sh script.
Wed, 12 Oct 2011 22:01:13 +0200 tests: add helper script for processing doctests read from stdin
Idan Kamara <idankk86@gmail.com> [Wed, 12 Oct 2011 22:01:13 +0200] rev 15235
tests: add helper script for processing doctests read from stdin Writes stdin to a temp file and doctests it. In the future we might want to spare the temp file and directly call into doctest. Also, with some tweaking it seems possible to adjust the line numbers reported in an error report so they match the ones in the original file.
Tue, 11 Oct 2011 21:34:55 -0700 subrepo: fix git branch tracking logic (issue2920)
Eric Roshan Eisner <ede@alum.mit.edu> [Tue, 11 Oct 2011 21:34:55 -0700] rev 15234
subrepo: fix git branch tracking logic (issue2920)
Tue, 11 Oct 2011 17:20:03 -0500 alias: don't shadow commands that we only partially matched (issue2993) (BC)
Augie Fackler <durin42@gmail.com> [Tue, 11 Oct 2011 17:20:03 -0500] rev 15233
alias: don't shadow commands that we only partially matched (issue2993) (BC) Previously, if you set an alias for "ci", it'd also shadow "commit" even though you didn't specify that. This occurred for all commands with explicit short variations.
Tue, 11 Oct 2011 18:48:45 +0200 resolve: update documentation to mention the .orig backup
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 11 Oct 2011 18:48:45 +0200] rev 15232
resolve: update documentation to mention the .orig backup
Tue, 11 Oct 2011 18:18:15 -0700 cmdutil.bailifchanged: abort for dirty subrepos
Eric Roshan Eisner <ede@alum.mit.edu> [Tue, 11 Oct 2011 18:18:15 -0700] rev 15231
cmdutil.bailifchanged: abort for dirty subrepos
Tue, 11 Oct 2011 21:10:03 -0400 largefiles: improve help
Greg Ward <greg@gerg.ca> [Tue, 11 Oct 2011 21:10:03 -0400] rev 15230
largefiles: improve help Extension help taken from the URL formerly in the text (https://developers.kilnhg.com/Repo/Kiln/largefiles/largefiles/File/usage.txt) and improved.
Tue, 11 Oct 2011 21:11:01 -0400 largefiles: use ui.configlist() to split largefiles.patterns
Greg Ward <greg@gerg.ca> [Tue, 11 Oct 2011 21:11:01 -0400] rev 15229
largefiles: use ui.configlist() to split largefiles.patterns
(0) -10000 -3000 -1000 -300 -100 -30 -10 -8 +8 +10 +30 +100 +300 +1000 +3000 +10000 +30000 tip