From: Guenter M. <mi...@us...> - 2009-03-09 13:48:05
|
On 2009-03-09, David Goodger wrote: > On Mon, Mar 9, 2009 at 03:18, Guenter Milde <mi...@us...> wrote: >> On 2009-03-06, Mike Johnson wrote: Summary: A functional test with the equivalent to --stylesheet_path = 'ham.css,path/to/spam.css,/eggs.css' fails on >>> Windows XP Professional version 5.1.2600 build 2600 >>> Working directory: C:\temp\docutils\test ... >>> <link rel="stylesheet" href="../../ham.css" type="text/css" /> >>> <link rel="stylesheet" href="../../path/to/spam.css" type="text/css" /> >>> -<link rel="stylesheet" href="/eggs.css" type="text/css" /> >>> +<link rel="stylesheet" href="C:/eggs.css" type="text/css" /> >> This test runs OK under Linux. >> Paths given to "stylesheet_path" are rewritten relative to the >> destination directory by the function ``relative_path(source, >> target)`` in docutils/docutils/utils.py. >> It seems that os.path.abspath() returns a drive letter on Windows but >> not on Unix. > A fully-qualified absolute path on Windows includes a drive letter, so > that makes sense. However, a path without a drive letter implies the > current drive (IIUC). It could be that the function is doing too much > on Windows. I'm not a Windows expert though. I just wonder why:: while (source_parts and target_parts and source_parts[-1] == target_parts[-1]): # Remove path components in common: source_parts.pop() target_parts.pop() does not pop the drive letter. This should IMO only happen, if source and target are on different drives. As I do not have access to a Windows machine, I cannot test. >> OTOH, the path separator returned by relative_path() is "/" on all OS. > That's simply to unify filesystem and URL conventions. Not relevant here. Only to that extend that some kind of URL compatibility is desired. How would a "file:" URI represent the Windows path "C:\eggs.css"? >> How should we procede? >> * Do separate tests for Unix, Mac, and Windows? > That's a possibility. >> * Strip the drive letter. > No, that would be fudging the data. This depends on what relative_path() is supposed to do. As the input data did not contain a drive letter, there is no need to emit one in the output. >> * Remove the ",/eggs.css" part from the test case. > Also a possibility, but it weakens the test. > There's a fourth possibility: > * Parameterize the test. Use some code in the test to compute the > expected output, and compare that to the actual output. This would be OK in a unit test, but results in a hard to follow functional test. Maybe one could remove the "test for absolute path" in the functional test and add a "test relative_path() for absolute path" to the unit tests? Günter |
From: Guenter M. <mi...@us...> - 2009-03-09 14:50:15
|
On 2009-03-09, Guenter Milde wrote: > On 2009-03-09, David Goodger wrote: >> On Mon, Mar 9, 2009 at 03:18, Guenter Milde <mi...@us...> wrote: >>> On 2009-03-06, Mike Johnson wrote: > A functional test of the multi-styles feature failed on >>>> Windows XP Professional version 5.1.2600 build 2600 ... >>>> -<link rel="stylesheet" href="/eggs.css" type="text/css" /> >>>> +<link rel="stylesheet" href="C:/eggs.css" type="text/css" /> >>> This test runs OK under Linux. ... >>> * Remove the ",/eggs.css" part from the test case. >> Also a possibility, but it weakens the test. This is what I did as a first measure. A functional test of the inclusion of several style-sheets should not be complicated/compromised by OS-dependend output of the relative_path() function. > add a "test relative_path() for absolute path" to the unit tests? Günter |
From: Paul v. G. <van...@st...> - 2009-05-05 07:25:12
|
Hello, a colleague recommended docutils to me. So, I was following the install procedure and after successful installation, I ran the test suite and got one failure. Since the install doc asked me to submit a bug report, here it is :-). Good luck! OS: Mac OS X Version 10.5.6 docutils version: ganymede:tools paul$ ./quicktest.py --version quicktest.py (Docutils 0.6 [snapshot 2009-05-05, r5933]) test output: ganymede:test paul$ ./alltests.py Testing Docutils 0.6 [snapshot 2009-05-05, r5933] with Python 2.5.1 on 2009-05-05 at 08:52:58 Working directory: /Users/paul/Desktop/tmp/docutils/test Docutils package: /Users/paul/Desktop/tmp/docutils/docutils .................................................................... [snip] test_parsers/test_rst/test_directives/test_tables.py: totest['csv-table'][20]; test_parser (DocutilsTestSupport.ParserTestCase) input: .. csv-table:: bad encoding :file: test_parsers/test_rst/test_directives/utf-16.csv :encoding: latin-1 (7- and 8-bit text encoded as UTF-16 has lots of null/zero bytes.) -: expected +: output <document source="test data"> <system_message level="3" line="1" source="test data" type="ERROR"> <paragraph> Error with CSV data in "csv-table" directive: - 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) + line contains NULL byte <literal_block xml:space="preserve"> .. csv-table:: bad encoding :file: test_parsers/test_rst/test_directives/utf-16.csv :encoding: latin-1 <paragraph> (7- and 8-bit text encoded as UTF-16 has lots of null/zero bytes.) F.......................................... ====================================================================== FAIL: test_parsers/test_rst/test_directives/test_tables.py: totest['csv-table'][20]; test_parser (DocutilsTestSupport.ParserTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/paul/Desktop/tmp/docutils/test/DocutilsTestSupport.py", line 449, in test_parser self.compare_output(self.input, output, self.expected) File "/Users/paul/Desktop/tmp/docutils/test/DocutilsTestSupport.py", line 220, in compare_output raise error AssertionError: '''\ <document source="test data"> <system_message level="3" line="1" source="test data" type="ERROR"> <paragraph> Error with CSV data in "csv-table" directive: line contains NULL byte <literal_block xml:space="preserve"> .. csv-table:: bad encoding :file: test_parsers/test_rst/test_directives/utf-16.csv :encoding: latin-1 <paragraph> (7- and 8-bit text encoded as UTF-16 has lots of null/zero bytes.) ''' != '''\ <document source="test data"> <system_message level="3" line="1" source="test data" type="ERROR"> <paragraph> Error with CSV data in "csv-table" directive: \'ascii\' codec can\'t encode characters in position 0-1: ordinal not in range(128) <literal_block xml:space="preserve"> .. csv-table:: bad encoding :file: test_parsers/test_rst/test_directives/utf-16.csv :encoding: latin-1 <paragraph> (7- and 8-bit text encoded as UTF-16 has lots of null/zero bytes.) ''' ---------------------------------------------------------------------- Ran 1094 tests in 16.472s FAILED (failures=1) Elapsed time: 19.406 seconds |
From: Katrina E. <kat...@gm...> - 2009-07-05 07:55:14
|
Hi, I just tried establishing Docutils on my Mac (running OS 10.5.6) and experienced this failure when I ran the test suite: > Testing Docutils 0.6 [snapshot 2009-07-04, r6008] with Python 2.5.1 > on 2009-07-05 at 03:44:34 > Working directory: /Users/katrina/Documents/Software/docutils/test > Docutils package: /Users/katrina/Documents/Software/docutils/docutils > ...................................................................... > ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... > test_parsers/test_rst/test_directives/test_tables.py: totest['csv- > table'][20]; test_parser (DocutilsTestSupport.ParserTestCase) > input: > .. csv-table:: bad encoding > :file: test_parsers/test_rst/test_directives/utf-16.csv > :encoding: latin-1 > > (7- and 8-bit text encoded as UTF-16 has lots of null/zero bytes.) > > -: expected > +: output > <document source="test data"> > <system_message level="3" line="1" source="test data" > type="ERROR"> > <paragraph> > Error with CSV data in "csv-table" directive: > - 'ascii' codec can't encode characters in position 0-1: > ordinal not in range(128) > + line contains NULL byte > <literal_block xml:space="preserve"> > .. csv-table:: bad encoding > :file: test_parsers/test_rst/test_directives/ > utf-16.csv > :encoding: latin-1 > <paragraph> > (7- and 8-bit text encoded as UTF-16 has lots of null/zero > bytes.) > > F.......................................... > ====================================================================== > FAIL: test_parsers/test_rst/test_directives/test_tables.py: > totest['csv-table'][20]; test_parser > (DocutilsTestSupport.ParserTestCase) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "/Users/katrina/Documents/Software/docutils/test/ > DocutilsTestSupport.py", line 449, in test_parser > self.compare_output(self.input, output, self.expected) > File "/Users/katrina/Documents/Software/docutils/test/ > DocutilsTestSupport.py", line 220, in compare_output > raise error > AssertionError: '''\ > <document source="test data"> > <system_message level="3" line="1" source="test data" > type="ERROR"> > <paragraph> > Error with CSV data in "csv-table" directive: > line contains NULL byte > <literal_block xml:space="preserve"> > .. csv-table:: bad encoding > :file: test_parsers/test_rst/test_directives/utf-16.csv > :encoding: latin-1 > <paragraph> > (7- and 8-bit text encoded as UTF-16 has lots of null/zero > bytes.) > ''' != '''\ > <document source="test data"> > <system_message level="3" line="1" source="test data" > type="ERROR"> > <paragraph> > Error with CSV data in "csv-table" directive: > \'ascii\' codec can\'t encode characters in position > 0-1: ordinal not in range(128) > <literal_block xml:space="preserve"> > .. csv-table:: bad encoding > :file: test_parsers/test_rst/test_directives/utf-16.csv > :encoding: latin-1 > <paragraph> > (7- and 8-bit text encoded as UTF-16 has lots of null/zero > bytes.) > ''' > > ---------------------------------------------------------------------- > Ran 1096 tests in 12.330s > > FAILED (failures=1) > Elapsed time: 15.974 seconds I am running Docutils 0.6 with Python 2.5.1. Is there anything missing from my machine that I can install to correct this? Thank you, Katrina Ellison |
From: David G. <go...@py...> - 2009-07-05 15:53:16
|
On Sun, Jul 5, 2009 at 03:55, Katrina Ellison<kat...@gm...> wrote: > I just tried establishing Docutils on my Mac (running OS 10.5.6) and > experienced this failure when I ran the test suite: Thanks for the bug report. The latest snapshot (or current SVN) has fixed the problem, which was only a deficiency in the test suite; the Docutils code itself was fine. > I am running Docutils 0.6 with Python 2.5.1. Is there anything missing > from my machine that I can install to correct this? No, the problem wasn't on your end. -- David Goodger <http://python.net/~goodger> |
From: Robert A. <rob...@in...> - 2009-11-13 20:09:29
|
quicktest.py (Docutils 0.6 [release]) Mac OS X 10.5.6 Python 2.5 I am new so I might not be giving you what you need. - Robert Docutils package: /Users/robertanderson/Downloads/docutils/docutils ............................................................................ ............................................................................ ............................................................................ ............................................................................ ....................................................../Library/Python/2.5/si te-packages/Pygments-1.1.1-py2.5.egg/pygments/plugin.py:39: UserWarning: Module docutils was already imported from /Users/robertanderson/Downloads/docutils/docutils/__init__.py, but /Library/Python/2.5/site-packages/docutils-0.6-py2.5.egg is being added to sys.path import pkg_resources ............................................................................ ............................................................................ ............................................................................ ............................................................................ ............................................................................ ............................................................................ ............................................................................ ............................................................................ ..... test_parsers/test_rst/test_directives/test_include.py: totest['include'][11]; test_parser (DocutilsTestSupport.ParserTestCase) input: Testing bad charent includes: .. include:: test_parsers/test_rst/test_directives/include10.txt -: expected +: output <document source="test data"> <paragraph> Testing bad charent includes: <system_message level="3" line="1" source="test_parsers/test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid character code: 0xFFFFFFFFF - ValueError: unichr() arg not in range(0x110000) (wide Python build) + ValueError: code too large (long int too large to convert to int) <literal_block xml:space="preserve"> unicode:: 0xFFFFFFFFF <system_message level="2" line="1" source="test_parsers/test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Substitution definition "bad" empty or invalid. <literal_block xml:space="preserve"> .. |bad| unicode:: 0xFFFFFFFFF <section dupnames="hi" ids="hi"> <title> hi <block_quote> <paragraph> indent <system_message level="2" line="7" source="test_parsers/test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Block quote ends without a blank line; unexpected unindent. <paragraph> error <section dupnames="hi" ids="id1"> <title> hi <system_message backrefs="id1" level="1" line="10" source="test_parsers/test_rst/test_directives/include10.txt" type="INFO"> <paragraph> Duplicate implicit target name: "hi". F........................................................................... ............................................................. ====================================================================== FAIL: test_parsers/test_rst/test_directives/test_include.py: totest['include'][11]; test_parser (DocutilsTestSupport.ParserTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/robertanderson/Downloads/docutils/test/DocutilsTestSupport.py", line 449, in test_parser self.compare_output(self.input, output, self.expected) File "/Users/robertanderson/Downloads/docutils/test/DocutilsTestSupport.py", line 220, in compare_output raise error AssertionError: '''\ <document source="test data"> <paragraph> Testing bad charent includes: <system_message level="3" line="1" source="test_parsers/test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid character code: 0xFFFFFFFFF ValueError: code too large (long int too large to convert to int) <literal_block xml:space="preserve"> unicode:: 0xFFFFFFFFF <system_message level="2" line="1" source="test_parsers/test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Substitution definition "bad" empty or invalid. <literal_block xml:space="preserve"> .. |bad| unicode:: 0xFFFFFFFFF <section dupnames="hi" ids="hi"> <title> hi <block_quote> <paragraph> indent <system_message level="2" line="7" source="test_parsers/test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Block quote ends without a blank line; unexpected unindent. <paragraph> error <section dupnames="hi" ids="id1"> <title> hi <system_message backrefs="id1" level="1" line="10" source="test_parsers/test_rst/test_directives/include10.txt" type="INFO"> <paragraph> Duplicate implicit target name: "hi". ''' != '''\ <document source="test data"> <paragraph> Testing bad charent includes: <system_message level="3" line="1" source="test_parsers/test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid character code: 0xFFFFFFFFF ValueError: unichr() arg not in range(0x110000) (wide Python build) <literal_block xml:space="preserve"> unicode:: 0xFFFFFFFFF <system_message level="2" line="1" source="test_parsers/test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Substitution definition "bad" empty or invalid. <literal_block xml:space="preserve"> .. |bad| unicode:: 0xFFFFFFFFF <section dupnames="hi" ids="hi"> <title> hi <block_quote> <paragraph> indent <system_message level="2" line="7" source="test_parsers/test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Block quote ends without a blank line; unexpected unindent. <paragraph> error <section dupnames="hi" ids="id1"> <title> hi <system_message backrefs="id1" level="1" line="10" source="test_parsers/test_rst/test_directives/include10.txt" type="INFO"> <paragraph> Duplicate implicit target name: "hi". ''' ---------------------------------------------------------------------- Ran 1108 tests in 59.488s FAILED (failures=1) |
From: Guenter M. <mi...@us...> - 2009-11-16 07:42:38
|
Dear David, how should we procede with this false positive in the test suite? On 2009-11-13, Robert Anderson wrote: Thanks for reporting. The error below should not turn up with the 0.6 release, could it be that you have both, the 0.6 release and a daily snapshot or SVN repository download installed? > quicktest.py (Docutils 0.6 [release]) > Mac OS X 10.5.6 > Python 2.5 ... > UserWarning: Module docutils was already imported from > /Users/robertanderson/Downloads/docutils/docutils/__init__.py, but > /Library/Python/2.5/site-packages/docutils-0.6-py2.5.egg is being added to > sys.path The error itself is a false positive: * we test error reporting for the unicode directive in an included file. * the acutal error thrown by Python depends on the Python build, as Python support for "wide" Unicode characters is optional (see PEP: 261). > test_parsers/test_rst/test_directives/test_include.py: ... > .. include:: test_parsers/test_rst/test_directives/include10.txt ... > - ValueError: unichr() arg not in range(0x110000) (wide Python build) > + ValueError: code too large (long int too large to convert to int) This test is deactivated in release 0.6, as it test the known bug with source/line report in included files. The source/line report bug is fixed for directive errors, however it might be better not to test it with a unicode directive (due to the Python-build-dependend error). Günter |
From: David G. <dgo...@gm...> - 2009-11-16 14:35:27
|
2009/11/16 Guenter Milde <mi...@us...>: > how should we procede with this false positive in the test suite? The problem is that the Docutils error reporting often depends on the text generated by Python exceptions. And that text changes between versions of Python. There is a mechanism for dealing with differences in exceptions between versions of Python: generate a similar exception, extract the text, and interpolate that text into the test. See the last test in test/test_parsers/test_rst/test_directives/test_unicode.py for an example. We simply do the same thing here. It's a bit of a pain to handle these cases, but limited. We should handle such cases as required, in the same way they have been handled in the past. -- David > On 2009-11-13, Robert Anderson wrote: > > Thanks for reporting. > > The error below should not turn up with the 0.6 release, > could it be that you have both, the 0.6 release and a daily > snapshot or SVN repository download installed? > >> quicktest.py (Docutils 0.6 [release]) >> Mac OS X 10.5.6 >> Python 2.5 > > ... > >> UserWarning: Module docutils was already imported from >> /Users/robertanderson/Downloads/docutils/docutils/__init__.py, but >> /Library/Python/2.5/site-packages/docutils-0.6-py2.5.egg is being added to >> sys.path > > > The error itself is a false positive: > > * we test error reporting for the unicode directive in an included file. > > * the acutal error thrown by Python depends on the Python build, as > Python support for "wide" Unicode characters is optional (see PEP: 261). > >> test_parsers/test_rst/test_directives/test_include.py: > ... >> .. include:: test_parsers/test_rst/test_directives/include10.txt > ... > >> - ValueError: unichr() arg not in range(0x110000) (wide Python build) >> + ValueError: code too large (long int too large to convert to int) > > > This test is deactivated in release 0.6, as it test the known bug with > source/line report in included files. > > The source/line report bug is fixed for directive errors, however it > might be better not to test it with a unicode directive (due to the > Python-build-dependend error). > > Günter |
From: Guenter M. <mi...@us...> - 2009-11-16 20:23:42
|
On 2009-11-16, David Goodger wrote: > 2009/11/16 Guenter Milde <mi...@us...>: >> how should we procede with this false positive in the test suite? > The problem is that the Docutils error reporting often depends on the > text generated by Python exceptions. And that text changes between > versions of Python. In this case the text (and even the exception) varies between different builds of the same version, but the problem (and cure) are similar. > There is a mechanism for dealing with differences > in exceptions between versions of Python: generate a similar > exception, extract the text, and interpolate that text into the test. > See the last test in > test/test_parsers/test_rst/test_directives/test_unicode.py for an > example. We simply do the same thing here. Thanks for the pointer. > It's a bit of a pain to handle these cases, but limited. We should > handle such cases as required, in the same way they have been handled > in the past. However, the offending case in test_include.py tests not the unicode directive, but error reporting for problems in included files. * If we are going to replicate test cases for every possible reporter call, this should be done re-using the original test cases. Otherwise a lot of duplicate code needs to be maintained. * If we agree to test a representative subset, we can concentrate on less fragile test cases. I'd prefer the second way. The attached patch does this. Thanks, Günter Exec: svn 'diff' 2>&1 Dir: /home/milde/Code/Python/docutils-svn/docutils/test/test_parsers/test_rst/test_directives/ Index: include10.txt =================================================================== --- include10.txt (Revision 6188) +++ include10.txt (Arbeitskopie) @@ -1,4 +1,4 @@ -.. |bad| unicode:: 0xFFFFFFFFF +.. include:: <nonexistent> hi ----- Index: test_include.py =================================================================== --- test_include.py (Revision 6188) +++ test_include.py (Arbeitskopie) @@ -325,25 +325,20 @@ """ % utf_16_file_rel], # @@@ BUG with errors reported with incorrect "source" & "line": ["""\ -Testing bad charent includes: +Testing errors in included file: .. include:: %s """ % include10, """\ <document source="test data"> <paragraph> - Testing bad charent includes: - <system_message level="3" line="1" source="%s" type="ERROR"> + Testing errors in included file: + <system_message level="4" line="1" source="%s" type="SEVERE"> <paragraph> - Invalid character code: 0xFFFFFFFFF - ValueError: unichr() arg not in range(0x110000) (wide Python build) + Problems with "include" directive path: + IOError: [Errno 2] No such file or directory: '%s'. <literal_block xml:space="preserve"> - unicode:: 0xFFFFFFFFF - <system_message level="2" line="1" source="%s" type="WARNING"> - <paragraph> - Substitution definition "bad" empty or invalid. - <literal_block xml:space="preserve"> - .. |bad| unicode:: 0xFFFFFFFFF + .. include:: <nonexistent> <section dupnames="hi" ids="hi"> <title> hi @@ -361,7 +356,7 @@ <system_message backrefs="id1" level="1" line="10" source="%s" type="INFO"> <paragraph> Duplicate implicit target name: "hi". -""" % (include10rel, include10rel, include10rel, include10rel)], +""" % (include10rel, nonexistent_rel, include10rel, include10rel)], ["""\ Include file with whitespace in the path: |
From: David G. <dgo...@gm...> - 2009-11-17 02:47:18
|
2009/11/16 Guenter Milde <mi...@us...>: > On 2009-11-16, David Goodger wrote: >> 2009/11/16 Guenter Milde <mi...@us...>: >>> how should we procede with this false positive in the test suite? > >> The problem is that the Docutils error reporting often depends on the >> text generated by Python exceptions. And that text changes between >> versions of Python. > > In this case the text (and even the exception) varies between different > builds of the same version, but the problem (and cure) are similar. > >> There is a mechanism for dealing with differences >> in exceptions between versions of Python: generate a similar >> exception, extract the text, and interpolate that text into the test. >> See the last test in >> test/test_parsers/test_rst/test_directives/test_unicode.py for an >> example. We simply do the same thing here. > > Thanks for the pointer. > >> It's a bit of a pain to handle these cases, but limited. We should >> handle such cases as required, in the same way they have been handled >> in the past. > > However, the offending case in test_include.py tests not the unicode > directive, but error reporting for problems in included files. > > * If we are going to replicate test cases for every possible reporter > call, this should be done re-using the original test cases. Otherwise a > lot of duplicate code needs to be maintained. I don't understand. Please explain. > * If we agree to test a representative subset, we can concentrate on less > fragile test cases. The ideal is to test every possible case. That's not feasible, but we should test as much as possible. > I'd prefer the second way. The attached patch does this. The attached patch replaces one type of test with another. I don't see why we should do that. Unless we remove functionality, I don't see why we should ever remove a test. Even a test that's breaking. *Especially* if it's breaking. It should be fixed instead. > Exec: svn 'diff' 2>&1 > Dir: /home/milde/Code/Python/docutils-svn/docutils/test/test_parsers/test_rst/test_directives/ > > Index: include10.txt > =================================================================== > --- include10.txt (Revision 6188) > +++ include10.txt (Arbeitskopie) > @@ -1,4 +1,4 @@ > -.. |bad| unicode:: 0xFFFFFFFFF > +.. include:: <nonexistent> We already test for nonexistent files. An identical test already exists in the test suite. This just adds indirect testing of the same thing. Go ahead and *add* such a test if you like. But don't remove the "bad unicode" test. The original test may be there for a very good reason -- testing an edge case, or a tricky case, or functionality that was new at the time. -1 on the patch. -- David Goodger <http://python.net/~goodger> |
From: Guenter M. <mi...@us...> - 2009-11-17 08:40:55
|
On 2009-11-17, David Goodger wrote: > 2009/11/16 Guenter Milde <mi...@us...>: >> On 2009-11-16, David Goodger wrote: >>> 2009/11/16 Guenter Milde <mi...@us...>: ... >> +++ include10.txt (Arbeitskopie) >> -.. |bad| unicode:: 0xFFFFFFFFF >> +.. include:: <nonexistent> > We already test for nonexistent files. An identical test already exists > in the test suite. This [the patch] just adds indirect testing of the > same thing. This is true. However, the replaced test is a duplicate test too: An identical test already exists in test_unicode.py. It is repeated as indirect test in test_include.py to test the *source* and *line* reporting for included files. I argue that the replacement is more suited to test the feature "reporting problems in included files", as it does not need special casing for different Python builds. Hence it is easier to maintain and less error prone. > Unless we remove functionality, I don't see why we should ever remove > a test. We remove a *duplicate* error test and replace it with a different duplicate test to achieve a more robust test case for "reporting problems in included files". > Even a test that's breaking. *Especially* if it's breaking. It > should be fixed instead. My argument is, that the feature tested in test_include.py (proper reporting of line and source) is not broken. In the case of the "bad unicode" test, to ensure proper working, you not only had to test with Python versions 2.3 ... 2.7, but also with both *narrow* and *wide* builds of these versions, i.e. install and maintain 10 different Python installations and run the test suite 10 times. As the test case had been hidden in a comment because it tested a "known bug", it did not get fixed together with the identical direct case in test_unicode.py. > The ideal is to test every possible case. That's not feasible, but we > should test as much as possible. Do you really strife for both, direct and indirect testing of the same thing for *all* tests? This becomes a maintenance nightmare. Instead, I propose to repeat only a significant sample of tests in the indirect tests. >> * If we agree to test a representative subset, we can concentrate on less >> fragile test cases ... and keep the test suite simpler and maintainable. Günter |
From: David G. <go...@py...> - 2009-11-17 14:12:50
|
My argument is simply this: never remove tests. Ever. They're there for a reason. It's easier to fix the test than to argue the merits. On Tue, Nov 17, 2009 at 03:40, Guenter Milde <mi...@us...> wrote: > On 2009-11-17, David Goodger wrote: >> Even a test that's breaking. *Especially* if it's breaking. It >> should be fixed instead. > > My argument is, that the feature tested in test_include.py (proper > reporting of line and source) is not broken. Doesn't matter. The test stays. > In the case of the "bad unicode" test, to ensure proper working, you not > only had to test with Python versions 2.3 ... 2.7, but also with both > *narrow* and *wide* builds of these versions, i.e. install and maintain > 10 different Python installations and run the test suite 10 times. That's ridiculous. I call FUD. > As the test case had been hidden in a comment because it tested a "known > bug", it did not get fixed together with the identical direct case in > test_unicode.py. That argues very strongly for fixing the bug and keeping the test. With test-driven development (TDD), when you find a bug, you first write a test that exercises/catches the bug. Then you fix the code to remove the bug. You do not remove the test though -- it remains to catch the bug if it ever recurs. >> The ideal is to test every possible case. That's not feasible, but we >> should test as much as possible. > > Do you really strife for both, direct and indirect testing of the same > thing for *all* tests? This becomes a maintenance nightmare. Of course not. We strive for 100% code coverage, and a complete test suite. What we do not do is remove tests due to inconvenience. > Instead, I propose to repeat only a significant sample of tests in the > indirect tests. We implement tests as necessary. We do not remove tests arbitrarily. >>> * If we agree to test a representative subset, we can concentrate on less >>> fragile test cases > > ... and keep the test suite simpler and maintainable. The test suite is easily maintainable. There are over 1000 unit tests. How many should we have? I disagree with your entire philosophy here. You are under no obligation to fix this one breaking test. Somebody else will. Just don't remove it. -- David Goodger <http://python.net/~goodger> |
From: Robert S. <grs...@gm...> - 2009-12-29 15:45:33
|
Report notes: testing on EeeBuntu 3 (Debian) on updated Asus EeePc 900A on which most language tool suites compile; current include Gnu Smalltalk (built on this device), py 2.5 2.6 Tcl 8.4 8.5 Ruby 1.8 1.9 with recent gcc builds of Io, ObjectIcon and other dev tools ) Zope, Plone, Django not installed on this bootable 16 GB SDHC [...] ============== ====== A simple table with no bottom border F............ ====================================================================== FAIL: test_parsers/test_rst/test_directives/test_include.py: totest['include'][11]; test_parser (DocutilsTestSupport.ParserTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/robert/docutils/test/DocutilsTestSupport.py", line 449, in test_parser self.compare_output(self.input, output, self.expected) File "/home/robert/docutils/test/DocutilsTestSupport.py", line 220, in compare_output raise error AssertionError: '''\ <document source="test data"> |
From: Simon K. <shr...@gm...> - 2010-02-14 02:08:03
|
Hi I've just installed docutils on Mac OS X 10.5.8 with the built-in Python 2.5.1, and got a few errors. The readme said to post details here, so here you are: I ran ``sudo python setup.py install`` with no problems. The docutils version is:: $ ./quicktest.py --version quicktest.py (Docutils 0.7 [snapshot 2010-02-13, r6225]) When I ran:: $ ./buildhtml.py ../ I got many (WARNING/2)'s and (ERROR/3)'s and it died with:: ../test/functional/input/standalone_rst_newlatex.txt:1020: (SEVERE/4) Title level inconsistent: Vertical alignment of inline images ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Exiting due to level-4 (SEVERE) system message. There was an error when running the test suite:: $ ./alltests.py Testing Docutils 0.7 [snapshot 2010-02-13, r6225] with Python 2.5.1 on 2010-02-14 at 14:40:22 Working directory: /Users/simon/Downloads/docutils/test Docutils package: /Users/simon/Downloads/docutils/docutils ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ test_parsers/test_rst/test_directives/test_include.py: totest['include'][11]; test_parser (DocutilsTestSupport.ParserTestCase) input: Testing errors in included file: .. include:: test_parsers/test_rst/test_directives/include10.txt -: expected +: output <document source="test data"> <paragraph> Testing errors in included file: <system_message level="3" line="1" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid character code: 0xFFFFFFFFF - ValueError: unichr() arg not in range(0x110000) (wide Python build) + ValueError: code too large (long int too large to convert to int) <literal_block xml:space="preserve"> unicode:: 0xFFFFFFFFF <system_message level="2" line="1" source="test_parsers/ test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Substitution definition "bad" empty or invalid. <literal_block xml:space="preserve"> .. |bad| unicode:: 0xFFFFFFFFF <section dupnames="hi" ids="hi"> <title> hi <block_quote> <paragraph> indent <system_message level="2" line="7" source="test_parsers/ test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Block quote ends without a blank line; unexpected unindent. <paragraph> error <section dupnames="hi" ids="id1"> <title> hi <system_message backrefs="id1" level="1" line="10" source="test_parsers/test_rst/test_directives/include10.txt" type="INFO"> <paragraph> Duplicate implicit target name: "hi". <system_message level="4" line="12" source="test_parsers/test_rst/test_directives/include10.txt" type="SEVERE"> <paragraph> Problems with "include" directive path: IOError: [Errno 2] No such file or directory: '../docutils/parsers/rst/include/nonexistent'. <literal_block xml:space="preserve"> .. include:: <nonexistent> <system_message level="3" line="14" source="test_parsers/test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "note" directive; none found. <literal_block xml:space="preserve"> .. note:: <system_message level="3" line="16" source="test_parsers/test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "admonition" directive; none found. <literal_block xml:space="preserve"> .. admonition:: without title <system_message level="3" line="19" source="test_parsers/test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "epigraph" directive; none found. <literal_block xml:space="preserve"> .. epigraph:: <system_message level="3" line="21" source="test_parsers/test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "highlights" directive; none found. <literal_block xml:space="preserve"> .. highlights:: <system_message level="3" line="23" source="test_parsers/test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "pull-quote" directive; none found. <literal_block xml:space="preserve"> .. pull-quote:: <system_message level="3" line="25" source="test_parsers/test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid context: the "date" directive can only be used within a substitution definition. <literal_block xml:space="preserve"> .. date:: <paragraph> not a definition list: <system_message level="3" line="29" source="test_parsers/test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Unexpected indentation. <block_quote> <paragraph> as a term may only be one line long. <paragraph> A sample of problems still reported with wrong line- nr and source <comment xml:space="preserve"> .. admonition:: without title and content following a blank line :unknown-role:`role` and *unbalanced `inline **markup .. unknown:: directive :PEP:`-1` A literal block:: with no blank line above. :: > A literal block. $ with inconsistent quoting. section underline too short ----- ============== ====== A simple table cell 2 ============== ====== No blank line after table. ============== ====== A simple table with no bottom border F ........................................................................................................................................ ====================================================================== FAIL: test_parsers/test_rst/test_directives/test_include.py: totest['include'][11]; test_parser (DocutilsTestSupport.ParserTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/simon/Downloads/docutils/test/ DocutilsTestSupport.py", line 449, in test_parser self.compare_output(self.input, output, self.expected) File "/Users/simon/Downloads/docutils/test/ DocutilsTestSupport.py", line 220, in compare_output raise error AssertionError: '''\ <document source="test data"> <paragraph> Testing errors in included file: <system_message level="3" line="1" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid character code: 0xFFFFFFFFF ValueError: code too large (long int too large to convert to int) <literal_block xml:space="preserve"> unicode:: 0xFFFFFFFFF <system_message level="2" line="1" source="test_parsers/ test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Substitution definition "bad" empty or invalid. <literal_block xml:space="preserve"> .. |bad| unicode:: 0xFFFFFFFFF <section dupnames="hi" ids="hi"> <title> hi <block_quote> <paragraph> indent <system_message level="2" line="7" source="test_parsers/ test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Block quote ends without a blank line; unexpected unindent. <paragraph> error <section dupnames="hi" ids="id1"> <title> hi <system_message backrefs="id1" level="1" line="10" source="test_parsers/test_rst/test_directives/include10.txt" type="INFO"> <paragraph> Duplicate implicit target name: "hi". <system_message level="4" line="12" source="test_parsers/ test_rst/test_directives/include10.txt" type="SEVERE"> <paragraph> Problems with "include" directive path: IOError: [Errno 2] No such file or directory: \'../docutils/parsers/rst/include/nonexistent\'. <literal_block xml:space="preserve"> .. include:: <nonexistent> <system_message level="3" line="14" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "note" directive; none found. <literal_block xml:space="preserve"> .. note:: <system_message level="3" line="16" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "admonition" directive; none found. <literal_block xml:space="preserve"> .. admonition:: without title <system_message level="3" line="19" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "epigraph" directive; none found. <literal_block xml:space="preserve"> .. epigraph:: <system_message level="3" line="21" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "highlights" directive; none found. <literal_block xml:space="preserve"> .. highlights:: <system_message level="3" line="23" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "pull-quote" directive; none found. <literal_block xml:space="preserve"> .. pull-quote:: <system_message level="3" line="25" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid context: the "date" directive can only be used within a substitution definition. <literal_block xml:space="preserve"> .. date:: <paragraph> not a definition list: <system_message level="3" line="29" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Unexpected indentation. <block_quote> <paragraph> as a term may only be one line long. <paragraph> A sample of problems still reported with wrong line- nr and source <comment xml:space="preserve"> .. admonition:: \n\ without title and content following a blank line \n\ :unknown-role:`role` and *unbalanced `inline **markup \n\ .. unknown:: directive \n\ :PEP:`-1` \n\ A literal block:: with no blank line above. \n\ :: \n\ > A literal block. $ with inconsistent quoting. \n\ section underline too short ----- \n\ ============== ====== A simple table cell 2 ============== ====== No blank line after table. \n\ ============== ====== A simple table with no bottom border ''' != '''\ <document source="test data"> <paragraph> Testing errors in included file: <system_message level="3" line="1" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid character code: 0xFFFFFFFFF ValueError: unichr() arg not in range(0x110000) (wide Python build) <literal_block xml:space="preserve"> unicode:: 0xFFFFFFFFF <system_message level="2" line="1" source="test_parsers/ test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Substitution definition "bad" empty or invalid. <literal_block xml:space="preserve"> .. |bad| unicode:: 0xFFFFFFFFF <section dupnames="hi" ids="hi"> <title> hi <block_quote> <paragraph> indent <system_message level="2" line="7" source="test_parsers/ test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Block quote ends without a blank line; unexpected unindent. <paragraph> error <section dupnames="hi" ids="id1"> <title> hi <system_message backrefs="id1" level="1" line="10" source="test_parsers/test_rst/test_directives/include10.txt" type="INFO"> <paragraph> Duplicate implicit target name: "hi". <system_message level="4" line="12" source="test_parsers/ test_rst/test_directives/include10.txt" type="SEVERE"> <paragraph> Problems with "include" directive path: IOError: [Errno 2] No such file or directory: \'../docutils/parsers/rst/include/nonexistent\'. <literal_block xml:space="preserve"> .. include:: <nonexistent> <system_message level="3" line="14" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "note" directive; none found. <literal_block xml:space="preserve"> .. note:: <system_message level="3" line="16" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "admonition" directive; none found. <literal_block xml:space="preserve"> .. admonition:: without title <system_message level="3" line="19" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "epigraph" directive; none found. <literal_block xml:space="preserve"> .. epigraph:: <system_message level="3" line="21" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "highlights" directive; none found. <literal_block xml:space="preserve"> .. highlights:: <system_message level="3" line="23" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "pull-quote" directive; none found. <literal_block xml:space="preserve"> .. pull-quote:: <system_message level="3" line="25" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid context: the "date" directive can only be used within a substitution definition. <literal_block xml:space="preserve"> .. date:: <paragraph> not a definition list: <system_message level="3" line="29" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Unexpected indentation. <block_quote> <paragraph> as a term may only be one line long. <paragraph> A sample of problems still reported with wrong line- nr and source <comment xml:space="preserve"> .. admonition:: \n\ without title and content following a blank line \n\ :unknown-role:`role` and *unbalanced `inline **markup \n\ .. unknown:: directive \n\ :PEP:`-1` \n\ A literal block:: with no blank line above. \n\ :: \n\ > A literal block. $ with inconsistent quoting. \n\ section underline too short ----- \n\ ============== ====== A simple table cell 2 ============== ====== No blank line after table. \n\ ============== ====== A simple table with no bottom border ''' ---------------------------------------------------------------------- Ran 1109 tests in 10.148s FAILED (failures=1) Elapsed time: 10.969 seconds <unittest._TextTestResult run=1109 errors=0 failures=1> I hope this is of some use to you. Simon. |
From: Guenter M. <mi...@us...> - 2010-02-21 07:06:07
|
On 2010-02-14, Simon Knopp wrote: > Hi > I've just installed docutils on Mac OS X 10.5.8 with the built-in > Python 2.5.1, and got a few errors. The readme said to post details > here, so here you are: > I ran ``sudo python setup.py install`` with no problems. > The docutils version is:: > $ ./quicktest.py --version > quicktest.py (Docutils 0.7 [snapshot 2010-02-13, r6225]) > When I ran:: > $ ./buildhtml.py ../ > I got many (WARNING/2)'s and (ERROR/3)'s and it died with:: > ../test/functional/input/standalone_rst_newlatex.txt:1020: > (SEVERE/4) Title level inconsistent: It looks like you tried to build html versions out of the test data. The files in the test suite contain a lot of intentional errors to test the error reporting. What happens if you run buildhtml.py just on the docs/ sub-directory? Günter |
From: Pierre V. <vi...@gl...> - 2010-03-03 10:36:59
|
$ uname -a Darwin ts-186.rmkipqxaas10.globetrotter.net 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/ RELEASE_PPC Power Macintosh powerpc $ ./test/alltests.py Testing Docutils 0.7 [snapshot 2010-03-02, r6254] with Python 2.5.2 on 2010-03-03 at 02:05:55 Working directory: /Users/vinp/Documents/informatique/python/docutils/ build/docutils/test Docutils package: /Users/vinp/Documents/informatique/python/docutils/ build/docutils/docutils ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ ........................................................................ .................................... test_parsers/test_rst/test_directives/test_include.py: totest ['include'][11]; test_parser (DocutilsTestSupport.ParserTestCase) input: Testing errors in included file: .. include:: test_parsers/test_rst/test_directives/include10.txt -: expected +: output <document source="test data"> <paragraph> Testing errors in included file: <system_message level="3" line="1" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid character code: 0xFFFFFFFFF - ValueError: unichr() arg not in range(0x110000) (wide Python build) + ValueError: code too large (long int too large to convert to int) <literal_block xml:space="preserve"> unicode:: 0xFFFFFFFFF <system_message level="2" line="1" source="test_parsers/ test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Substitution definition "bad" empty or invalid. <literal_block xml:space="preserve"> .. |bad| unicode:: 0xFFFFFFFFF <section dupnames="hi" ids="hi"> <title> hi <block_quote> <paragraph> indent <system_message level="2" line="7" source="test_parsers/ test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Block quote ends without a blank line; unexpected unindent. <paragraph> error <section dupnames="hi" ids="id1"> <title> hi <system_message backrefs="id1" level="1" line="10" source="test_parsers/test_rst/test_directives/include10.txt" type="INFO"> <paragraph> Duplicate implicit target name: "hi". <system_message level="4" line="12" source="test_parsers/ test_rst/test_directives/include10.txt" type="SEVERE"> <paragraph> Problems with "include" directive path: IOError: [Errno 2] No such file or directory: '../ docutils/parsers/rst/include/nonexistent'. <literal_block xml:space="preserve"> .. include:: <nonexistent> <system_message level="3" line="14" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "note" directive; none found. <literal_block xml:space="preserve"> .. note:: <system_message level="3" line="16" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "admonition" directive; none found. <literal_block xml:space="preserve"> .. admonition:: without title <system_message level="3" line="19" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "epigraph" directive; none found. <literal_block xml:space="preserve"> .. epigraph:: <system_message level="3" line="21" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "highlights" directive; none found. <literal_block xml:space="preserve"> .. highlights:: <system_message level="3" line="23" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "pull-quote" directive; none found. <literal_block xml:space="preserve"> .. pull-quote:: <system_message level="3" line="25" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid context: the "date" directive can only be used within a substitution definition. <literal_block xml:space="preserve"> .. date:: <paragraph> not a definition list: <system_message level="3" line="29" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Unexpected indentation. <block_quote> <paragraph> as a term may only be one line long. <paragraph> A sample of problems still reported with wrong line-nr and source <comment xml:space="preserve"> .. admonition:: without title and content following a blank line :unknown-role:`role` and *unbalanced `inline **markup .. unknown:: directive :PEP:`-1` A literal block:: with no blank line above. :: > A literal block. $ with inconsistent quoting. section underline too short ----- ============== ====== A simple table cell 2 ============== ====== No blank line after table. ============== ====== A simple table with no bottom border F....................................................................... ................................................................. ====================================================================== FAIL: test_parsers/test_rst/test_directives/test_include.py: totest ['include'][11]; test_parser (DocutilsTestSupport.ParserTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/vinp/Documents/informatique/python/docutils/build/ docutils/test/DocutilsTestSupport.py", line 449, in test_parser self.compare_output(self.input, output, self.expected) File "/Users/vinp/Documents/informatique/python/docutils/build/ docutils/test/DocutilsTestSupport.py", line 220, in compare_output raise error AssertionError: '''\ <document source="test data"> <paragraph> Testing errors in included file: <system_message level="3" line="1" source="test_parsers/test_rst/ test_directives/include10.txt" type="ERROR"> <paragraph> Invalid character code: 0xFFFFFFFFF ValueError: code too large (long int too large to convert to int) <literal_block xml:space="preserve"> unicode:: 0xFFFFFFFFF <system_message level="2" line="1" source="test_parsers/test_rst/ test_directives/include10.txt" type="WARNING"> <paragraph> Substitution definition "bad" empty or invalid. <literal_block xml:space="preserve"> .. |bad| unicode:: 0xFFFFFFFFF <section dupnames="hi" ids="hi"> <title> hi <block_quote> <paragraph> indent <system_message level="2" line="7" source="test_parsers/ test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Block quote ends without a blank line; unexpected unindent. <paragraph> error <section dupnames="hi" ids="id1"> <title> hi <system_message backrefs="id1" level="1" line="10" source="test_parsers/test_rst/test_directives/include10.txt" type="INFO"> <paragraph> Duplicate implicit target name: "hi". <system_message level="4" line="12" source="test_parsers/ test_rst/test_directives/include10.txt" type="SEVERE"> <paragraph> Problems with "include" directive path: IOError: [Errno 2] No such file or directory: \'../ docutils/parsers/rst/include/nonexistent\'. <literal_block xml:space="preserve"> .. include:: <nonexistent> <system_message level="3" line="14" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "note" directive; none found. <literal_block xml:space="preserve"> .. note:: <system_message level="3" line="16" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "admonition" directive; none found. <literal_block xml:space="preserve"> .. admonition:: without title <system_message level="3" line="19" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "epigraph" directive; none found. <literal_block xml:space="preserve"> .. epigraph:: <system_message level="3" line="21" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "highlights" directive; none found. <literal_block xml:space="preserve"> .. highlights:: <system_message level="3" line="23" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "pull-quote" directive; none found. <literal_block xml:space="preserve"> .. pull-quote:: <system_message level="3" line="25" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid context: the "date" directive can only be used within a substitution definition. <literal_block xml:space="preserve"> .. date:: <paragraph> not a definition list: <system_message level="3" line="29" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Unexpected indentation. <block_quote> <paragraph> as a term may only be one line long. <paragraph> A sample of problems still reported with wrong line-nr and source <comment xml:space="preserve"> .. admonition:: \n\ without title and content following a blank line \n\ :unknown-role:`role` and *unbalanced `inline **markup \n\ .. unknown:: directive \n\ :PEP:`-1` \n\ A literal block:: with no blank line above. \n\ :: \n\ > A literal block. $ with inconsistent quoting. \n\ section underline too short ----- \n\ ============== ====== A simple table cell 2 ============== ====== No blank line after table. \n\ ============== ====== A simple table with no bottom border ''' != '''\ <document source="test data"> <paragraph> Testing errors in included file: <system_message level="3" line="1" source="test_parsers/test_rst/ test_directives/include10.txt" type="ERROR"> <paragraph> Invalid character code: 0xFFFFFFFFF ValueError: unichr() arg not in range(0x110000) (wide Python build) <literal_block xml:space="preserve"> unicode:: 0xFFFFFFFFF <system_message level="2" line="1" source="test_parsers/test_rst/ test_directives/include10.txt" type="WARNING"> <paragraph> Substitution definition "bad" empty or invalid. <literal_block xml:space="preserve"> .. |bad| unicode:: 0xFFFFFFFFF <section dupnames="hi" ids="hi"> <title> hi <block_quote> <paragraph> indent <system_message level="2" line="7" source="test_parsers/ test_rst/test_directives/include10.txt" type="WARNING"> <paragraph> Block quote ends without a blank line; unexpected unindent. <paragraph> error <section dupnames="hi" ids="id1"> <title> hi <system_message backrefs="id1" level="1" line="10" source="test_parsers/test_rst/test_directives/include10.txt" type="INFO"> <paragraph> Duplicate implicit target name: "hi". <system_message level="4" line="12" source="test_parsers/ test_rst/test_directives/include10.txt" type="SEVERE"> <paragraph> Problems with "include" directive path: IOError: [Errno 2] No such file or directory: \'../ docutils/parsers/rst/include/nonexistent\'. <literal_block xml:space="preserve"> .. include:: <nonexistent> <system_message level="3" line="14" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "note" directive; none found. <literal_block xml:space="preserve"> .. note:: <system_message level="3" line="16" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "admonition" directive; none found. <literal_block xml:space="preserve"> .. admonition:: without title <system_message level="3" line="19" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "epigraph" directive; none found. <literal_block xml:space="preserve"> .. epigraph:: <system_message level="3" line="21" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "highlights" directive; none found. <literal_block xml:space="preserve"> .. highlights:: <system_message level="3" line="23" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Content block expected for the "pull-quote" directive; none found. <literal_block xml:space="preserve"> .. pull-quote:: <system_message level="3" line="25" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Invalid context: the "date" directive can only be used within a substitution definition. <literal_block xml:space="preserve"> .. date:: <paragraph> not a definition list: <system_message level="3" line="29" source="test_parsers/ test_rst/test_directives/include10.txt" type="ERROR"> <paragraph> Unexpected indentation. <block_quote> <paragraph> as a term may only be one line long. <paragraph> A sample of problems still reported with wrong line-nr and source <comment xml:space="preserve"> .. admonition:: \n\ without title and content following a blank line \n\ :unknown-role:`role` and *unbalanced `inline **markup \n\ .. unknown:: directive \n\ :PEP:`-1` \n\ A literal block:: with no blank line above. \n\ :: \n\ > A literal block. $ with inconsistent quoting. \n\ section underline too short ----- \n\ ============== ====== A simple table cell 2 ============== ====== No blank line after table. \n\ ============== ====== A simple table with no bottom border ''' ---------------------------------------------------------------------- Ran 1109 tests in 74.805s FAILED (failures=1) Elapsed time: 86.261 seconds <unittest._TextTestResult run=1109 errors=0 failures=1> |
From: Kirill S. <tn...@0x...> - 2011-04-08 09:29:36
|
Hi. 1. While running test/alltests.py from svn revision 7001 I get these errors:: % ./alltests.py Testing Docutils 0.8 [repository] with Python 2.6.6 on 2011-04-08 at 11:47:57 Working directory: /home/staff/tn/hz/docutils/docutils/test Docutils package: /home/staff/tn/hz/docutils/docutils/docutils ..<a lot of dots>..Traceback (most recent call last): File "/home/staff/tn/hz/docutils/docutils/tools/rst2pseudoxml.py", line 17, in <module> from docutils.core import publish_cmdline, default_description ImportError: No module named docutils.core E..<dots>..paperconf: not found .paperconf: not found .paperconf: not found ..<dots>.. ====================================================================== ERROR: test_argv_decoding (test_command_line.CommandLineEncodingTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/staff/tn/hz/docutils/docutils/test/test_command_line.py", line 51, in test_argv_decoding self.assertEqual(output[0].decode('utf8').strip(), testoutput) IndexError: list index out of range ---------------------------------------------------------------------- Ran 1103 tests in 7.833s FAILED (errors=1) Elapsed time: 8.172 seconds Versions:: % uname -sr FreeBSD 8.1-STABLE % python -V Python 2.6.6 % svn info Path: . URL: http://svn.berlios.de/svnroot/repos/docutils/trunk/docutils ... Revision: 7001 ... This is because docutils is not in default python search path, so when test_command_line.CommandLineEncodingTests.test_argv_decoding runs tools/rst2pseudoxml.py it produces ImportError. So this can be fixed with something like this:: % svn diff Index: test/DocutilsTestSupport.py =================================================================== --- test/DocutilsTestSupport.py (revision 7001) +++ test/DocutilsTestSupport.py (working copy) @@ -53,6 +53,8 @@ sys.path.insert(0, os.path.normpath(os.path.join(testroot, '..'))) sys.path.insert(0, testroot) sys.path.append(os.path.normpath(os.path.join(testroot, '..', 'extras'))) +pypath = sys.path[:2] + [os.environ.get("PYTHONPATH", None), sys.path[-1]] +os.environ["PYTHONPATH"] = ":".join(filter(None, pypath)) try: import difflib 2. README.txt states that Python 2.5 is still supported, but docutils/writers/latex2e/__init__.py uses py3k-style str.format. This, probably, should be changed to '%'-formatting:: Index: docutils/writers/latex2e/__init__.py =================================================================== --- docutils/writers/latex2e/__init__.py (revision 7001) +++ docutils/writers/latex2e/__init__.py (working copy) @@ -829,7 +829,7 @@ mc_width = sum(width for width in (self._col_width[start + co - 1] for co in range (len_))) - return '{0:.2f}\\DUtablewidth'.format(mc_width) + return '%.2f\\DUtablewidth' % mc_width def get_caption(self): if not self.caption: -- Kirill Spitsin |
From: Guenter M. <mi...@us...> - 2011-04-08 20:28:16
|
On 2011-04-08, Kirill Spitsin wrote: ... > ====================================================================== > ERROR: test_argv_decoding (test_command_line.CommandLineEncodingTests) ... > This is because docutils is not in default python search path, so when > test_command_line.CommandLineEncodingTests.test_argv_decoding runs > tools/rst2pseudoxml.py it produces ImportError. Thanks for reporting and pointing to the problem (not seen here, as I have docutils in the PYTHONPATH). > So this can be fixed with something like this:: ... I used a less "invasive" fix (not changing the environment, instead using a special-purpose ``mini_frontend.py`` that "fixes" sys.path before importing in the test dir). Could you please test the new version? > 2. > README.txt states that Python 2.5 is still supported, but > docutils/writers/latex2e/__init__.py uses py3k-style str.format. > This, probably, should be changed to '%'-formatting Actually, support goes back to 2.3 (although I can only test with >= 2.4) and indeed, testing with 2.4 failed with AttributeError: 'str' object has no attribute 'format' so I changed this according to you patch and this solved the problem. Thanks, Günter |
From: Kirill S. <tn...@0x...> - 2011-04-09 16:14:57
|
On Fri, Apr 08, 2011 at 08:27:47PM +0000, Guenter Milde wrote: > ... > > Could you please test the new version? Still failed: ``./extras`` should be also added to sys.path: Index: test/mini_frontend.py =================================================================== --- test/mini_frontend.py (revision 7004) +++ test/mini_frontend.py (working copy) @@ -14,6 +14,7 @@ import sys, os testroot = os.path.abspath(os.path.dirname(__file__) or os.curdir) sys.path.insert(0, os.path.normpath(os.path.join(testroot, '..'))) +sys.path.append(os.path.normpath(os.path.join(testroot, '..', 'extras'))) from docutils.core import publish_cmdline And, maybe, it is better to run mini_frontend.py with same python interpreter? So one may run: % python2.5 test/alltests.py; python2.6 test/alltests.py; python2.7 test/alltests.py e.g.: Index: test/test_command_line.py =================================================================== --- test/test_command_line.py (revision 7004) +++ test/test_command_line.py (working copy) @@ -40,8 +40,8 @@ # locale.getpreferredencoding()) # so instead, we check if a command line with non-ASCII char works - cmd_str = (u'python %s/mini_frontend.py --title=Dornröschen' % - normpath(dirname(__file__) + '')) + cmd_str = (u'%s %s/mini_frontend.py --title=Dornröschen' % + (sys.executable, normpath(dirname(__file__) + ''))) p = subprocess.Popen([cmd_str.encode(argv_encoding)], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) p.stdin.close() -- Kirill Spitsin |
From: Mike G. <mik...@gm...> - 2011-07-06 17:55:19
|
Here is the result of the test: C:\Download\docutils\tools>cd ..\test C:\Download\docutils\test>python alltests.py Testing Docutils 0.8 [snapshot 2011-07-03, r7069] with Python 2.7.1 on 2011-07- 06 at 18:45:58 Working directory: C:\Download\docutils\test Docutils package: C:\Download\docutils\docutils F............................................................................... ........................................ ................................................................................ ........................................ ................................................................................ ........................................ ................................................................................ ........................................ ................................................................................ ........................................ ................................................................................ ........................................ ................................................................................ ........................................ ................................................................................ ........................................ ................................................................................ ............................... ====================================================================== FAIL: test_sys_argv_decoding (test_command_line.CommandLineEncodingTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "C:\Download\docutils\test\test_command_line.py", line 30, in test_sys_argv_decoding self.assertEqual(publisher.settings.title, u'Dornr├Âschen') AssertionError: u'Dornr\xf7schen' != u'Dornr\xf6schen' - Dornr\xf7schen ? ^ + Dornr\xf6schen ? ^ ---------------------------------------------------------------------- Ran 1143 tests in 19.732s FAILED (failures=1) Elapsed time: 23.921 seconds C:\Download\docutils\test> |
From: Guenter M. <mi...@us...> - 2011-07-06 19:25:28
|
On 2011-07-06, Mike Gleen wrote: > Here is the result of the test: Thanks for reporting! ... >====================================================================== > FAIL: test_sys_argv_decoding (test_command_line.CommandLineEncodingTests) > ---------------------------------------------------------------------- > Traceback (most recent call last): > File "C:\Download\docutils\test\test_command_line.py", line 30, in > test_sys_argv_decoding > self.assertEqual(publisher.settings.title, u'Dornr├Âschen') > AssertionError: u'Dornr\xf7schen' != u'Dornr\xf6schen' > - Dornr\xf7schen > ? ^ > + Dornr\xf6schen > ? ^ To find out, whether this points to a real problem or is a false positive, can you check the output of converting an empty file with :: rst2html.py --title=Dornröschen test.txt test.html ? If it goes wrong as the test indicated, the title should have a Character '÷' (247, 0xF7) DIVISION SIGN in place of the ö-Umlaut Character 'ö' (246, 0xF6) LATIN SMALL LETTER O WITH DIAERESIS Also, what is your locale and encoding? Thanks, Günter |
From: Bill T. <bil...@tq...> - 2011-08-31 20:25:20
|
Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. I:\bin\python\docutils>cd test I:\bin\python\docutils\test>alltests.py Testing Docutils 0.9 [snapshot 2011-08-30, r7116] with Python 2.7.2 on 2011-08-31 at 15:08:00 Working directory: I:\bin\python\docutils\test Docutils package: I:\bin\python\docutils\docutils... ====================================================================== FAIL: test_sys_argv_decoding (test_command_line.CommandLineEncodingTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "I:\bin\python\docutils\test\test_command_line.py", line 35, in test_sys_argv_decoding self.assertEqual(publisher.settings.title, u'Dornr├╢schen') AssertionError: u'Dornr\xf7schen' != u'Dornr\xf6schen' - Dornr\xf7schen ? ^ + Dornr\xf6schen ? ^ ---------------------------------------------------------------------- Ran 1145 tests in 57.609s FAILED (failures=1) Elapsed time: 82.155 seconds I:\bin\python\docutils\test> |
From: Guenter M. <mi...@us...> - 2011-09-01 08:23:54
|
On 2011-08-31, Bill Thayer wrote: Dear Bill, thanks for your test report. The test passes here (Linux with locale ('de_DE', 'UTF8')). Unfortunately, I cannot try with > Microsoft Windows XP The test failure > AssertionError: u'Dornr\xf7schen' != u'Dornr\xf6schen' might indicate a bug in Docutils or it could be a false positive. Could you start rst2html.py from the command line (DOS prompt) with the option --title=Dornröschen and see if the title is correctly set Dornröschen with Character 'ö' (246, 0xF6) LATIN SMALL LETTER O WITH DIAERESIS or becomes Dornr÷schen with Character '÷' (247, 0xF7) DIVISION SIGN as indicated by the test. Also I might need to know the "locale" setting. What is the result if you open a DOS box and input: python and on the Python prompt import locale locale.getdefaultlocale() ? Thanks, Günter |
From: Thayer, B. <bil...@tq...> - 2011-08-31 20:33:38
|
The README file said to mail you any errors or failed tests. I tried the web interface but it would only take 80 chars and I thought you might not get all the info needed. Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. I:\bin\python>cd doc* I:\bin\python\docutils>ls BUGS.txt HISTORY.txt RELEASE-NOTES.txt docutils licenses test COPYING.txt MANIFEST.in THANKS.txt extras setup.cfg tools FAQ.txt README.txt docs install.py setup.py I:\bin\python\docutils>install.py This is a quick & dirty installation shortcut. It is equivalent to the command:: python setup.py install However, the shortcut lacks error checking and command-line option processing. If you need any kind of customization or help, please use one of:: python setup.py install --help python setup.py --help I:\bin\python\docutils>ls BUGS.txt MANIFEST.in build install.py setup.pyc COPYING.txt README.txt docs licenses test FAQ.txt RELEASE-NOTES.txt docutils setup.cfg tools HISTORY.txt THANKS.txt extras setup.py I:\bin\python\docutils>cd test I:\bin\python\docutils\test>alltests.py Testing Docutils 0.9 [snapshot 2011-08-30, r7116] with Python 2.7.2 on 2011-08-31 at 15:08:00 Working directory: I:\bin\python\docutils\test Docutils package: I:\bin\python\docutils\docutils ................................................................................................................................................................ ...............................................................................................F................................................................ ................................................................................................................................................................ ................................................................................................................................................................ ................................................................................................................................................................ ................................................................................................................................................................ ................................................................................................................................................................ ......................... ====================================================================== FAIL: test_sys_argv_decoding (test_command_line.CommandLineEncodingTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "I:\bin\python\docutils\test\test_command_line.py", line 35, in test_sys_argv_decoding self.assertEqual(publisher.settings.title, u'Dornr├╢schen') AssertionError: u'Dornr\xf7schen' != u'Dornr\xf6schen' - Dornr\xf7schen ? ^ + Dornr\xf6schen ? ^ ---------------------------------------------------------------------- Ran 1145 tests in 57.609s FAILED (failures=1) Elapsed time: 82.155 seconds I:\bin\python\docutils\test> |
From: Dan G. <da...@gr...> - 2011-09-13 15:47:44
Attachments:
test_results
|
Hi, System config: dan@voldemort:~/docutils$ uname -a && ./tools/quicktest.py --v && python --version SunOS voldemort 5.11 snv_151a i86pc i386 i86pc Solaris quicktest.py (Docutils 0.9 [snapshot 2011-08-30, r7116]) Python 2.6.4 Built docutils so I could build the full Mercurial source including man pages. Everything seemed to compile ok, and hg works, but the man pages are screwy so I ran the full test suite. Attached is the output of "dan@voldemort:~/docutils$ ./test/alltests.py > ./test_results 2>&1" Seems like this is a known bug on the Mercurial list: http://mercurial.selenic.com/bts/issue2527 - not sure if it's docutils or hg. cheers Dan |