Mercurial > hg-stable
view tests/mockblackbox.py @ 33531:9cbbf9118c6c
demandimport: prefer loaded module over package attribute (issue5617)
In general, the attribute of the same name is overwritten by executing an
import statement.
import a.b
print(a.b.c) # 'c' of a/b/__init__.py
from a.b.c import d
print(a.b.c) # a/b/c.py
However, this appears not true for the scenario described in the test case,
and surprisingly, "from a.b.c import d" works even if "a.b.c" is not a module.
This patch works around the problem by taking the right module from sys.modules
if available.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 16 Jul 2017 17:38:39 +0900 |
parents | 043948c84647 |
children | f49c3ee5b02f |
line wrap: on
line source
from __future__ import absolute_import from mercurial import ( util, ) # XXX: we should probably offer a devel option to do this in blackbox directly def getuser(): return 'bob' def getpid(): return 5000 # mock the date and user apis so the output is always the same def uisetup(ui): util.getuser = getuser util.getpid = getpid