[py-svn] commit/py: hpk42: remove apipkg.py test to lower redundancy

Bitbucket commits-noreply at bitbucket.org
Sat Jun 9 23:06:12 CEST 2012


1 new commit in py:


https://bitbucket.org/hpk42/py/changeset/c467a077be40/
changeset:   c467a077be40
user:        hpk42
date:        2012-06-09 23:05:55
summary:     remove apipkg.py test to lower redundancy
affected #:  1 file

diff -r 4dfde5019cb35a1506aca3607d7de5245f762335 -r c467a077be406daf8890fa239c9fdccf9be195d3 testing/test_apipkg.py
--- a/testing/test_apipkg.py
+++ /dev/null
@@ -1,473 +0,0 @@
-import types
-import sys
-import py
-import py._apipkg as apipkg
-import subprocess
-import types
-
-ModuleType = types.ModuleType
-#
-# test support for importing modules
-#
-
-class TestRealModule:
-
-    def setup_class(cls):
-        cls.tmpdir = py.test.ensuretemp('test_apipkg')
-        sys.path = [str(cls.tmpdir)] + sys.path
-        pkgdir = cls.tmpdir.ensure('realtest', dir=1)
-
-        tfile = pkgdir.join('__init__.py')
-        tfile.write(py.code.Source("""
-            import py._apipkg as apipkg
-            apipkg.initpkg(__name__, {
-                'x': {
-                    'module': {
-                        '__doc__': '_xyz.testmodule:__doc__',
-                        'mytest0': '_xyz.testmodule:mytest0',
-                        'mytest1': '_xyz.testmodule:mytest1',
-                        'MyTest':  '_xyz.testmodule:MyTest',
-                    }
-                }
-            }
-            )
-        """))
-
-        ipkgdir = cls.tmpdir.ensure("_xyz", dir=1)
-        tfile = ipkgdir.join('testmodule.py')
-        ipkgdir.ensure("__init__.py")
-        tfile.write(py.code.Source("""
-            'test module'
-            from _xyz.othermodule import MyTest
-
-            #__all__ = ['mytest0', 'mytest1', 'MyTest']
-
-            def mytest0():
-                pass
-            def mytest1():
-                pass
-        """))
-        ipkgdir.join("othermodule.py").write("class MyTest: pass")
-
-    def setup_method(self, *args):
-        # Unload the test modules before each test.
-        module_names = ['realtest', 'realtest.x', 'realtest.x.module']
-        for modname in module_names:
-            if modname in sys.modules:
-                del sys.modules[modname]
-
-    def test_realmodule(self):
-        import realtest.x
-        assert 'realtest.x.module' in sys.modules
-        assert getattr(realtest.x.module, 'mytest0')
-
-    def test_realmodule_repr(self):
-        import realtest.x
-        assert "<ApiModule 'realtest.x'>"  == repr(realtest.x)
-
-    def test_realmodule_from(self):
-        from realtest.x import module
-        assert getattr(module, 'mytest1')
-
-    def test_realmodule__all__(self):
-        import realtest.x.module
-        assert realtest.x.__all__ == ['module']
-        assert len(realtest.x.module.__all__) == 4
-
-    def test_realmodule_dict_import(self):
-        "Test verifying that accessing the __dict__ invokes the import"
-        import realtest.x.module
-        moddict = realtest.x.module.__dict__
-        assert 'mytest0' in moddict
-        assert 'mytest1' in moddict
-        assert 'MyTest' in moddict
-
-    def test_realmodule___doc__(self):
-        """test whether the __doc__ attribute is set properly from initpkg"""
-        import realtest.x.module
-        print (realtest.x.module.__map__)
-        assert realtest.x.module.__doc__ == 'test module'
-
-class TestScenarios:
-    def test_relative_import(self, monkeypatch, tmpdir):
-        pkgdir = tmpdir.mkdir("mymodule")
-        pkgdir.join('__init__.py').write(py.code.Source("""
-            import py._apipkg as apipkg
-            apipkg.initpkg(__name__, exportdefs={
-                '__doc__': '.submod:maindoc',
-                'x': '.submod:x',
-                'y': {
-                    'z': '.submod:x'
-                },
-            })
-        """))
-        pkgdir.join('submod.py').write("x=3\nmaindoc='hello'")
-        monkeypatch.syspath_prepend(tmpdir)
-        import mymodule
-        assert isinstance(mymodule, apipkg.ApiModule)
-        assert mymodule.x == 3
-        assert mymodule.__doc__ == 'hello'
-        assert mymodule.y.z == 3
-
-    def test_recursive_import(self, monkeypatch, tmpdir):
-        pkgdir = tmpdir.mkdir("recmodule")
-        pkgdir.join('__init__.py').write(py.code.Source("""
-            import py._apipkg as apipkg
-            apipkg.initpkg(__name__, exportdefs={
-                'some': '.submod:someclass',
-            })
-        """))
-        pkgdir.join('submod.py').write(py.code.Source("""
-            import recmodule
-            class someclass: pass
-            print (recmodule.__dict__)
-        """))
-        monkeypatch.syspath_prepend(tmpdir)
-        import recmodule
-        assert isinstance(recmodule, apipkg.ApiModule)
-        assert recmodule.some.__name__ == "someclass"
-
-    def test_module_alias_import(self, monkeypatch, tmpdir):
-        pkgdir = tmpdir.mkdir("aliasimport")
-        pkgdir.join('__init__.py').write(py.code.Source("""
-            import py._apipkg as apipkg
-            apipkg.initpkg(__name__, exportdefs={
-                'some': 'os.path',
-            })
-        """))
-        monkeypatch.syspath_prepend(tmpdir)
-        import aliasimport
-        for k, v in py.std.os.path.__dict__.items():
-            assert getattr(aliasimport.some, k) == v
-
-    def test_from_module_alias_import(self, monkeypatch, tmpdir):
-        pkgdir = tmpdir.mkdir("fromaliasimport")
-        pkgdir.join('__init__.py').write(py.code.Source("""
-            import py._apipkg as apipkg
-            apipkg.initpkg(__name__, exportdefs={
-                'some': 'os.path',
-            })
-        """))
-        monkeypatch.syspath_prepend(tmpdir)
-        from fromaliasimport.some import join
-        assert join is py.std.os.path.join
-
-def xtest_nested_absolute_imports():
-    import email
-    api_email = apipkg.ApiModule('email',{
-        'message2': {
-            'Message': 'email.message:Message',
-            },
-        })
-    # nesting is supposed to put nested items into sys.modules
-    assert 'email.message2' in sys.modules
-
-# alternate ideas for specifying package + preliminary code
-#
-def test_parsenamespace():
-    spec = """
-        path.local    __.path.local::LocalPath
-        path.svnwc    __.path.svnwc::WCCommandPath
-        test.raises   __.test.outcome::raises
-    """
-    d = parsenamespace(spec)
-    print (d)
-    assert d == {'test': {'raises': '__.test.outcome::raises'},
-                 'path': {'svnwc': '__.path.svnwc::WCCommandPath',
-                          'local': '__.path.local::LocalPath'}
-            }
-def xtest_parsenamespace_errors():
-    py.test.raises(ValueError, """
-        parsenamespace('path.local xyz')
-    """)
-    py.test.raises(ValueError, """
-        parsenamespace('x y z')
-    """)
-
-def parsenamespace(spec):
-    ns = {}
-    for line in spec.split("\n"):
-        line = line.strip()
-        if not line or line[0] == "#":
-            continue
-        parts = [x.strip() for x in line.split()]
-        if len(parts) != 2:
-            raise ValueError("Wrong format: %r" %(line,))
-        apiname, spec = parts
-        if not spec.startswith("__"):
-            raise ValueError("%r does not start with __" %(spec,))
-        apinames = apiname.split(".")
-        cur = ns
-        for name in apinames[:-1]:
-            cur.setdefault(name, {})
-            cur = cur[name]
-        cur[apinames[-1]] = spec
-    return ns
-
-def test_initpkg_replaces_sysmodules(monkeypatch):
-    mod = ModuleType('hello')
-    monkeypatch.setitem(sys.modules, 'hello', mod)
-    apipkg.initpkg('hello', {'x': 'os.path:abspath'})
-    newmod = sys.modules['hello']
-    assert newmod != mod
-    assert newmod.x == py.std.os.path.abspath
-
-def test_initpkg_transfers_attrs(monkeypatch):
-    mod = ModuleType('hello')
-    mod.__version__ = 10
-    mod.__file__ = "hello.py"
-    mod.__loader__ = "loader"
-    mod.__doc__ = "this is the documentation"
-    monkeypatch.setitem(sys.modules, 'hello', mod)
-    apipkg.initpkg('hello', {})
-    newmod = sys.modules['hello']
-    assert newmod != mod
-    assert newmod.__file__ == py.path.local(mod.__file__)
-    assert newmod.__version__ == mod.__version__
-    assert newmod.__loader__ == mod.__loader__
-    assert newmod.__doc__ == mod.__doc__
-
-def test_initpkg_nodoc(monkeypatch):
-    mod = ModuleType('hello')
-    mod.__file__ = "hello.py"
-    monkeypatch.setitem(sys.modules, 'hello', mod)
-    apipkg.initpkg('hello', {})
-    newmod = sys.modules['hello']
-    assert not newmod.__doc__
-
-def test_initpkg_overwrite_doc(monkeypatch):
-    hello = ModuleType('hello')
-    hello.__doc__ = "this is the documentation"
-    monkeypatch.setitem(sys.modules, 'hello', hello)
-    apipkg.initpkg('hello', {"__doc__": "sys:__doc__"})
-    newhello = sys.modules['hello']
-    assert newhello != hello
-    assert newhello.__doc__ == sys.__doc__
-
-def test_initpkg_not_transfers_not_existing_attrs(monkeypatch):
-    mod = ModuleType('hello')
-    mod.__file__ = "hello.py"
-    monkeypatch.setitem(sys.modules, 'hello', mod)
-    apipkg.initpkg('hello', {})
-    newmod = sys.modules['hello']
-    assert newmod != mod
-    assert newmod.__file__ == py.path.local(mod.__file__)
-    assert not hasattr(newmod, '__loader__')
-    assert not hasattr(newmod, '__path__')
-
-def test_initpkg_defaults(monkeypatch):
-    mod = ModuleType('hello')
-    monkeypatch.setitem(sys.modules, 'hello', mod)
-    apipkg.initpkg('hello', {})
-    newmod = sys.modules['hello']
-    assert newmod.__file__ == None
-    assert not hasattr(newmod, '__version__')
-
-def test_name_attribute():
-    api = apipkg.ApiModule('name_test', {
-        'subpkg': {},
-        })
-    assert api.__name__ == 'name_test'
-    assert api.subpkg.__name__ == 'name_test.subpkg'
-
-def test_error_loading_one_element(monkeypatch, tmpdir):
-    pkgdir = tmpdir.mkdir("errorloading1")
-    pkgdir.join('__init__.py').write(py.code.Source("""
-        import py._apipkg as apipkg
-        apipkg.initpkg(__name__, exportdefs={
-            'x': '.notexists:x',
-            'y': '.submod:y'
-            },
-        )
-    """))
-    pkgdir.join('submod.py').write("y=0")
-    monkeypatch.syspath_prepend(tmpdir)
-    import errorloading1
-    assert isinstance(errorloading1, apipkg.ApiModule)
-    assert errorloading1.y == 0
-    py.test.raises(ImportError, 'errorloading1.x')
-    py.test.raises(ImportError, 'errorloading1.x')
-
-def test_onfirstaccess(tmpdir, monkeypatch):
-    pkgdir = tmpdir.mkdir("firstaccess")
-    pkgdir.join('__init__.py').write(py.code.Source("""
-        import py._apipkg as apipkg
-        apipkg.initpkg(__name__, exportdefs={
-            '__onfirstaccess__': '.submod:init',
-            'l': '.submod:l',
-            },
-        )
-    """))
-    pkgdir.join('submod.py').write(py.code.Source("""
-        l = []
-        def init():
-            l.append(1)
-    """))
-    monkeypatch.syspath_prepend(tmpdir)
-    import firstaccess
-    assert isinstance(firstaccess, apipkg.ApiModule)
-    assert len(firstaccess.l) == 1
-    assert len(firstaccess.l) == 1
-    assert '__onfirstaccess__' not in firstaccess.__all__
-
- at py.test.mark.multi(mode=['attr', 'dict', 'onfirst'])
-def test_onfirstaccess_setsnewattr(tmpdir, monkeypatch, mode):
-    pkgname = tmpdir.basename.replace("-", "")
-    pkgdir = tmpdir.mkdir(pkgname)
-    pkgdir.join('__init__.py').write(py.code.Source("""
-        import py._apipkg as apipkg
-        apipkg.initpkg(__name__, exportdefs={
-            '__onfirstaccess__': '.submod:init',
-            },
-        )
-    """))
-    pkgdir.join('submod.py').write(py.code.Source("""
-        def init():
-            import %s as pkg
-            pkg.newattr = 42
-    """ % pkgname))
-    monkeypatch.syspath_prepend(tmpdir)
-    mod = __import__(pkgname)
-    assert isinstance(mod, apipkg.ApiModule)
-    if mode == 'attr':
-        assert mod.newattr == 42
-    elif mode == "dict":
-        print (list(mod.__dict__.keys()))
-        assert 'newattr' in mod.__dict__
-    elif mode == "onfirst":
-        assert not hasattr(mod, '__onfirstaccess__')
-        assert not hasattr(mod, '__onfirstaccess__')
-    assert '__onfirstaccess__' not in vars(mod)
-
-def test_bpython_getattr_override(tmpdir, monkeypatch):
-    def patchgetattr(self, name):
-        raise AttributeError(name)
-    monkeypatch.setattr(apipkg.ApiModule, '__getattr__', patchgetattr)
-    api = apipkg.ApiModule('bpy', {
-        'abspath': 'os.path:abspath',
-        })
-    d = api.__dict__
-    assert 'abspath' in d
-
-
-
-
-def test_chdir_with_relative_imports_shouldnt_break_lazy_loading(tmpdir):
-    tmpdir.join('apipkg.py').write(py.code.Source(apipkg))
-    pkg = tmpdir.mkdir('pkg')
-    messy = tmpdir.mkdir('messy')
-    pkg.join('__init__.py').write(py.code.Source("""
-        import py._apipkg as apipkg
-        apipkg.initpkg(__name__, {
-            'test': '.sub:test',
-        })
-    """))
-    pkg.join('sub.py').write('def test(): pass')
-
-    tmpdir.join('main.py').write(py.code.Source("""
-        import os
-        import sys
-        sys.path.insert(0, '')
-        import pkg
-        import py
-        print(py.__file__)
-        py.builtin.print_(pkg.__path__, file=sys.stderr)
-        py.builtin.print_(pkg.__file__, file=sys.stderr)
-        py.builtin.print_(pkg, file=sys.stderr)
-        os.chdir('messy')
-        pkg.test()
-        assert os.path.isabs(pkg.sub.__file__), pkg.sub.__file__
-    """))
-    res = subprocess.call(
-        [py.std.sys.executable, 'main.py'],
-        cwd=str(tmpdir),
-    )
-    assert res == 0
-
-
-def test_dotted_name_lookup(tmpdir, monkeypatch):
-    pkgdir = tmpdir.mkdir("dotted_name_lookup")
-    pkgdir.join('__init__.py').write(py.code.Source("""
-        import py._apipkg as apipkg
-        apipkg.initpkg(__name__, dict(abs='os:path.abspath'))
-    """))
-    monkeypatch.syspath_prepend(tmpdir)
-    import dotted_name_lookup
-    assert dotted_name_lookup.abs == py.std.os.path.abspath
-
-def test_extra_attributes(tmpdir, monkeypatch):
-    pkgdir = tmpdir.mkdir("extra_attributes")
-    pkgdir.join('__init__.py').write(py.code.Source("""
-        import py._apipkg as apipkg
-        apipkg.initpkg(__name__, dict(abs='os:path.abspath'), dict(foo='bar'))
-    """))
-    monkeypatch.syspath_prepend(tmpdir)
-    import extra_attributes
-    assert extra_attributes.foo == 'bar'
-
-def test_aliasmodule_repr():
-    am = apipkg.AliasModule("mymod", "sys")
-    r = repr(am)
-    assert "<AliasModule 'mymod' for 'sys'>" == r
-    am.version
-    assert repr(am) == r
-
-def test_aliasmodule_proxy_methods(tmpdir, monkeypatch):
-    pkgdir = tmpdir
-    pkgdir.join('aliasmodule_proxy.py').write(py.code.Source("""
-        def doit():
-            return 42
-    """))
-
-    pkgdir.join('my_aliasmodule_proxy.py').write(py.code.Source("""
-        import py._apipkg as apipkg
-        apipkg.initpkg(__name__, dict(proxy='aliasmodule_proxy'))
-
-        def doit():
-            return 42
-    """))
-
-    monkeypatch.syspath_prepend(tmpdir)
-    import aliasmodule_proxy as orig
-    from my_aliasmodule_proxy import proxy
-
-    doit = proxy.doit
-    assert doit is orig.doit
-
-    del proxy.doit
-    py.test.raises(AttributeError, "orig.doit")
-
-    proxy.doit = doit
-    assert orig.doit is doit
-
-def test_aliasmodule_nested_import_with_from(tmpdir, monkeypatch):
-    import os
-    pkgdir = tmpdir.mkdir("api1")
-    pkgdir.ensure("__init__.py").write(py.std.textwrap.dedent("""
-        import py._apipkg as apipkg
-        apipkg.initpkg(__name__, {
-            'os2': 'api2',
-            'os2.path': 'api2.path2',
-            })
-    """))
-    tmpdir.join("api2.py").write(py.std.textwrap.dedent("""
-        import os, sys
-        from os import path
-        sys.modules['api2.path2'] = path
-        x = 3
-    """))
-    monkeypatch.syspath_prepend(tmpdir)
-    from api1 import os2
-    from api1.os2.path import abspath
-    assert abspath == os.path.abspath
-    # check that api1.os2 mirrors os.*
-    assert os2.x == 3
-    import api1
-    assert 'os2.path' not in api1.__dict__
-
-
-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

Repository URL: https://bitbucket.org/hpk42/py/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.



More information about the pytest-commit mailing list