Skip to content

Commit

Permalink
test_limitlogs: don't assume we can run scripts directly
Browse files Browse the repository at this point in the history
  • Loading branch information
marcus-sonestedt committed Dec 25, 2009
1 parent 1214db0 commit 7ef9271
Showing 1 changed file with 25 additions and 14 deletions.
39 changes: 25 additions & 14 deletions buildbot/test/test_limitlogs.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from twisted.trial import unittest
from twisted.internet import reactor, defer
from twisted.internet.utils import getProcessValue, getProcessOutput
from twisted.internet.utils import getProcessOutputAndValue, getProcessOutput
import twisted
from twisted.python.versions import Version
from twisted.python.procutils import which
Expand Down Expand Up @@ -53,28 +53,38 @@ def setUp(self):
raise unittest.SkipTest("Twisted 8.2.0 or higher required")
self.setUpSignalHandler()

# assume python is running
import buildbot, sys
self.pythonexe = sys.executable
bb_path = os.path.dirname(buildbot.__path__[0])
self.buildbotexe = os.sep.join([bb_path, 'bin', 'buildbot'])
self.env = os.environ
if not bb_path in os.environ['PYTHONPATH'].split(os.pathsep):
self.env['PYTHONPATH'] = bb_path + os.pathsep + self.env['PYTHONPATH']

def tearDown(self):
self.tearDownSignalHandler()

def testLog(self):
exes = which('buildbot')
if not exes:
raise unittest.SkipTest("Buildbot needs to be installed")
self.buildbotexe = exes[0]
d = getProcessValue(self.buildbotexe,
['create-master', '--log-size=1000', '--log-count=2',
'master'])
d = getProcessOutputAndValue(self.pythonexe,
[self.buildbotexe, 'create-master', '--log-size=1000', '--log-count=2',
'master'], env=self.env)
d.addCallback(self._master_created)
return d

def _master_created(self, res):
open('master/master.cfg', 'w').write(master_cfg)
d = getProcessOutput(self.buildbotexe,
['start', 'master'])
def _master_created(self, r):
out, err, res = r
self.failIf(res != 0, "create-master failed:\nstdout: %s\nstderr: %s" % (out, err))
open(os.path.join('master', 'master.cfg'), 'w').write(master_cfg)
d = getProcessOutputAndValue(self.pythonexe,
[self.buildbotexe, 'start', 'master'],
env=self.env)
d.addBoth(self._master_running)
return d

def _master_running(self, res):
out, err, res = r
self.failIf(res != 0, "start master failed:\nstdout: %s\nstderr: %s" % (out, err))
self.addCleanup(self._stop_master)
d = defer.Deferred()
reactor.callLater(2, d.callback, None)
Expand All @@ -90,8 +100,9 @@ def _do_tests(self, rv):
self.failUnless(firstline.endswith("this is a mighty long string and I am going to write it into the log often\n"))

def _stop_master(self):
d = getProcessOutput(self.buildbotexe,
['stop', 'master'])
d = getProcessOutput(self.pythonexe,
[self.buildbotexe, 'stop', 'master'],
env=self.env)
d.addBoth(self._master_stopped)
return d

Expand Down

0 comments on commit 7ef9271

Please sign in to comment.