demandimport: do not raise ImportError for unknown item in fromlist
This is the behavior of the default __import__() function, which doesn't
validate the existence of the fromlist items. Later on, the missing attribute
is detected while processing the import statement.
https://hg.python.org/cpython/file/v2.7.13/Python/import.c#l2575
The comtypes library relies on this (maybe) undocumented behavior, and we
got a bug report to TortoiseHg, sigh.
https://bitbucket.org/tortoisehg/thg/issues/4647/
The test added at
26a4e46af2bc verifies the behavior of the import statement,
so this patch only adds the test of __import__() function and works around
CPython/PyPy difference.
#require execbit
$ hg init repo
$ cd repo
$ echo foo > foo
$ chmod 644 foo
$ hg ci -qAm '644'
$ chmod 755 foo
$ hg ci -qAm '755'
reverting to rev 0
$ hg revert -a -r 0
reverting foo
$ hg st
M foo
$ hg diff --git
diff --git a/foo b/foo
old mode 100755
new mode 100644
$ cd ..