Index: third_party/buildbot_8_4p1/buildbot/test/unit/test_status_builder_cache.py |
=================================================================== |
--- third_party/buildbot_8_4p1/buildbot/test/unit/test_status_builder_cache.py (revision 0) |
+++ third_party/buildbot_8_4p1/buildbot/test/unit/test_status_builder_cache.py (revision 0) |
@@ -0,0 +1,70 @@ |
+# This file is part of Buildbot. Buildbot is free software: you can |
+# redistribute it and/or modify it under the terms of the GNU General Public |
+# License as published by the Free Software Foundation, version 2. |
+# |
+# This program is distributed in the hope that it will be useful, but WITHOUT |
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
+# details. |
+# |
+# You should have received a copy of the GNU General Public License along with |
+# this program; if not, write to the Free Software Foundation, Inc., 51 |
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
+# |
+# Copyright Buildbot Team Members |
+ |
+import os |
+from mock import Mock |
+from twisted.trial import unittest |
+from buildbot.status import builder, master |
+ |
+class TestBuildStatus(unittest.TestCase): |
+ |
+ # that buildstep.BuildStepStatus is never instantiated here should tell you |
+ # that these classes are not well isolated! |
+ |
+ def setupBuilder(self, buildername, category=None): |
+ b = builder.BuilderStatus(buildername=buildername, category=category) |
+ # Awkwardly, Status sets this member variable. |
+ b.basedir = os.path.abspath(self.mktemp()) |
+ os.mkdir(b.basedir) |
+ # Otherwise, builder.nextBuildNumber is not defined. |
+ b.determineNextBuildNumber() |
+ # Must initialize these fields before pickling. |
+ b.currentBigState = 'idle' |
+ b.status = 'idle' |
+ return b |
+ |
+ def setupStatus(self, b): |
+ m = Mock() |
+ m.buildbotURL = 'http://buildbot:8010/' |
+ m.basedir = '/basedir' |
+ s = master.Status(m) |
+ b.status = s |
+ return s |
+ |
+ def testBuildCache(self): |
+ b = self.setupBuilder('builder_1') |
+ builds = [] |
+ for i in xrange(5): |
+ build = b.newBuild() |
+ build.setProperty('propkey', 'propval%d' % i, 'test') |
+ builds.append(build) |
+ build.buildStarted(build) |
+ build.buildFinished() |
+ for build in builds: |
+ build2 = b.getBuild(build.number) |
+ self.assertTrue(build2) |
+ self.assertEqual(build2.number, build.number) |
+ self.assertEqual(build.getProperty('propkey'), |
+ 'propval%d' % build.number) |
+ # Do another round, to make sure we're hitting the cache |
+ hits = b.buildCache.hits |
+ for build in builds: |
+ build2 = b.getBuild(build.number) |
+ self.assertTrue(build2) |
+ self.assertEqual(build2.number, build.number) |
+ self.assertEqual(build.getProperty('propkey'), |
+ 'propval%d' % build.number) |
+ self.assertEqual(b.buildCache.hits, hits+1) |
+ hits = hits + 1 |
Property changes on: third_party/buildbot_8_4p1/buildbot/test/unit/test_status_builder_cache.py |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |