Merge lp:~stevenk/launchpad/double-archivesub into lp:launchpad

Proposed by Steve Kowalik
Status: Work in progress
Proposed branch: lp:~stevenk/launchpad/double-archivesub
Merge into: lp:launchpad
Diff against target: 56 lines (+10/-11)
2 files modified
lib/lp/soyuz/model/archive.py (+5/-11)
lib/lp/soyuz/tests/test_archive.py (+5/-0)
To merge this branch: bzr merge lp:~stevenk/launchpad/double-archivesub
Reviewer Review Type Date Requested Status
Launchpad code reviewers Pending
Review via email: mp+124102@code.launchpad.net
To post a comment you must log in.

Unmerged revisions

15950. By Steve Kowalik

Deal with newAuthToken() being called twice -- return the existing token.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/soyuz/model/archive.py'
--- lib/lp/soyuz/model/archive.py 2012-09-07 05:43:28 +0000
+++ lib/lp/soyuz/model/archive.py 2012-09-13 05:45:25 +0000
@@ -1,8 +1,6 @@
1# Copyright 2009-2012 Canonical Ltd. This software is licensed under the1# Copyright 2009-2012 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
4# pylint: disable-msg=E0611,W0212
5
6"""Database class for table Archive."""4"""Database class for table Archive."""
75
8__metaclass__ = type6__metaclass__ = type
@@ -153,10 +151,7 @@
153from lp.soyuz.interfaces.archivearch import IArchiveArchSet151from lp.soyuz.interfaces.archivearch import IArchiveArchSet
154from lp.soyuz.interfaces.archiveauthtoken import IArchiveAuthTokenSet152from lp.soyuz.interfaces.archiveauthtoken import IArchiveAuthTokenSet
155from lp.soyuz.interfaces.archivepermission import IArchivePermissionSet153from lp.soyuz.interfaces.archivepermission import IArchivePermissionSet
156from lp.soyuz.interfaces.archivesubscriber import (154from lp.soyuz.interfaces.archivesubscriber import IArchiveSubscriberSet
157 ArchiveSubscriptionError,
158 IArchiveSubscriberSet,
159 )
160from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet155from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
161from lp.soyuz.interfaces.buildrecords import (156from lp.soyuz.interfaces.buildrecords import (
162 IHasBuildRecords,157 IHasBuildRecords,
@@ -1832,11 +1827,10 @@
1832 raise NoTokensForTeams(1827 raise NoTokensForTeams(
1833 "Subscription tokens can be created for individuals only.")1828 "Subscription tokens can be created for individuals only.")
18341829
1835 # Ensure that the current subscription does not already have a token1830 # If a token already exists, return it.
1836 if self.getAuthToken(person) is not None:1831 existing_token = self.getAuthToken(person)
1837 raise ArchiveSubscriptionError(1832 if existing_token:
1838 "%s already has a token for %s." % (1833 return existing_token
1839 person.displayname, self.displayname))
18401834
1841 # Now onto the actual token creation:1835 # Now onto the actual token creation:
1842 if token is None:1836 if token is None:
18431837
=== modified file 'lib/lp/soyuz/tests/test_archive.py'
--- lib/lp/soyuz/tests/test_archive.py 2012-08-21 14:15:43 +0000
+++ lib/lp/soyuz/tests/test_archive.py 2012-09-13 05:45:25 +0000
@@ -1161,6 +1161,11 @@
1161 token = self.private_ppa.newAuthToken(self.joe)1161 token = self.private_ppa.newAuthToken(self.joe)
1162 self.assertEqual(self.private_ppa.getAuthToken(self.joe), token)1162 self.assertEqual(self.private_ppa.getAuthToken(self.joe), token)
11631163
1164 def test_newAuthToken_returns_existing(self):
1165 token = self.private_ppa.newAuthToken(self.joe)
1166 token2 = self.private_ppa.newAuthToken(self.joe)
1167 self.assertEqual(token2, token)
1168
1164 def test_getArchiveSubscriptionURL(self):1169 def test_getArchiveSubscriptionURL(self):
1165 url = self.joe.getArchiveSubscriptionURL(self.joe, self.private_ppa)1170 url = self.joe.getArchiveSubscriptionURL(self.joe, self.private_ppa)
1166 token = self.private_ppa.getAuthToken(self.joe)1171 token = self.private_ppa.getAuthToken(self.joe)