# HG changeset patch -- Bitbucket.org # Project apipkg # URL http://bitbucket.org/hpk42/apipkg/overview # User Ralf Schmitt <r...@systemexit.de> # Date 1288906297 -3600 # Node ID fd590ef45812b3b031ec3412e99b6f03324e9bf9 # Parent 41f548cd98ae6bc5afa5da737730dda749646d76 make initpkg work without an "old module" in sys.modules
--- a/test_apipkg.py +++ b/test_apipkg.py @@ -400,3 +400,9 @@ def test_aliasmodule_repr(): assert "<AliasModule 'mymod' for 'sys'>" == r am.version assert repr(am) == r + +def test_initpkg_without_old_module(): + apipkg.initpkg("initpkg_without_old_module", + dict(modules="sys:modules")) + from initpkg_without_old_module import modules + assert modules is sys.modules --- a/apipkg.py +++ b/apipkg.py @@ -13,7 +13,7 @@ __version__ = "1.2.dev1" def initpkg(pkgname, exportdefs, attr=dict()): """ initialize given package from the export definitions. """ - oldmod = sys.modules[pkgname] + oldmod = sys.modules.get(pkgname) d = {} f = getattr(oldmod, '__file__', None) if f: @@ -28,7 +28,8 @@ def initpkg(pkgname, exportdefs, attr=di if hasattr(oldmod, '__doc__'): d['__doc__'] = oldmod.__doc__ d.update(attr) - oldmod.__dict__.update(d) + if hasattr(oldmod, "__dict__"): + oldmod.__dict__.update(d) mod = ApiModule(pkgname, exportdefs, implprefix=pkgname, attr=d) sys.modules[pkgname] = mod _______________________________________________ py-svn mailing list py-svn@codespeak.net http://codespeak.net/mailman/listinfo/py-svn