En Thu, 19 Jun 2008 02:46:15 -0300, J-Burns <[EMAIL PROTECTED]> escribió:

Hello. Im new to using doctests in python. Could some1 tel me how to
use doctests if i have a constructor in my code?

Just construct the desired objects inside the doctest. See the difflib module for a couple examples. If it's hard/undesirable/annoying to construct the objects for every test, you may use the "globs" or "extraglobs" argument to doctest.testmod. Something like this:

class SomeClass:
    def __init__(self, a, lot, of arguments, are, required):
        ...

    def some_method(self, arg):
        """Does this and that...

        In the test below, obj refers to the
        already created instance (below, in _test)

        >>> obj.some_method(self, 123)
        True
        >>> obj.some_method(self, "hi")
        False
        """
        ...

def _test():
    import doctest
    obj = SomeClass(create, the instance, using, a, lot, of, arguments)
    doctest.testmod(extraglobs={'obj': obj})

if __name__=='__main__':
    _test()

But I prefer to keep the doctests self-contained whenever possible.

--
Gabriel Genellina

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

Reply via email to