[Buildbot-commits] buildbot/buildbot/test test_webparts.py, NONE, 1.1 test_web.py, 1.48, 1.49
Brian Warner
warner at users.sourceforge.net
Fri Sep 28 09:33:33 UTC 2007
- Previous message (by thread): [Buildbot-commits] buildbot ChangeLog,1.935,1.936
- Next message (by thread): [Buildbot-commits] buildbot/buildbot/status/web base.py, 1.12, 1.13 baseweb.py, 1.21, 1.22 build.py, 1.11, 1.12 builder.py, 1.9, 1.10 changes.py, 1.3, 1.4 logs.py, 1.5, 1.6 slaves.py, 1.2, 1.3 step.py, 1.5, 1.6 tests.py, 1.3, 1.4 waterfall.py, 1.20, 1.21
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/buildbot/buildbot/buildbot/test
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv11817/buildbot/test
Modified Files:
test_web.py
Added Files:
test_webparts.py
Log Message:
[project @ web: big cleanup of URL generation, to use relative links everywhere]
Original author: warner at lothar.com
Date: 2007-09-28 09:08:11+00:00
Index: test_web.py
===================================================================
RCS file: /cvsroot/buildbot/buildbot/buildbot/test/test_web.py,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- test_web.py 7 Aug 2007 19:21:40 -0000 1.48
+++ test_web.py 28 Sep 2007 09:33:31 -0000 1.49
@@ -34,11 +34,18 @@
base_config = """
+from buildbot.changes.pb import PBChangeSource
from buildbot.status import html
+from buildbot.buildslave import BuildSlave
+from buildbot.scheduler import Scheduler
+from buildbot.process.factory import BuildFactory
+
BuildmasterConfig = c = {
- 'slaves': [],
- 'schedulers': [],
- 'builders': [],
+ 'change_source': PBChangeSource(),
+ 'slaves': [BuildSlave('bot1name', 'bot1passwd')],
+ 'schedulers': [Scheduler('name', None, 60, ['builder1'])],
+ 'builders': [{'name': 'builder1', 'slavename': 'bot1name',
+ 'builddir': 'builder1', 'factory': BuildFactory()}],
'slavePortnum': 0,
}
"""
@@ -108,8 +115,8 @@
class BaseWeb:
master = None
- def failUnlessIn(self, substr, string):
- self.failUnless(string.find(substr) != -1)
+ def failUnlessIn(self, substr, string, note=None):
+ self.failUnless(string.find(substr) != -1, note)
def tearDown(self):
stopHTTPLog()
@@ -272,7 +279,11 @@
s = setupBuildStepStatus("test_web.test_urls")
s.addURL("coverage", "http://coverage.example.org/target")
s.addURL("icon", "http://coverage.example.org/icon.png")
- box = waterfall.IBox(s).getBox()
+ class FakeRequest:
+ def childLink(self, name):
+ return name
+ req = FakeRequest()
+ box = waterfall.IBox(s).getBox(req)
td = box.td()
e1 = '[<a href="http://coverage.example.org/target" class="BuildStep external">coverage</a>]'
self.failUnlessSubstring(e1, td)
--- NEW FILE: test_webparts.py ---
import os
from twisted.trial import unittest
from twisted.internet import defer
from twisted.web import client
from twisted.web.error import Error as WebError
from buildbot.slave.commands import rmdirRecursive
from buildbot.status import html
from test_web import BaseWeb, base_config, ConfiguredMaster
from buildbot.scripts import runner
class Webparts(BaseWeb, unittest.TestCase):
def find_webstatus(self, master):
return filter(lambda child: isinstance(child, html.WebStatus),
list(master))
def startMaster(self, extraconfig):
config = base_config + extraconfig
rmdirRecursive("test_webparts")
os.mkdir("test_webparts")
runner.upgradeMaster({'basedir': "test_webparts",
'quiet': True,
})
self.master = m = ConfiguredMaster("test_webparts", config)
m.startService()
# hack to find out what randomly-assigned port it is listening on
port = list(self.find_webstatus(m)[0])[0]._port.getHost().port
self.baseurl = "http://localhost:%d/" % port
def getAndCheck(self, url, substring, show=False):
d = client.getPage(url)
def _show_weberror(why):
why.trap(WebError)
self.fail("error for %s: %s" % (url, why))
d.addErrback(_show_weberror)
d.addCallback(self._getAndCheck, substring, show)
return d
def _getAndCheck(self, page, substring, show):
if show:
print page
self.failUnlessIn(substring, page,
"Couldn't find substring '%s' in page:\n%s" %
(substring, page))
def testInit(self):
extraconfig = """
from twisted.web import static
ws = html.WebStatus(http_port=0)
c['status'] = [ws]
ws.putChild('child.html', static.Data('I am the child', 'text/plain'))
"""
self.startMaster(extraconfig)
d = self.getAndCheck(self.baseurl + "child.html",
"I am the child")
return d
testInit.timeout = 10
def testStatic(self):
extraconfig = """
from twisted.web import static
ws = html.WebStatus(http_port=0)
c['status'] = [ws]
ws.putChild('child.html', static.Data('I am the child', 'text/plain'))
"""
self.startMaster(extraconfig)
os.mkdir(os.path.join("test_webparts", "public_html", "subdir"))
f = open(os.path.join("test_webparts", "public_html", "foo.html"), "wt")
f.write("see me foo\n")
f.close()
f = open(os.path.join("test_webparts", "public_html", "subdir",
"bar.html"), "wt")
f.write("see me subdir/bar\n")
f.close()
d = self.getAndCheck(self.baseurl + "child.html", "I am the child")
d.addCallback(lambda res:
self.getAndCheck(self.baseurl+"foo.html",
"see me foo"))
d.addCallback(lambda res:
self.getAndCheck(self.baseurl+"subdir/bar.html",
"see me subdir/bar"))
return d
def _check(self, res, suburl, substring, show=False):
d = self.getAndCheck(self.baseurl + suburl, substring, show)
return d
def testPages(self):
extraconfig = """
ws = html.WebStatus(http_port=0)
c['status'] = [ws]
"""
self.startMaster(extraconfig)
d = defer.succeed(None)
d.addCallback(self._check, "", "Welcome to the Buildbot")
d.addCallback(self._check, "waterfall", "current activity")
d.addCallback(self._check, "about", "Buildbot is a free software")
d.addCallback(self._check, "changes", "PBChangeSource listener")
d.addCallback(self._check, "buildslaves", "Build Slaves")
d.addCallback(self._check, "one_line_per_build",
"Last 20 finished builds")
d.addCallback(self._check, "one_box_per_builder", "Latest builds")
d.addCallback(self._check, "builders", "Builders")
d.addCallback(self._check, "builders/builder1", "Builder: builder1")
d.addCallback(self._check, "builders/builder1/builds", "") # dummy
# TODO: the pages beyond here would be great to test, but that would
# require causing a build to complete.
#d.addCallback(self._check, "builders/builder1/builds/1", "")
#d.addCallback(self._check, "builders/builder1/builds/1/steps", "")
#d.addCallback(self._check,
# "builders/builder1/builds/1/steps/compile", "")
#d.addCallback(self._check,
# "builders/builder1/builds/1/steps/compile/logs", "")
#d.addCallback(self._check,
# "builders/builder1/builds/1/steps/compile/logs/stdio","")
#d.addCallback(self._check,
# "builders/builder1/builds/1/steps/compile/logs/stdio/text", "")
return d
- Previous message (by thread): [Buildbot-commits] buildbot ChangeLog,1.935,1.936
- Next message (by thread): [Buildbot-commits] buildbot/buildbot/status/web base.py, 1.12, 1.13 baseweb.py, 1.21, 1.22 build.py, 1.11, 1.12 builder.py, 1.9, 1.10 changes.py, 1.3, 1.4 logs.py, 1.5, 1.6 slaves.py, 1.2, 1.3 step.py, 1.5, 1.6 tests.py, 1.3, 1.4 waterfall.py, 1.20, 1.21
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Commits
mailing list