[pypy-svn] r60897 - in pypy/build/bot2/pypybuildbot: . test

pedronis at codespeak.net pedronis at codespeak.net
Mon Jan 12 01:39:55 CET 2009


Author: pedronis
Date: Mon Jan 12 01:39:53 2009
New Revision: 60897

Modified:
   pypy/build/bot2/pypybuildbot/summary.py
   pypy/build/bot2/pypybuildbot/test/test_summary.py
Log:
tentative support for disambiguating multiple repos, avoiding implicitly named trunk in the summary



Modified: pypy/build/bot2/pypybuildbot/summary.py
==============================================================================
--- pypy/build/bot2/pypybuildbot/summary.py	(original)
+++ pypy/build/bot2/pypybuildbot/summary.py	Mon Jan 12 01:39:53 2009
@@ -497,6 +497,7 @@
     def __init__(self):
         HtmlResource.__init__(self)
         self.putChild('longrepr', LongRepr())
+        self._defaultBranchCache = {}
 
     def getTitle(self, request):
         status = self.getStatus(request)        
@@ -509,6 +510,30 @@
             for rev in sorted(runs.keys())[:-cutnum]:
                 del runs[rev]
 
+    def _fish_defaultBranch(self, status, builderName):
+        try:
+            return self._defaultBranchCache[builderName]
+        except KeyError:
+            pass
+        builder = status.botmaster.builders[builderName]
+        branch = None
+        for _, kw in builder.buildFactory.steps:
+            if 'defaultBranch' in kw:
+                if kw.get('explicitBranch'):
+                    branch = kw['defaultBranch']
+                break
+        self._defaultBranchCache[builderName] = branch
+        return branch
+
+    def _get_branch(self, status, build):
+        branch = getProp(build, 'explicitBranch')
+        # fish
+        if branch is None:
+            builderName = build.getBuilder().getName()
+            branch = self._fish_defaultBranch(status, builderName)
+            branch = branch or getProp(build, 'branch')
+        return branch
+
     def recentRuns(self, status, only_recentrevs=None, only_branches=None,
                                  only_builder=None, only_builds=None):
         test_rev = make_test(only_recentrevs)
@@ -533,7 +558,7 @@
                 builditer = builderStatus.generateFinishedBuilds(num_builds=5*N)
             
             for build in builditer:
-                branch = getProp(build, 'branch')
+                branch = self._get_branch(status, build)
                 if not test_branch(branch):
                     continue
                 got_rev = getProp(build, 'got_revision', None)

Modified: pypy/build/bot2/pypybuildbot/test/test_summary.py
==============================================================================
--- pypy/build/bot2/pypybuildbot/test/test_summary.py	(original)
+++ pypy/build/bot2/pypybuildbot/test/test_summary.py	Mon Jan 12 01:39:53 2009
@@ -1,6 +1,8 @@
 from zope.interface import implements
 from buildbot import interfaces as buildbot_intefaces
 from buildbot.status import builder as status_builder
+from buildbot.process import builder as process_builder
+from buildbot.process import factory as process_factory
 from pypybuildbot import summary
 from StringIO import StringIO
 import re
@@ -267,10 +269,11 @@
     res = summary.show_elapsed(90*60)
     assert res == "1h30"                
 
-class _BuilderToStatus(object):
+def _BuilderToStatus(status):
 
-    def __init__(self, status):
-        self.builder_status = status
+    setup = {'name': 'builder', 'builddir': 'BUILDDIR',
+             'factory': process_factory.BuildFactory() }
+    return process_builder.Builder(setup, status)
 
 class FakeRequest(object):
 



More information about the Pypy-commit mailing list