Skip to content

Commit

Permalink
Merge pull request #1422 from benallard/pr/1417
Browse files Browse the repository at this point in the history
Pr/1417
  • Loading branch information
Mikhail Sobolev committed Dec 8, 2014
2 parents e09c7e1 + fdb2a88 commit 09b5057
Show file tree
Hide file tree
Showing 9 changed files with 21 additions and 17 deletions.
4 changes: 3 additions & 1 deletion master/buildbot/test/fake/fakemaster.py
Expand Up @@ -174,8 +174,10 @@ def subscribeToBuildRequests(self, callback):

# Leave this alias, in case we want to add more behavior later
def make_master(wantMq=False, wantDb=False, wantData=False,
testcase=None, **kwargs):
testcase=None, url=None, **kwargs):
master = FakeMaster(**kwargs)
if url:
master.buildbotURL = url
if wantData:
wantMq = wantDb = True
if wantMq:
Expand Down
3 changes: 1 addition & 2 deletions master/buildbot/test/integration/test_www.py
Expand Up @@ -76,7 +76,6 @@ def setUp(self):
port='tcp:0:interface=127.0.0.1',
debug=True,
auth=auth.NoAuth(),
url="not yet known",
avatar_methods=[],
logfileName='http.log')
master.www = wwwservice.WWWService(master)
Expand All @@ -87,7 +86,7 @@ def setUp(self):
# the config. The second reconfig isn't really required, but doesn't
# hurt.
self.url = 'http://127.0.0.1:%d/' % master.www.getPortnum()
master.config.www['url'] = self.url
master.config.buildbotURL = self.url
yield master.www.reconfigServiceWithBuildbotConfig(master.config)

self.master = master
Expand Down
6 changes: 3 additions & 3 deletions master/buildbot/test/unit/test_www_config.py
Expand Up @@ -38,16 +38,16 @@ def test_render(self):

res = yield self.render_resource(rsrc, '/')
_auth.maybeAutoLogin.assert_called_with(mock.ANY)
exp = '{"url": "h:/a/b/", "user": {"anonymous": true}, "auth": {"name": "NoAuth"}, "port": null}'
exp = '{"user": {"anonymous": true}, "auth": {"name": "NoAuth"}, "port": null}'
self.assertIn(res, exp)

master.session.user_info = dict(name="me", email="me@me.org")
res = yield self.render_resource(rsrc, '/')
exp = '{"url": "h:/a/b/", "user": {"email": "me@me.org", "name": "me"}, "auth": {"name": "NoAuth"}, "port": null}'
exp = '{"user": {"email": "me@me.org", "name": "me"}, "auth": {"name": "NoAuth"}, "port": null}'
self.assertIn(res, exp)

master = self.make_master(url='h:/a/c/', auth=_auth)
rsrc.reconfigResource(master.config)
res = yield self.render_resource(rsrc, '/')
exp = '{"url": "h:/a/c/", "user": {"anonymous": true}, "auth": {"name": "NoAuth"}, "port": null}'
exp = '{"user": {"anonymous": true}, "auth": {"name": "NoAuth"}, "port": null}'
self.assertIn(res, exp)
3 changes: 2 additions & 1 deletion master/buildbot/test/unit/test_www_service.py
Expand Up @@ -43,10 +43,11 @@ def setUp(self):

def makeConfig(self, **kwargs):
pwd = os.getcwd()
w = dict(url='h:/', port=None, public_html=pwd, auth=auth.NoAuth(), logfileName='l')
w = dict(port=None, public_html=pwd, auth=auth.NoAuth(), logfileName='l')
w.update(kwargs)
new_config = mock.Mock()
new_config.www = w
new_config.buildbotURL = 'h:/'
self.master.config = new_config
return new_config

Expand Down
6 changes: 4 additions & 2 deletions master/buildbot/test/util/www.py
Expand Up @@ -114,13 +114,15 @@ class RequiresWwwMixin(object):
class WwwTestMixin(RequiresWwwMixin):
UUID = str(uuid1())

def make_master(self, **kwargs):
def make_master(self, url=None, **kwargs):
master = fakemaster.make_master(wantData=True, testcase=self)
self.master = master
master.www = mock.Mock() # to handle the resourceNeedsReconfigs call
cfg = dict(url='//', port=None, auth=auth.NoAuth())
cfg = dict(port=None, auth=auth.NoAuth())
cfg.update(kwargs)
master.config.www = cfg
if url is not None:
master.config.buildbotURL = url
self.master.session = FakeSession()

return master
Expand Down
2 changes: 1 addition & 1 deletion master/buildbot/www/avatar.py
Expand Up @@ -47,7 +47,7 @@ class AvatarResource(resource.Resource):

def reconfigResource(self, new_config):
self.avatarMethods = new_config.www.get('avatar_methods', [])
self.defaultAvatarFullUrl = urljoin(new_config.www['url'], self.defaultAvatarUrl)
self.defaultAvatarFullUrl = urljoin(new_config.buildbotURL, self.defaultAvatarUrl)
self.cache = {}
# ensure the avatarMethods is a iterable
if isinstance(self.avatarMethods, AvatarBase):
Expand Down
8 changes: 4 additions & 4 deletions master/buildbot/www/oauth2.py
Expand Up @@ -15,14 +15,14 @@

import requests

from urllib import urlencode
from urlparse import parse_qs
from buildbot.util import json
from buildbot.www import auth
from buildbot.www import resource
from posixpath import join
from twisted.internet import defer
from twisted.internet import threads
from urllib import urlencode
from urlparse import parse_qs


class OAuth2LoginResource(auth.LoginResource):
Expand Down Expand Up @@ -69,8 +69,8 @@ def __init__(self,

def reconfigAuth(self, master, new_config):
self.master = master
self.loginUri = join(new_config.www['url'], "auth/login")
self.homeUri = new_config.www['url']
self.loginUri = join(new_config.buildbotURL, "auth/login")
self.homeUri = new_config.buildbotURL

def getConfigDict(self):
return dict(name=self.name,
Expand Down
2 changes: 1 addition & 1 deletion master/buildbot/www/resource.py
Expand Up @@ -39,7 +39,7 @@ class Resource(resource.Resource):

@property
def base_url(self):
return self.master.config.www['url']
return self.master.config.buildbotURL

def __init__(self, master):
resource.Resource.__init__(self)
Expand Down
4 changes: 2 additions & 2 deletions master/buildbot/www/rest.py
Expand Up @@ -374,8 +374,8 @@ def writeError(msg, errcode=404, jsonrpccode=None):
request.write(data)

def reconfigResource(self, new_config):
# www['url'] will always ends with a '/', not the Origin header.
origin_self = new_config.www['url'].rstrip('/')
# buildbotURL will always ends with a '/', not the Origin header.
origin_self = new_config.buildbotURL.rstrip('/')
# pre-translate the origin entries in the config
self.origins = [re.compile(fnmatch.translate(o.lower()))
for o in new_config.www.get('allowed_origins',
Expand Down

0 comments on commit 09b5057

Please sign in to comment.