Merge lp:~rvb/launchpad/perm-845803 into lp:launchpad

Proposed by Raphaël Badin
Status: Merged
Approved by: Julian Edwards
Approved revision: no longer in the source branch.
Merged at revision: 13919
Proposed branch: lp:~rvb/launchpad/perm-845803
Merge into: lp:launchpad
Diff against target: 97 lines (+44/-8)
3 files modified
lib/lp/soyuz/browser/archive.py (+16/-6)
lib/lp/soyuz/browser/tests/test_archive_admin_view.py (+27/-1)
lib/lp/soyuz/stories/ppa/xx-ppa-workflow.txt (+1/-1)
To merge this branch: bzr merge lp:~rvb/launchpad/perm-845803
Reviewer Review Type Date Requested Status
Julian Edwards (community) Approve
Review via email: mp+74874@code.launchpad.net

Commit message

[r=julian-edwards][bug=845803] Remove call to canSetEnabledRestrictedFamilies

Description of the change

This branch fixes a regression introduced by a bad merge which left a call to a removed method (!): canSetEnabledRestrictedFamilies. This was not picked up by our test suite because this happened in a part of the code that was not covered by tests. This branch fixes this and adds a proper test for this.

= Tests =

./bin/test -vvc test_archive_admin_view test_cannot_change_enabled_restricted_families

= QA =

Edit a ppa archive (https://launchpad.dev/~me/+archive/ppa/+admin) and change the values of "Require virtualized builders" and "Enabled restricted families". "Enabled restricted families" should only be modifiable if "Require virtualized builders" is True.

To post a comment you must log in.
Revision history for this message
Julian Edwards (julian-edwards) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/soyuz/browser/archive.py'
2--- lib/lp/soyuz/browser/archive.py 2011-09-06 15:00:37 +0000
3+++ lib/lp/soyuz/browser/archive.py 2011-09-12 13:59:50 +0000
4@@ -2066,6 +2066,12 @@
5 self.setFieldError('require_virtualized', error_msg)
6
7
8+ARCHIVE_ENABLED_RESTRICTED_FAMILITES_ERROR_MSG = (
9+ u'Main archives can not be restricted to certain '
10+ 'architectures unless they are set to build on '
11+ 'virtualized builders.')
12+
13+
14 class ArchiveAdminView(BaseArchiveEditView, EnableRestrictedFamiliesMixin):
15
16 field_names = ['enabled', 'private', 'commercial', 'require_virtualized',
17@@ -2131,14 +2137,18 @@
18 'Can only set commericial for private archives.')
19
20 enabled_restricted_families = data.get('enabled_restricted_families')
21- if (enabled_restricted_families and
22- not self.context.canSetEnabledRestrictedFamilies(
23- enabled_restricted_families)):
24+ require_virtualized = data.get('require_virtualized')
25+ proc_family_set = getUtility(IProcessorFamilySet)
26+ if (enabled_restricted_families is not None and
27+ not require_virtualized and
28+ set(enabled_restricted_families) !=
29+ set(proc_family_set.getRestricted())):
30 self.setFieldError(
31 'enabled_restricted_families',
32- 'Main archives can not be restricted to certain '
33- 'architectures unless they are set to build on '
34- 'virtualized builders.')
35+ ARCHIVE_ENABLED_RESTRICTED_FAMILITES_ERROR_MSG)
36+ self.setFieldError(
37+ 'require_virtualized',
38+ ARCHIVE_ENABLED_RESTRICTED_FAMILITES_ERROR_MSG)
39
40 @property
41 def owner_is_private_team(self):
42
43=== modified file 'lib/lp/soyuz/browser/tests/test_archive_admin_view.py'
44--- lib/lp/soyuz/browser/tests/test_archive_admin_view.py 2010-10-04 19:50:45 +0000
45+++ lib/lp/soyuz/browser/tests/test_archive_admin_view.py 2011-09-12 13:59:50 +0000
46@@ -71,7 +71,7 @@
47 self.assertFalse(view.context.private)
48
49 def test_set_private_without_buildd_secret(self):
50- """If a PPA is marked private but no buildd secret is specified,
51+ """If a PPA is marked private but no buildd secret is specified,
52 one will be generated."""
53 view = self.initialize_admin_view(private=True, buildd_secret='')
54 self.assertEqual(0, len(view.errors))
55@@ -101,3 +101,29 @@
56 'This archive already has published sources. '
57 'It is not possible to switch the privacy.',
58 view.errors[0])
59+
60+ def test_cannot_change_enabled_restricted_families(self):
61+ # If require_virtualized is False, enabled_restricted_families
62+ # cannot be changed.
63+ method = 'POST'
64+ form = {
65+ 'field.enabled': 'on',
66+ 'field.require_virtualized': '',
67+ 'field.enabled_restricted_families': [],
68+ 'field.actions.save': 'Save',
69+ }
70+
71+ view = ArchiveAdminView(self.ppa, LaunchpadTestRequest(
72+ method=method, form=form))
73+ view.initialize()
74+
75+ error_msg = (
76+ u'Main archives can not be restricted to certain '
77+ 'architectures unless they are set to build on '
78+ 'virtualized builders.')
79+ self.assertEqual(
80+ error_msg,
81+ view.widget_errors.get('enabled_restricted_families'))
82+ self.assertEqual(
83+ error_msg,
84+ view.widget_errors.get('require_virtualized'))
85
86=== modified file 'lib/lp/soyuz/stories/ppa/xx-ppa-workflow.txt'
87--- lib/lp/soyuz/stories/ppa/xx-ppa-workflow.txt 2011-01-29 00:19:18 +0000
88+++ lib/lp/soyuz/stories/ppa/xx-ppa-workflow.txt 2011-09-12 13:59:50 +0000
89@@ -363,7 +363,7 @@
90 >>> admin_browser.getControl(name="field.commercial").value = True
91 >>> admin_browser.getControl(name="field.buildd_secret").value = "secret"
92 >>> admin_browser.getControl(
93- ... name="field.require_virtualized").value = False
94+ ... name="field.require_virtualized").value = True
95 >>> admin_browser.getControl(name="field.authorized_size").value = '1'
96 >>> admin_browser.getControl(
97 ... name="field.relative_build_score").value = '199'