One of my doctests is failing, and I suspect a bug.

The test involves matching an exception in a for-loop. Here are two
simplified versions of the test, both should pass but only the first does.


As a doctest, this passes:

>>> for x in [3, 2, 1]:
...     print (x, 1.0/x)
...
(3, 0.33333333333333331)
(2, 0.5)
(1, 1.0)


However, this fails:

>>> for x in [3, 2, 1, 0]:
...     print (x, 1.0/x)
...
(3, 0.33333333333333331)
(2, 0.5)
(1, 1.0)
Traceback (most recent call last):
  ...
ZeroDivisionError: float division


Attached is a simple test script which runs doctest.testmod(). Both tests
should pass, with no output printing. However, it does this:

$ python doctest_error.py
**********************************************************************
File "doctest_error.py", line 14, in __main__
Failed example:
    for x in [3, 2, 1, 0]:
        print (x, 1.0/x)
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.5/doctest.py", line 1212, in __run
        compileflags, 1) in test.globs
      File "<doctest __main__[1]>", line 2, in <module>
        print (x, 1.0/x)
    ZeroDivisionError: float division
**********************************************************************
1 items had failures:
   1 of   2 in __main__
***Test Failed*** 1 failures.



I've tested this in Python 2.4, 2.5 and 2.6 and get the same result for all
three.

Have I missed something, or should I report this as a bug?



-- 
Steven

"""


>>> for x in [3, 2, 1]:
...     print (x, 1.0/x)
...
(3, 0.33333333333333331)
(2, 0.5)
(1, 1.0)


This fails as a doctest:

>>> for x in [3, 2, 1, 0]:
...     print (x, 1.0/x)
...
(3, 0.33333333333333331)
(2, 0.5)
(1, 1.0)
Traceback (most recent call last):
  ...
ZeroDivisionError: float division

"""



if __name__ == '__main__':
    import doctest
    doctest.testmod()


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to