Issue 15384: pkgutil importlib migration test was failing on Windows buildbots (original) (raw)

Issue15384

Created on 2012-07-18 10:46 by ncoghlan, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (4)
msg165752 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012-07-18 10:46
As noted in #15314, one of the pkgutil tests was failing on Windows because pkgutil.get_importer("") was returning None. On my Fedora system it returns FileFinder("."). I've now tweaked that particular test to use a bogus path string so that None is the expected result on all platforms. However, the cross-platform discrepancy is a little disturbing - I would have expected the operation to either fail or succeed regardless of platform. Since pkgutil.get_importer is now just a wrapper that takes care of checking path_importer_cache and then walking sys.path_hooks, I believe the actual culprit is FileFinder.path_hook()("") returning None (I'm currently downloading and installing 3.3b1 on my gaming machine to confirm that)
msg165758 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012-07-18 11:50
Well, that's weird. A manual test on my Windows 7 gaming rig indicates that the old test *should* have worked on Windows as well. I have no idea how to investigate this further. David, are you able to check what pkgutil.get_importer("") returns when running locally on your Windows buildbots? An example of the error the buildbots were getting: http://buildbot.python.org/all/builders/x86%20Windows7%203.x/builds/5450/steps/test/logs/stdio
msg165797 - (view) Author: David Bolen (db3l) * Date: 2012-07-18 20:27
With a local build on my buildbot of the tip of the default branch, pkgutil.get_importer('') returns FileFilter('.'). The tests also passed. However, after checking here and realizing the offending code had been removed from the test, I put it back in and it still fails. I think the problem is that sys.path[0] is not '' when testing in the buildbot environment (though it is when I run the debug interpreter interactively). Within the buildbot scripts it's a path to the stdlib test zip, so for example in my test tree it's "D:\cygwin\home\db3l\test\build\PCbuild\python33_d.zip". And if I hand that string to pkgutil.get_importer() I do seem to get None back.
msg165894 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2012-07-20 01:17
Ah, that makes sense - since the zip file doesn't exist on buildbots, returning None is the correct result. Mystery explained, thanks :)
History
Date User Action Args
2022-04-11 14:57:33 admin set github: 59589
2012-07-20 01:17:20 ncoghlan set status: open -> closedresolution: not a bugmessages: + title: pkgutil.get_importer("") was returning None on Windows buildbots -> pkgutil importlib migration test was failing on Windows buildbots
2012-07-18 20:27:02 db3l set messages: +
2012-07-18 11:50:26 ncoghlan set nosy: + db3lmessages: + title: FileFinder.path_hook()("") returns None on Windows -> pkgutil.get_importer("") was returning None on Windows buildbots
2012-07-18 10:48:43 ncoghlan set type: behaviorstage: test needed
2012-07-18 10:46:02 ncoghlan create