52 Commits

Author SHA1 Message Date
Łukasz 'sil2100' Zemczak
32467742bd SRU ADT regression: use the right policy_info to determine if tests have regressed. 2019-08-28 18:29:45 +02:00
Łukasz 'sil2100' Zemczak
e51cc58a2b Switch logic of detecting failures to looking for failed tests in policy_info. Explicitly list all failing tests in the bug comment. Change wording. 2019-07-19 15:43:54 +02:00
Łukasz 'sil2100' Zemczak
1cbc21d258 SRU ADT regression: Fix state checking as now it again needs to include the info for distro and series. Add unit test. 2019-05-24 16:18:34 +02:00
Łukasz 'sil2100' Zemczak
49e3d7e51c SRU ADT regression: Remove the no-longer-needed state-file backup functionality as currently there's basically low risk that we'd crash mid-state-save. Add a test for this. 2019-05-23 19:08:29 +02:00
Iain Lane
c8492d4cc7
SRU ADT regression: Need to decode the returned bytes from urlopen() 2019-05-23 10:47:59 +01:00
Iain Lane
73dabf2136
SRU ADT tests: Fix tests after the previous changes
This is the problem when implementing to a mock...
2019-05-23 10:38:58 +01:00
Iain Lane
bb032d98d8
SRU ADT: Be clear when printing log messages in dry-run mode 2019-05-22 17:47:29 +01:00
Iain Lane
c1f8ab2f9c
SRU ADT tests: Be more idiomatic
Use @patch decorator instead of ExitStack context manager. This is more
consistent with the rest of the testsuite we have in britney.

Use some more idiomatic assertions, e.g.
unittest.mock.assert_not_called().
2019-05-22 17:47:18 +01:00
Łukasz 'sil2100' Zemczak
1690624d11
Add a new policy to message bugs on SRU regressions
It works like this. We wait until all tests have finished running. and
then grab their results. If there are any regressions, we mail each bug
with a link to pending-sru.html. There's a state file which records the
mails we've sent out, so that we don't mail the same bug multiple times.
2019-05-22 17:47:17 +01:00
Iain Lane
c12d92efa4
autopkgtest: Handle 'blacklisted' version
The apt version comparison sorts 'blacklisted' greater than most version
numbers, which means that we accidentally apply force hints for version
'blacklisted' to all uploads. Since this is the only case of a hacked
version number, let's special case it so that 'blacklisted' hints only
match packages with 'blacklisted' version.
2019-01-24 13:08:03 +00:00
Steve Langasek
bf26a09948 Fix autopkgtests wrt the fact that excuses is no longer in the yaml 2018-09-20 13:34:18 +00:00
Iain Lane
f2456289ac autopkgtest: Run gcc-n's testuite, if it has one 2018-09-06 15:30:12 +01:00
Iain Lane
3e1ee5a2ef sourceppa: Add some more logging so we can hopefully see what is going on 2018-07-31 17:42:27 +01:00
Mathieu Trudel-Lapierre
88b4d023ad Use the CSafeLoader YAML loader to catch issues with complex objects 2018-03-08 13:30:00 +01:00
Mathieu Trudel-Lapierre
f32907acea Fix review issues. 2018-03-08 11:11:44 +01:00
Mathieu Trudel-Lapierre
80bf9060de Re-add 'unsatisfiable dependencies' information which dropped with the excuses key. 2018-03-06 17:32:13 +01:00
Iain Lane
400a6c57c4 email: When there are multiple SPPHs, use the last one
We were just seeing an interesting crash in britney. It was trying to
look up the gpg_keys of ~python-modules-team, which is a suspended
account - in LP API terms that's a HTTP error 410.

  https://api.launchpad.net/devel/~python-modules-team/gpg_keys

The direct error was fixed in commit 272f41c, but we actually should
*not* have been trying to look up this team's email address in the first
place. This upload was an auto-sync and so should not cause email to be
sent. The problem is that it was synced into universe and then promoted
into main. We were looking at the SPPH for after the promotion, which
has different values in the various signer/creator/sponsor/... fields,
and that made us think that it was a regular upload to email about.

Fix this by always looking at the oldest SPPH which should correspond to
the initial upload and not whatever happened to it afterwards.
2017-11-09 13:04:33 +00:00
Steve Langasek
132ffaf465 Refine the logic for recording the nominal sent age of the mail
In the previous iteration, if we were ever down/frozen/disabled long enough
to miss sending two mails in a row, we would see unintended "catch-up"
behavior where each subsequent run of britney would send a mail until the
right total number of mails had been sent.  Don't do this; instead, catch us
up in one go to the most recent mail that should have been sent, avoiding
bunching of notifications.

This changes one of the tests also to match.
2017-07-06 21:14:19 -07:00
Steve Langasek
f680bb3df8 add a couple more tests to show how the email frequency varies with valid/invalid candidates 2017-06-29 12:53:05 -07:00
Steve Langasek
6459977822 Make it possible to test the email frequency for a package that is sometimes a valid candidate and sometimes not 2017-06-29 12:53:05 -07:00
Steve Langasek
64d9bdda91 Adjust the email tests to the intervals we expect 2017-06-29 11:17:04 -07:00
Robert Bruce Park
9c76c762cc Tweak recurring email frequency. 2017-04-06 22:30:30 -07:00
Robert Bruce Park
16cca9c55d Change SourcePPAPolicy from a blacklist to a whitelist. 2017-03-24 11:46:52 -07:00
Iain Lane
858775a3c1 email: Make REJECTED_TEMPORARILY packages be not emailed for
These are rejections that we expect to clear out on their own or convert
to REJECTED_PERMANENTLY, at which point we will email.

https://bugs.launchpad.net/britney/+bug/1671468
2017-03-23 11:10:14 +00:00
Iain Lane
e00d86ad26 email: If a package is blocked by an explicit block, don't mail 2017-03-22 17:00:38 +00:00
Iain Lane
8350694348 email: Add tests that send email through a mocked SMTP server
I want to fix two bugs in interactions between other parts of britney
and the email policy. It's not currently easy to do so because we just
run the policy itself manually by creating some fake excuses.

Steal part of the machinery from the autopkgtest tests, and run a few
tests through britney completely. Use a fake SMTP server to record which
emails we sent.

(The port is hardcoded - that might not be so smart.)
2017-03-22 16:59:50 +00:00
Robert Bruce Park
63573fa24a Resend emails periodically. 2017-03-22 09:50:50 -07:00
Iain Lane
322108df73 email: beef up the tests very slightly
- add a day/days case for '1' exactly
  - make some other daysold be non ints
2017-03-14 18:17:03 +00:00
Robert Bruce Park
0579677457 Stop writing "1 days" in emails. 2017-03-14 11:05:10 -07:00
Steve Langasek
442993d3f0 Merge remote-tracking branch 'robru/fix-sourceppa' 2017-03-09 14:59:40 -08:00
Iain Lane
7cc72bf2d6 email: For direct sponsored uploads, email both the sponsor and sponsoree 2017-03-09 17:16:21 +00:00
Robert Bruce Park
df495582e2 Fix SourcePPA policy by inspecting build_link instead. (LP: #1648000) 2017-03-09 09:06:25 -08:00
Robert Bruce Park
2775a5435c Email Policy, send emails when packages are rejected. 2017-03-09 09:53:17 +00:00
Iain Lane
fe627aaa15 autopkgtest: Don't request tests for new packages that FTBFS
These are treated separately by britney ('no-binaries' vs.
'missing-builds').
2017-03-02 10:28:22 +00:00
Iain Lane
d366288a7b test_autopkgtest: Remove Testsuite-Triggers
This way we are testing the synthesisted test-dep explicitly
2017-02-24 16:07:39 +00:00
Andy Whitcroft
e16195ef46 tests/test_autopkgtest.py: fix test package
Signed-off-by: Andy Whitcroft <apw@ubuntu.com>
2017-02-24 15:32:44 +00:00
Andy Whitcroft
71c8773b7d linux-meta: add synthetic dependancy for snapd
Signed-off-by: Andy Whitcroft <apw@canonical.com>
2017-02-24 14:27:43 +00:00
Iain Lane
766ed38d40 sourceppa: Refactor exception handling
Use a for loop for retrying instead of recursion, so we don't get nested
exceptions being thrown. Add a test for this flakiness.
2017-02-08 13:17:16 +00:00
Iain Lane
9661362880 sourceppa: Retry 5 times on HTTP 503s
We get these quite frequently from the LP API - have a few attempts.
2017-02-07 17:26:03 +00:00
Iain Lane
41d51369f5 autopkgtest: Accept packages which have dropped their tests in unstable
Currently we re-trigger all reverse binary dependencies of a package,
including binary packages built from the same source. We already
explicity trigger the source's own tests if they still exist in unstable
- don't also consider the source when looking at reverse dependencies.
2017-02-07 15:16:51 +00:00
Iain Lane
30b11ff4f9 test_autopkgtest: Test that blacklisted packages can be hinted over 2017-01-19 09:52:04 +00:00
Iain Lane
7946be64df test_autopkgtest: Make the version 'blacklisted', to be clearer 2017-01-19 09:51:40 +00:00
Iain Lane
6573a1a5af tests/test_autopkgtest: Make sure that blacklisted (code 99) packages are handled 2017-01-18 17:41:45 +00:00
Robert Bruce Park
c5c9c6f979 Reject packages if entire source ppa won't migrate 2016-12-12 11:38:47 +01:00
Martin Pitt
a217ea6ade Add "run-autopkgtest" tool to re-run tests 2016-12-12 11:33:45 +01:00
Martin Pitt
96df4080b9 Add autopkgtest policy
Add new autopkgtest policy: it determines the autopkgtests for a
source package (its own, direct reverse binary dependencies, and
Testsuite-Triggers), requests tests via AMQP, fetches results from swift, and
keeps track of pending tests between run. This also caches the downloaded
results from swift, as re-dowloading them all is very expensive.

This introduces two new hints:

 * force-badtest pkg/ver[/arch]: Failing results for that package will be
   ignored. This is useful to deal with broken tests that get imported from
   Debian or are from under-maintained packages, or broke due to some
   infrastructure changes. These are long-lived usually.

 * force-skiptest pkg/ver: Test results *triggered by* that package (i. e.
   reverse dependencies) will be ignored. This is mostly useful for landing
   packages that trigger a huge amount of tests (glibc, perl) where some tests
   are just too flaky to get them all passing, and one just wants to land it
   after the remaining failures have been checked. This should be used rarely
   and the hints should be removed immediately again.

Add integration tests that call britney in various scenarios on constructed
fake archives, with mocked AMQP and Swift results.
2016-12-12 11:33:45 +01:00
Dimitri John Ledkov
d2cde7de2b Teach excuse_unsat_deps() about components ogre model 2016-12-12 11:33:45 +01:00
Niels Thykier
bcdb2b39cd Add PiupartsPolicy to avoid piuparts regressions
Closes: Debian/britney2#16
Signed-off-by: Niels Thykier <niels@thykier.net>
2016-11-26 17:11:40 +00:00
Niels Thykier
d3e343a3bd AgePolicy: Fix bug in creating the age file
Signed-off-by: Niels Thykier <niels@thykier.net>
2016-11-22 20:21:06 +00:00
Niels Thykier
fc2269ba02 rc-bugs policy: Ignored bugs are not unique to testing
Signed-off-by: Niels Thykier <niels@thykier.net>
2016-11-22 20:21:06 +00:00