1. 08 Agu, 2004 1 kayıt (commit)
    • 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