Merge ~ilasc/launchpad:skip-team-membership-last-changed-by into launchpad:master

Proposed by Ioana Lasc
Status: Merged
Approved by: Ioana Lasc
Approved revision: 9e472b86c3d8f6b0ea2acaa3dd66a42de98aa8c7
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~ilasc/launchpad:skip-team-membership-last-changed-by
Merge into: launchpad:master
Diff against target: 61 lines (+24/-1)
2 files modified
lib/lp/registry/scripts/closeaccount.py (+1/-0)
lib/lp/registry/scripts/tests/test_closeaccount.py (+23/-1)
Reviewer Review Type Date Requested Status
Colin Watson (community) Approve
Review via email: mp+395431@code.launchpad.net

Commit message

Skip last_changed_by for team membership

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/lib/lp/registry/scripts/closeaccount.py b/lib/lp/registry/scripts/closeaccount.py
2index 8aa6121..6256ea2 100644
3--- a/lib/lp/registry/scripts/closeaccount.py
4+++ b/lib/lp/registry/scripts/closeaccount.py
5@@ -157,6 +157,7 @@ def close_account(username, log):
6 ('specification', 'starter'),
7 ('structuralsubscription', 'subscribed_by'),
8 ('teammembership', 'acknowledged_by'),
9+ ('teammembership', 'last_changed_by'),
10 ('teammembership', 'proposed_by'),
11 ('teammembership', 'reviewed_by'),
12 ('translationimportqueueentry', 'importer'),
13diff --git a/lib/lp/registry/scripts/tests/test_closeaccount.py b/lib/lp/registry/scripts/tests/test_closeaccount.py
14index d02fad5..32e6531 100644
15--- a/lib/lp/registry/scripts/tests/test_closeaccount.py
16+++ b/lib/lp/registry/scripts/tests/test_closeaccount.py
17@@ -28,6 +28,7 @@ from lp.bugs.model.bugsummary import BugSummary
18 from lp.code.enums import TargetRevisionControlSystems
19 from lp.code.tests.helpers import GitHostingFixture
20 from lp.registry.interfaces.person import IPersonSet
21+from lp.registry.interfaces.teammembership import ITeamMembershipSet
22 from lp.registry.scripts.closeaccount import CloseAccountScript
23 from lp.scripts.garbo import PopulateLatestPersonSourcePackageReleaseCache
24 from lp.services.database.sqlbase import (
25@@ -52,7 +53,10 @@ from lp.soyuz.enums import (
26 )
27 from lp.soyuz.model.archive import Archive
28 from lp.soyuz.tests.test_publishing import SoyuzTestPublisher
29-from lp.testing import TestCaseWithFactory
30+from lp.testing import (
31+ login_celebrity,
32+ TestCaseWithFactory,
33+ )
34 from lp.testing.dbuser import dbuser
35 from lp.testing.layers import LaunchpadZopelessLayer
36 from lp.translations.interfaces.pofiletranslator import IPOFileTranslatorSet
37@@ -613,6 +617,24 @@ class TestCloseAccount(TestCaseWithFactory):
38 self.assertRemoved(account_id, person_id)
39 self.assertEqual(person, specification.owner)
40
41+ def test_skips_teammembership_last_changed_by(self):
42+ targetteam = self.factory.makeTeam(name='target')
43+ member = self.factory.makePerson()
44+ login_celebrity('admin')
45+ targetteam.addMember(member, targetteam.teamowner)
46+ membershipset = getUtility(ITeamMembershipSet)
47+ membershipset.deactivateActiveMemberships(
48+ targetteam, comment='test', reviewer=member)
49+ membership = membershipset.getByPersonAndTeam(member, targetteam)
50+ self.assertEqual(member, membership.last_changed_by)
51+
52+ person_id = member.id
53+ account_id = member.account.id
54+ script = self.makeScript([six.ensure_str(member.name)])
55+ with dbuser('launchpad'):
56+ self.runScript(script)
57+ self.assertRemoved(account_id, person_id)
58+
59 def test_handles_login_token(self):
60 person = self.factory.makePerson()
61 email = '%s@another-domain.test' % person.name

Subscribers

People subscribed via source and target branches

to status/vote changes: