Karen Tracey wrote:

Yeah, but the testcases are not quite that simple. They're often testing return values from functions and as much verifying that the type is correct as the value, so I think I'd have to change stuff like:

 >>> f.clean('1')
Decimal("1")

to:

 >>> x = f.clean('1')
 >>> print type(x), x
<class 'decimal.Decimal'> 1
right?

>>> f.clean('1') == Decimal('1')
True

Since 'True' is a keyword, and Guido is *very* reluctant to even add keywords, let alone change their spelling, I think you can depend on that working indefinitely. Similarly, if you now have

>>> type(a)
<type 'int'>

you test will fail in 3.0 which instead prints '<class 'int'>.  But

>>>type(a) is int
True

will continue working.

Doctest has two quite different uses. One is to check text with interactive examples to make sure there are no mistakes in the examples. For that, printing representations is usually the natural style. Then one must accept that representations change faster that object behavior.

The other use is to check code. For that, the more stilted style is more future-proof. For text doing double duty as a formal reference and code test, I would go for cross-version dependability.

Terry Jan Reedy

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to