Commits

Ned Batchelder  committed dcfc0f3 Merge

Automated merge with ssh://bitbucket.org/ned/coveragepy

  • Participants
  • Parent commits efc3d68, 49c175a

Comments (0)

Files changed (5)

     *.so *.pyd
     *.gz *.zip
     _build
-    *.egg-info
+    *.egg *.egg-info
     zf.write("test/covmodzip1.py", "covmodzip1.py")
     zf.close()
 
+def do_install_egg():
+    """Install the egg1 egg for tests."""
+    # I am pretty certain there are easier ways to install eggs...
+    # pylint: disable=F0401,E0611,E1101
+    import distutils.core       
+    cur_dir = os.getcwd()
+    os.chdir("test/eggsrc")
+    distutils.core.run_setup("setup.py", ["--quiet", "bdist_egg"])
+    egg = glob.glob("dist/*.egg")[0]
+    distutils.core.run_setup(
+        "setup.py", ["--quiet", "easy_install", "--no-deps", "--zip-ok", egg]
+        )
+    os.chdir(cur_dir)
+
 def do_check_eol():
     """Check files for incorrect newlines and trailing whitespace."""
 
     ignore_dirs = [
         '.svn', '.hg', '.tox', '.tox_kits', 'coverage.egg-info',
-        '_build',
+        '_build', 'covtestegg1.egg-info',
         ]
     checked = set([])
 

File test/eggsrc/setup.py

 setup(
     name="covtestegg1",
     packages=['egg1'],
+    zip_safe=True,
+    install_requires=[],
     )

File test/test_codeunit.py

         assert bcu > acu and bcu >= acu and bcu != acu
 
     def test_egg(self):
+        # Test that we can get files out of eggs, and read their source files.
+        # The egg1 module is installed by an action in igor.py.
         import egg1, egg1.egg1
+        # Verify that we really imported from an egg.  If we did, then the
+        # __file__ won't be an actual file, because one of the "directories"
+        # in the path is actually the .egg zip file.
+        self.assert_doesnt_exist(egg1.__file__)
+
         cu = code_unit_factory([egg1, egg1.egg1], FileLocator())
         self.assertEqual(cu[0].source_file().read(), "")
         self.assertEqual(cu[1].source_file().read().split("\n")[0],
 envlist = py25, py26, py27, py31, py32, py33, pypy
 
 [testenv]
-setenv = 
-    PYTHONPATH=test/eggsrc
-
 commands =
     {envpython} setup.py --quiet clean develop
 
     # Create test/zipmods.zip
+    # Install the egg1 egg
     # Remove the C extension so that we can test the PyTracer
+    {envpython} igor.py zip_mods install_egg remove_extension 
+
     # Test with the PyTracer
-    {envpython} igor.py zip_mods remove_extension test_with_tracer py {posargs}
+    {envpython} igor.py test_with_tracer py {posargs}
 
     # Build the C extension and test with the CTracer
     {envpython} setup.py --quiet build_ext --inplace
 [testenv:pypy]
 # PyPy has no C extensions
 setenv = 
-    PYTHONPATH=test/eggsrc
     COVERAGE_NO_EXTENSION=1