Merge lp:~stevenk/launchpad/fix-self-renewal into lp:launchpad

Proposed by Steve Kowalik
Status: Merged
Approved by: Steve Kowalik
Approved revision: no longer in the source branch.
Merged at revision: 15904
Proposed branch: lp:~stevenk/launchpad/fix-self-renewal
Merge into: lp:launchpad
Diff against target: 54 lines (+24/-2)
2 files modified
lib/lp/registry/browser/team.py (+1/-2)
lib/lp/registry/browser/tests/test_team.py (+23/-0)
To merge this branch: bzr merge lp:~stevenk/launchpad/fix-self-renewal
Reviewer Review Type Date Requested Status
Steve Kowalik (community) code Approve
Review via email: mp+122598@code.launchpad.net

Commit message

Fix the ability to change the self membership renewal on Team:+edit.

Description of the change

Fix the ability to change the self membership renewal on Team:+edit. This work was effectively done by Curtis Hovey, I've just packaged it up with a nice bow.

To post a comment you must log in.
Revision history for this message
Steve Kowalik (stevenk) :
review: Approve (code)
Revision history for this message
Benjamin Kerensa (bkerensa) wrote :

I was working on this?

Revision history for this message
Steve Kowalik (stevenk) wrote :

Hi Benjamin,

Yes, I was aware that you had filed a merge proposal for this particular bug, and I'm very sorry about that. However, the page in question has been broken for a few weeks, and it used to be work -- we call this a 'regression', and it's also why the bug is marked as Critical. Myself or other Launchpad engineers would be more than happy to mentor you for other bugs, but I felt it was very important to fix for this bug deployed.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/registry/browser/team.py'
2--- lib/lp/registry/browser/team.py 2012-08-15 22:01:39 +0000
3+++ lib/lp/registry/browser/team.py 2012-09-03 22:26:22 +0000
4@@ -92,7 +92,6 @@
5 )
6 from lp.app.widgets.owner import HiddenUserWidget
7 from lp.app.widgets.popup import PersonPickerWidget
8-from lp.app.widgets.textwidgets import StrippedTextWidget
9 from lp.code.browser.sourcepackagerecipelisting import HasRecipesMenuMixin
10 from lp.registry.browser.branding import BrandingChangeView
11 from lp.registry.browser.mailinglists import enabled_with_active_mailing_list
12@@ -299,7 +298,7 @@
13
14 custom_widget(
15 'renewal_policy', LaunchpadRadioWidget, orientation='vertical')
16- custom_widget('defaultrenewalperiod', StrippedTextWidget,
17+ custom_widget('defaultrenewalperiod', IntWidget,
18 widget_class='field subordinate')
19 custom_widget(
20 'membership_policy', LaunchpadRadioWidgetWithDescription,
21
22=== modified file 'lib/lp/registry/browser/tests/test_team.py'
23--- lib/lp/registry/browser/tests/test_team.py 2012-08-21 04:04:47 +0000
24+++ lib/lp/registry/browser/tests/test_team.py 2012-09-03 22:26:22 +0000
25@@ -442,6 +442,29 @@
26 'existing is already in use by another person or team.',
27 view.errors[0].doc())
28
29+ def test_expiration_and_renewal(self):
30+ # The team's membership expiration and renewal rules can be set.
31+ owner = self.factory.makePerson()
32+ team = self.factory.makeTeam(name="team", owner=owner)
33+ form = {
34+ 'field.name': team.name,
35+ 'field.displayname': team.displayname,
36+ 'field.defaultmembershipperiod': '180',
37+ 'field.defaultrenewalperiod': '365',
38+ 'field.membership_policy': 'RESTRICTED',
39+ 'field.renewal_policy': 'ONDEMAND',
40+ 'field.actions.save': 'Save',
41+ }
42+ login_person(owner)
43+ view = create_initialized_view(team, '+edit', form=form)
44+ self.assertEqual(0, len(view.errors))
45+ self.assertEqual(
46+ TeamMembershipPolicy.RESTRICTED, team.membership_policy)
47+ self.assertEqual(180, team.defaultmembershipperiod)
48+ self.assertEqual(365, team.defaultrenewalperiod)
49+ self.assertEqual(
50+ TeamMembershipRenewalPolicy.ONDEMAND, team.renewal_policy)
51+
52
53 class TeamAdminisiterViewTestCase(TestTeamPersonRenameFormMixin,
54 TestCaseWithFactory):