[Checkins] SVN: Sandbox/thefunny42/kgs.test/trunk/build.py Fix script to use buildout and setuptools to get information about the package (does it use an extra_requires test).

Sylvain Viollon sylvain at infrae.com
Mon Jan 26 14:31:23 EST 2009


Log message for revision 95032:
  Fix script to use buildout and setuptools to get information about the package (does it use an extra_requires test).
  Cleanning.
  
  

Changed:
  U   Sandbox/thefunny42/kgs.test/trunk/build.py

-=-
Modified: Sandbox/thefunny42/kgs.test/trunk/build.py
===================================================================
--- Sandbox/thefunny42/kgs.test/trunk/build.py	2009-01-26 15:55:07 UTC (rev 95031)
+++ Sandbox/thefunny42/kgs.test/trunk/build.py	2009-01-26 19:31:22 UTC (rev 95032)
@@ -1,10 +1,15 @@
-
 import os.path
+import os
 import popen2
+import glob
+from pkg_resources import Environment, WorkingSet
+from zc.buildout import easy_install
 
-ZOPE3_SVN = "svn://svn.zope.org/repos/main/"
 
-wanted = []
+ZOPE3_SVN = os.getenv('ZOPE3_SVN', 'svn://svn.zope.org/repos/main/')
+EGG_CACHE = os.getenv('EGG_CACHE', '/Users/sylvain/Library/Buildout/eggs')
+DEVELOP_EGG = 'develop-eggs'
+NEWEST = False
 BLACKLIST = ['zope.agxassociation', 'zope.app.css', 'zope.app.demo', \
                  'zope.app.fssync', 'zope.app.recorder', \
                  'zope.app.schemacontent', 'zope.app.sqlexpr', \
@@ -18,6 +23,7 @@
 DELETE_LIST = ['zope.app.boston',]
 IGNORED = BLACKLIST + DELETE_LIST
 
+wanted = []
 svn_list, _ = popen2.popen2("svn ls %s" % ZOPE3_SVN)
 for project in svn_list:
     project = project[:-2]
@@ -37,6 +43,7 @@
 extends = versions.cfg
 #versions = versions
 newest = true
+unzip = true
 parts = 
 """)
 makefile.write("""
@@ -60,14 +67,51 @@
 	$(CURDIR)/bin/$@
 """)
 
+def to_test(project, need_test):
+    if need_test:
+        return project + ' [test]'
+    return project
+
+kgs_env = Environment([EGG_CACHE,])
+kgs_ws = WorkingSet(kgs_env)
+trunk_env = Environment([DEVELOP_EGG,])
+
 for project in wanted:
+    print project
+    if not os.path.isdir(project):
+        os.system('svn co %s/%s/trunk %s' % (ZOPE3_SVN, project, project))
+
+    packages = kgs_env[project]
+    kgs_need_test = False
+    if not len(packages):
+        easy_install.install(project, EGG_CACHE, newest=NEWEST, working_set=kgs_ws)
+        packages = kgs_env[project]
+    kgs_need_test = 'test' in packages[0].extras
+
+    packages = trunk_env[project]
+    trunk_need_test = False
+    if not len(packages):
+        easy_install.develop(os.path.abspath(project), os.path.abspath(DEVELOP_EGG))
+        # Rescan evrything, trunk_env.scan don't seems to work
+        trunk_env = Environment([DEVELOP_EGG,])
+        packages = trunk_env[project]
+
+    trunk_need_test = 'test' in packages[0].extras
+
+    script_name = project.replace('.', '-')
+
     kgs_conf.write("""
 [test-%s]
 recipe = zc.recipe.testrunner
 eggs = %s
-""" % (project.replace('.', '-'), project))
+""" % (script_name, to_test(project, kgs_need_test)))
+    trunk_conf.write("""
+[test-%s]
+recipe = zc.recipe.testrunner
+eggs = %s
+""" % (script_name, to_test(project, trunk_need_test)))
 
-    if not os.path.isdir(project):
-        os.system('svn co svn://svn.zope.org/repos/main/%s/trunk %s' % (project, project))
 
-
+# Clean develop-eggs, otherwise if you choose KGS you still have trunk
+for path in os.listdir(DEVELOP_EGG):
+    os.remove(DEVELOP_EGG + '/' + path)



More information about the Checkins mailing list