mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-05-08 00:51:36 +00:00
Allow hints for ignoring boottest results (force and force-skiptest).
This commit is contained in:
parent
eeaf8e3deb
commit
913539ffe9
15
britney.py
15
britney.py
@ -1911,6 +1911,21 @@ class Britney(object):
|
|||||||
status, 'UNKNOWN STATUS')
|
status, 'UNKNOWN STATUS')
|
||||||
excuse.addhtml("boottest for %s %s: %s" %
|
excuse.addhtml("boottest for %s %s: %s" %
|
||||||
(binary_name, excuse.ver[1], label))
|
(binary_name, excuse.ver[1], label))
|
||||||
|
# Allows hints to force boottest failures/attempts
|
||||||
|
# to be ignored.
|
||||||
|
hints = self.hints.search('force', package=excuse.name)
|
||||||
|
hints.extend(
|
||||||
|
self.hints.search(
|
||||||
|
'force-skiptest', package=excuse.name))
|
||||||
|
forces = [
|
||||||
|
x for x in hints
|
||||||
|
if same_source(excuse.ver[1], x.version)]
|
||||||
|
if forces:
|
||||||
|
e.addhtml(
|
||||||
|
"Should wait for %s %s boottest, but forced by "
|
||||||
|
"%s" % (binary_name, excuse.ver[1],
|
||||||
|
forces[0].user))
|
||||||
|
status = 'PASS'
|
||||||
statuses.add(status)
|
statuses.add(status)
|
||||||
# No boottest attemps requested, it's not relevant in this
|
# No boottest attemps requested, it's not relevant in this
|
||||||
# context, rely on other checks to judge promotion.
|
# context, rely on other checks to judge promotion.
|
||||||
|
@ -164,6 +164,48 @@ class TestBoottestEnd2End(TestBase):
|
|||||||
BootTest.EXCUSE_LABELS['FAIL']),
|
BootTest.EXCUSE_LABELS['FAIL']),
|
||||||
'<li>Not considered'])
|
'<li>Not considered'])
|
||||||
|
|
||||||
|
def create_hint(self, username, content):
|
||||||
|
"""Populates a hint file for the given 'username' with 'content'."""
|
||||||
|
hints_path = os.path.join(
|
||||||
|
self.data.path,
|
||||||
|
'data/{}-proposed/Hints/{}'.format(self.data.series, username))
|
||||||
|
with open(hints_path, 'w') as fd:
|
||||||
|
fd.write(content)
|
||||||
|
|
||||||
|
def test_fail_but_forced_by_hints(self):
|
||||||
|
# `Britney` allows boottests results to be ignored by hinting the
|
||||||
|
# corresponding source with 'force' or 'force-skiptest'. The boottest
|
||||||
|
# attempt will still be requested and its results would be considered
|
||||||
|
# for other non-forced sources.
|
||||||
|
context = [
|
||||||
|
('pyqt5', {'Source': 'pyqt5-src', 'Version': '1.1',
|
||||||
|
'Architecture': 'all'}),
|
||||||
|
]
|
||||||
|
self.create_hint('cjwatson', 'force pyqt5-src/1.1')
|
||||||
|
self.do_test(
|
||||||
|
context,
|
||||||
|
[r'\bpyqt5-src\b.*\(- to .*>1.1<',
|
||||||
|
'<li>boottest for pyqt5 1.1: {}'.format(
|
||||||
|
BootTest.EXCUSE_LABELS['FAIL']),
|
||||||
|
'<li>Should wait for pyqt5 1.1 boottest, but forced by cjwatson',
|
||||||
|
'<li>Valid candidate'])
|
||||||
|
|
||||||
|
def test_fail_but_skipped_by_hints(self):
|
||||||
|
# See `test_fail_but_forced_by_hints`.
|
||||||
|
context = [
|
||||||
|
('green', {'Source': 'green', 'Version': '1.1~beta',
|
||||||
|
'Architecture': 'armhf', 'Depends': 'libc6 (>= 0.9)'}),
|
||||||
|
]
|
||||||
|
self.create_hint('cjwatson', 'force-skiptest green/1.1~beta')
|
||||||
|
self.do_test(
|
||||||
|
context,
|
||||||
|
[r'\bgreen\b.*>1</a> to .*>1.1~beta<',
|
||||||
|
'<li>boottest for green 1.1~beta: {}'.format(
|
||||||
|
BootTest.EXCUSE_LABELS['RUNNING']),
|
||||||
|
'<li>Should wait for green 1.1~beta boottest, but forced '
|
||||||
|
'by cjwatson',
|
||||||
|
'<li>Valid candidate'])
|
||||||
|
|
||||||
def test_skipped_not_on_phone(self):
|
def test_skipped_not_on_phone(self):
|
||||||
# `Britney` updates boottesting information in excuses when the
|
# `Britney` updates boottesting information in excuses when the
|
||||||
# package was skipped and marks the package as a valid candidate for
|
# package was skipped and marks the package as a valid candidate for
|
||||||
|
Loading…
x
Reference in New Issue
Block a user