Skip to content

Commit

Permalink
Merge pull request #2337 from tardyp/forcebuild_noauth
Browse files Browse the repository at this point in the history
forcesched: fix owner parameter when no authentication is used
  • Loading branch information
Mikhail Sobolev committed Aug 12, 2016
2 parents 98ab556 + ff46707 commit 2f5727b
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 27 deletions.
12 changes: 6 additions & 6 deletions master/buildbot/schedulers/forcesched.py
Expand Up @@ -12,7 +12,6 @@
# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Copyright Buildbot Team Members
import email.utils as email_utils
import re
import traceback

Expand All @@ -23,6 +22,7 @@

from buildbot import config
from buildbot.process.properties import Properties
from buildbot.reporters.mail import VALID_EMAIL_ADDR
from buildbot.schedulers import base
from buildbot.util import identifiers
from buildbot.worker_transition import deprecatedWorkerModuleAttribute
Expand Down Expand Up @@ -264,8 +264,8 @@ def parse_from_arg(self, s):
if not s and not self.required:
return s
if self.need_email:
e = email_utils.parseaddr(s)
if e[0] == '' or e[1] == '':
res = VALID_EMAIL_ADDR.search(s)
if res is None:
raise ValidationError("%s: please fill in email address in the "
"form 'User <email@email.com>'" % (self.name,))
return s
Expand Down Expand Up @@ -768,9 +768,9 @@ def force(self, owner, builderNames=None, builderid=None, **kwargs):
collector = ValidationErrorCollector()
reason = yield collector.collectValidationErrors(self.reason.fullName,
self.reason.getFromKwargs, kwargs)
if owner is None:
owner = yield collector.collectValidationErrors(self.owner.fullName,
self.owner.getFromKwargs, kwargs)
if owner is None or owner == "anonymous":
owner = yield collector.collectValidationErrors(self.username.fullName,
self.username.getFromKwargs, kwargs)

properties, changeids, sourcestamps = yield self.gatherPropertiesAndChanges(
collector, **kwargs)
Expand Down
37 changes: 18 additions & 19 deletions master/buildbot/test/unit/test_schedulers_forcesched.py
Expand Up @@ -441,26 +441,25 @@ def test_UserNameParameter(self):
'"label": "Your name:", "tablabel": "Your name:", "hide": false, '
'"fullName": "username", "type": "username", "size": 30}')

def test_UserNameParameterErrorTestIsInvalidMail(self):
self.do_ParameterTest(value="test",
expect=CollectedValidationError,
expectKind=Exception,
klass=UserNameParameter(debug=False),
name="username", label="Your name:")

def test_UserNameParameterErrorTestAtBuildbotInvalidMail(self):
self.do_ParameterTest(value="test@buildbot.net",
expect=CollectedValidationError,
expectKind=Exception,
klass=UserNameParameter(debug=False),
name="username", label="Your name:")
def test_UserNameParameterIsValidMail(self):
email = "test@buildbot.net"
self.do_ParameterTest(value=email, expect=email,
klass=UserNameParameter(),
name="username", label="Your name:",
expectJson='{"regex": null, "need_email": true, "multiple": false, '
'"name": "username", "default": "", "required": false, '
'"label": "Your name:", "tablabel": "Your name:", "hide": false, '
'"fullName": "username", "type": "username", "size": 30}')

def test_UserNameParameterErrorTestAtBuildbotBisInvalidMail(self):
self.do_ParameterTest(value="<test@buildbot.net>",
expect=CollectedValidationError,
expectKind=Exception,
klass=UserNameParameter(debug=False),
name="username", label="Your name:")
def test_UserNameParameterIsValidMailBis(self):
email = "<test@buildbot.net>"
self.do_ParameterTest(value=email, expect=email,
klass=UserNameParameter(),
name="username", label="Your name:",
expectJson='{"regex": null, "need_email": true, "multiple": false, '
'"name": "username", "default": "", "required": false, '
'"label": "Your name:", "tablabel": "Your name:", "hide": false, '
'"fullName": "username", "type": "username", "size": 30}')

def test_ChoiceParameter(self):
self.do_ParameterTest(value='t1', expect='t1',
Expand Down
@@ -1,7 +1,8 @@
.modal-content
.modal-header
h4 {{sch.label}}
.modal-body
// put the header in the body in order to correctly display error popup
h4 {{sch.label}}
hr
div.form-horizontal
.alert.alert-danger(ng-show="error") {{error}}
forcefield(field="rootfield" ng-if="rootfield")
Expand Down

0 comments on commit 2f5727b

Please sign in to comment.