NEWBIE: doctest question

E

engsolnom

I'm trying to learn a bit about the doctest module,
with the goal of incorporating unit test in my
'real' code.

I created a test class, and it works fine, until
I force an error. The results are:

C:\Python23>python myfiles\tst_doctest.py
*****************************************************************
Failure in example: print obj.s2hex('abcdef')
from line #4 of __main__.Unittest
Expected:
*** Source string too long
None
Got:

*** Source string too long

None
*****************************************************************
1 items had failures:
1 of 3 in __main__.Unittest
***Test Failed*** 1 failures.

If I remove the prints before and after
print '*** Source string too long'
in s2hex, it works fine, or if I just use:
return '*** Source string too long'
that works OK too. But if I try to compensate
for the pre and post 'print' in the class
doc string for the blank lines, it complains
about that.

The 'None' snows me... it would seem that
on error, the return should be honored,
and the 'return hex_string' should not be.

Is the lesson here to handle exceptions better?

All comments welcome.
Norm

TEST CODE:

class Unittest:

"""
This class converts an ASCII string to the hex equiv blah blah
*** Source string too long
None
"""

def __init__(self):
pass

def s2hex(self,source):
hex_string = ''
if len(source) > 5:
print
print '*** Source string too long'
print
return
else:
for char in source:
hex_string += '%.2x' % ord(char)
return hex_string

if __name__ == '__main__':
import doctest, sys
doctest.testmod(sys.modules[__name__])
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,053
Latest member
BrodieSola

Latest Threads

Top