Merge lp:~cjwatson/launchpad/das-filter-honour into lp:launchpad

Proposed by Colin Watson
Status: Merged
Merged at revision: 19059
Proposed branch: lp:~cjwatson/launchpad/das-filter-honour
Merge into: lp:launchpad
Prerequisite: lp:~cjwatson/launchpad/das-filter-model
Diff against target: 114 lines (+34/-2)
3 files modified
database/schema/security.cfg (+5/-0)
lib/lp/soyuz/model/binarypackagebuild.py (+2/-1)
lib/lp/soyuz/tests/test_build_set.py (+27/-1)
To merge this branch: bzr merge lp:~cjwatson/launchpad/das-filter-honour
Reviewer Review Type Date Requested Status
William Grant code Approve
Review via email: mp+372263@code.launchpad.net

Commit message

Honour DistroArchSeriesFilter rows when creating package builds.

To post a comment you must log in.
Revision history for this message
William Grant (wgrant) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'database/schema/security.cfg'
--- database/schema/security.cfg 2019-09-04 14:08:44 +0000
+++ database/schema/security.cfg 2019-09-04 14:08:44 +0000
@@ -912,6 +912,7 @@
912public.distributionjob = SELECT, INSERT, DELETE912public.distributionjob = SELECT, INSERT, DELETE
913public.distributionsourcepackage = SELECT, INSERT, UPDATE913public.distributionsourcepackage = SELECT, INSERT, UPDATE
914public.distributionsourcepackagecache = SELECT, INSERT, UPDATE, DELETE914public.distributionsourcepackagecache = SELECT, INSERT, UPDATE, DELETE
915public.distroarchseriesfilter = SELECT
915public.distroseriesdifference = SELECT916public.distroseriesdifference = SELECT
916public.distroseriesparent = SELECT, INSERT, UPDATE917public.distroseriesparent = SELECT, INSERT, UPDATE
917public.flatpackagesetinclusion = SELECT, INSERT, UPDATE, DELETE918public.flatpackagesetinclusion = SELECT, INSERT, UPDATE, DELETE
@@ -970,6 +971,7 @@
970public.componentselection = SELECT971public.componentselection = SELECT
971public.distribution = SELECT, UPDATE972public.distribution = SELECT, UPDATE
972public.distroarchseries = SELECT, UPDATE973public.distroarchseries = SELECT, UPDATE
974public.distroarchseriesfilter = SELECT
973public.distroseries = SELECT, UPDATE975public.distroseries = SELECT, UPDATE
974public.distroseriesparent = SELECT976public.distroseriesparent = SELECT
975public.emailaddress = SELECT977public.emailaddress = SELECT
@@ -1117,6 +1119,7 @@
1117public.distributionsourcepackage = SELECT, INSERT, UPDATE1119public.distributionsourcepackage = SELECT, INSERT, UPDATE
1118public.distributionsourcepackagecache = SELECT, INSERT, UPDATE1120public.distributionsourcepackagecache = SELECT, INSERT, UPDATE
1119public.distroarchseries = SELECT, INSERT1121public.distroarchseries = SELECT, INSERT
1122public.distroarchseriesfilter = SELECT
1120public.distroseries = SELECT, UPDATE1123public.distroseries = SELECT, UPDATE
1121public.distroseriesdifference = SELECT1124public.distroseriesdifference = SELECT
1122public.distroseriesdifferencemessage = SELECT, INSERT, UPDATE1125public.distroseriesdifferencemessage = SELECT, INSERT, UPDATE
@@ -1390,6 +1393,7 @@
1390public.distributionsourcepackage = SELECT, INSERT, UPDATE1393public.distributionsourcepackage = SELECT, INSERT, UPDATE
1391public.distributionsourcepackagecache = SELECT, INSERT, UPDATE1394public.distributionsourcepackagecache = SELECT, INSERT, UPDATE
1392public.distroarchseries = SELECT1395public.distroarchseries = SELECT
1396public.distroarchseriesfilter = SELECT
1393public.distroseries = SELECT, UPDATE1397public.distroseries = SELECT, UPDATE
1394public.distroseriesparent = SELECT1398public.distroseriesparent = SELECT
1395public.emailaddress = SELECT, INSERT, UPDATE1399public.emailaddress = SELECT, INSERT, UPDATE
@@ -1505,6 +1509,7 @@
1505public.distributionsourcepackage = SELECT, INSERT, UPDATE1509public.distributionsourcepackage = SELECT, INSERT, UPDATE
1506public.distributionsourcepackagecache = SELECT, INSERT, UPDATE1510public.distributionsourcepackagecache = SELECT, INSERT, UPDATE
1507public.distroarchseries = SELECT1511public.distroarchseries = SELECT
1512public.distroarchseriesfilter = SELECT
1508public.distroseries = SELECT1513public.distroseries = SELECT
1509public.distroseriesdifference = SELECT1514public.distroseriesdifference = SELECT
1510public.distroseriesparent = SELECT1515public.distroseriesparent = SELECT
15111516
=== modified file 'lib/lp/soyuz/model/binarypackagebuild.py'
--- lib/lp/soyuz/model/binarypackagebuild.py 2019-05-01 15:47:37 +0000
+++ lib/lp/soyuz/model/binarypackagebuild.py 2019-09-04 14:08:44 +0000
@@ -1337,7 +1337,8 @@
1337 archive,1337 archive,
1338 architectures_available1338 architectures_available
1339 or distroseries.buildable_architectures)1339 or distroseries.buildable_architectures)
1340 if das.architecturetag not in skip_archtags],1340 if das.architecturetag not in skip_archtags and
1341 das.isSourceIncluded(sourcepackagerelease.sourcepackagename)],
1341 key=attrgetter('processor.id'))1342 key=attrgetter('processor.id'))
1342 nominated_arch_indep_tag = (1343 nominated_arch_indep_tag = (
1343 distroseries.nominatedarchindep.architecturetag1344 distroseries.nominatedarchindep.architecturetag
13441345
=== modified file 'lib/lp/soyuz/tests/test_build_set.py'
--- lib/lp/soyuz/tests/test_build_set.py 2018-02-02 03:14:35 +0000
+++ lib/lp/soyuz/tests/test_build_set.py 2019-09-04 14:08:44 +0000
@@ -1,4 +1,4 @@
1# Copyright 2011-2018 Canonical Ltd. This software is licensed under the1# Copyright 2011-2019 Canonical Ltd. This software is licensed under the
2# GNU Affero General Public License version 3 (see the file LICENSE).2# GNU Affero General Public License version 3 (see the file LICENSE).
33
4from __future__ import absolute_import, print_function, unicode_literals4from __future__ import absolute_import, print_function, unicode_literals
@@ -13,6 +13,7 @@
13from lp.registry.interfaces.pocket import PackagePublishingPocket13from lp.registry.interfaces.pocket import PackagePublishingPocket
14from lp.soyuz.enums import (14from lp.soyuz.enums import (
15 ArchivePurpose,15 ArchivePurpose,
16 DistroArchSeriesFilterSense,
16 SourcePackageFormat,17 SourcePackageFormat,
17 )18 )
18from lp.soyuz.interfaces.binarypackagebuild import (19from lp.soyuz.interfaces.binarypackagebuild import (
@@ -32,6 +33,7 @@
32 person_logged_in,33 person_logged_in,
33 TestCaseWithFactory,34 TestCaseWithFactory,
34 )35 )
36from lp.testing.dbuser import lp_dbuser
35from lp.testing.layers import (37from lp.testing.layers import (
36 LaunchpadFunctionalLayer,38 LaunchpadFunctionalLayer,
37 ZopelessDatabaseLayer,39 ZopelessDatabaseLayer,
@@ -559,6 +561,30 @@
559 new_builds = self.createBuilds(spr, self.distroseries)561 new_builds = self.createBuilds(spr, self.distroseries)
560 self.assertBuildsMatch({}, new_builds)562 self.assertBuildsMatch({}, new_builds)
561563
564 def test_createForSource_honours_filters(self):
565 # If there are DistroArchSeriesFilters for some architectures,
566 # createForSource honours them.
567 sprs = [
568 self.factory.makeSourcePackageRelease(architecturehintlist='any')
569 for _ in range(3)]
570 with lp_dbuser():
571 avr_filter = self.factory.makeDistroArchSeriesFilter(
572 distroarchseries=self.distroseries2.getDistroArchSeries('avr'),
573 sense=DistroArchSeriesFilterSense.INCLUDE)
574 sparc_filter = self.factory.makeDistroArchSeriesFilter(
575 distroarchseries=self.distroseries2.getDistroArchSeries(
576 'sparc'),
577 sense=DistroArchSeriesFilterSense.EXCLUDE)
578 avr_filter.packageset.add(
579 [spr.sourcepackagename for spr in sprs[:2]])
580 sparc_filter.packageset.add(
581 [spr.sourcepackagename for spr in sprs[1:]])
582 builds = [self.createBuilds(spr, self.distroseries2) for spr in sprs]
583 self.assertBuildsMatch(
584 {'avr': False, 'sparc': False, 'x32': True}, builds[0])
585 self.assertBuildsMatch({'avr': False, 'x32': True}, builds[1])
586 self.assertBuildsMatch({'x32': True}, builds[2])
587
562588
563class TestFindBuiltOrPublishedBySourceAndArchive(TestCaseWithFactory):589class TestFindBuiltOrPublishedBySourceAndArchive(TestCaseWithFactory):
564 """Tests for findBuiltOrPublishedBySourceAndArchive()."""590 """Tests for findBuiltOrPublishedBySourceAndArchive()."""