• Tim Peters's avatar
    Get rid of the ignore_imports argument to DocTestFinder.find(). · f3f57473
    Tim Peters yazdı
    This got slammed in when find() was fixed to stop grabbing doctests
    from modules imported *by* the module being tested.  Such tests cannot
    be expected to succeed, since they'll be run with the current module's
    globals.  Dozens of Zope3 doctests were failing because of that.
    
    It wasn't clear why ignore_imports got added then.  Maybe it's because
    some existing tests failed when the change was made.  Whatever, it's
    a Bad Idea so it's gone now.
    
    The only use of it was exceedingly obscure, in test_doctest's "Duplicate
    Removal" test.  It was "needed" there because, as an artifact of running
    a doctest inside a doctest, the func_globals of functions compiled in
    the second-level doctest don't match the module globals, and so the
    test-finder believed these functions were from a foreign module and
    skipped them.  But that took a long time to figure out, and I actually
    understand some of this stuff <0.9 wink>.
    
    That problem was resolved by moving the source code for the second-level
    doctest into an actual module (test/doctest_aliases.py).
    
    The only remaining difficulty was that the test for the deprecated
    Tester.rundict() then failed, because the test finder doesn't take
    module=None at face value, trying to guess which module the user really
    intended then.  Its guess wasn't appropriate for what Tester.rundict
    needs when module=None is given to *it*, which is "no, there is no
    module here, and I mean it".  So now passing module=False means exactly
    that.  This is hokey, but ignore_imports=False was really a hack to worm
    around that there was no way to tell the test-finder that module=None
    *sometimes* means what it says.  There was no use case for the combination
    of passing a real module with ignore_imports=False.
    f3f57473
doctest_aliases.py 243 Bytes