[Zope-CVS] SVN: zpkgtools/trunk/zpkgsetup/ add at least a minimal test for walk_packages(), noting a serious limitation

Fred L. Drake, Jr. fdrake at gmail.com
Wed Aug 24 17:41:26 EDT 2005


Log message for revision 38080:
  add at least a minimal test for walk_packages(), noting a serious limitation
  that cannot be fixed right now
  

Changed:
  U   zpkgtools/trunk/zpkgsetup/setup.py
  U   zpkgtools/trunk/zpkgsetup/tests/test_setup.py

-=-
Modified: zpkgtools/trunk/zpkgsetup/setup.py
===================================================================
--- zpkgtools/trunk/zpkgsetup/setup.py	2005-08-24 20:58:25 UTC (rev 38079)
+++ zpkgtools/trunk/zpkgsetup/setup.py	2005-08-24 21:41:26 UTC (rev 38080)
@@ -151,6 +151,16 @@
         path in POSIX notation.
 
         """
+        #
+        # walk_packages() doesn't pick up packages that don't have a
+        # SETUP.cfg in them, so it's not everything we want.  However,
+        # picking up C extensions in leaf packages gets us an in-place
+        # build, which is a good start.
+        #
+        # To fix this, the zpkgsetup code needs to understand the
+        # right way to detect package boundaries, which is currently
+        # done implicitly by the distribution construction code.
+        #
         parts = root.split("/")
         local_root = os.path.join(*parts)
         prefix_len = len(os.path.join(local_root, ""))

Modified: zpkgtools/trunk/zpkgsetup/tests/test_setup.py
===================================================================
--- zpkgtools/trunk/zpkgsetup/tests/test_setup.py	2005-08-24 20:58:25 UTC (rev 38079)
+++ zpkgtools/trunk/zpkgsetup/tests/test_setup.py	2005-08-24 21:41:26 UTC (rev 38080)
@@ -52,6 +52,23 @@
         self.assertEqual(context.package_data,
                          {"package2": ["PUBLICATION.cfg", "SETUP.cfg"]})
 
+    def test_walk_packages(self):
+        import zpkgsetup
+        top = os.path.dirname(os.path.dirname(zpkgsetup.__file__))
+        context = setup.SetupContext("collection", "0.1.2",
+                                     os.path.join(top, "setup.py"))
+        context.walk_packages("zpkgsetup/tests/input")
+        context.packages.sort()
+        self.assertEqual(context.ext_modules[0].name, "package2.sample")
+        #
+        # See the comments in the walk_packages() function for an
+        # explanation of the limitations of the method.  The following
+        # check is commented out due to the limitation, but should be
+        # enabled with a proper implementation.
+        #
+        #self.assertEqual(context.packages, ["package", "package2"])
+        
 
+
 def test_suite():
     return unittest.makeSuite(SetupContextTestCase)



More information about the Zope-CVS mailing list