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 authored and Dustin J. Mitchell committed Jan 2, 2010
1 parent 08fc7d8 commit 0fc95d7
Showing 1 changed file with 25 additions and 14 deletions.
39 changes: 25 additions & 14 deletions buildbot/test/test_limitlogs.py
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 @@ -57,28 +57,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 @@ -94,8 +104,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 0fc95d7

Please sign in to comment.