Colin Watson has proposed merging
lp:~cjwatson/launchpad/git-repository-container into lp:launchpad with
lp:~cjwatson/launchpad/refactor-launchpad-container as a prerequisite.
Commit message:
Add ILaunchpadContainer implementation for Git repositories.
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/git-repository-container/+merge/287413
Add ILaunchpadContainer implementation for Git repositories. It's an easy
extension, and we're going to want this for caveats.
--
Your team Launchpad code reviewers is requested to review the proposed merge of
lp:~cjwatson/launchpad/git-repository-container into lp:launchpad.
=== modified file 'lib/lp/code/configure.zcml'
--- lib/lp/code/configure.zcml 2016-01-11 19:16:04 +
+++ lib/lp/code/configure.zcml 2016-02-28 19:36:09 +
@@ -816,6 +816,10 @@
interface="lp.code.interfaces.gitrepository.IGitRepositoryEdit"
set_schema="lp.code.interfaces.gitrepository.IGitRepositoryEditableAttributes" />
+
=== modified file 'lib/lp/code/publisher.py'
--- lib/lp/code/publisher.py 2016-02-28 19:36:09 +
+++ lib/lp/code/publisher.py 2016-02-28 19:36:09 +
@@ -64,3 +64,13 @@
self.context.target.context, ILaunchpadContainer)
if adapter is not None:
yield adapter
+
+
+class LaunchpadGitRepositoryContainer(LaunchpadContainer):
+
+def getParentContainers(self):
+"""See `ILaunchpadContainer`."""
+# A repository is within its target.
+adapter = queryAdapter(self.context.target, ILaunchpadContainer)
+if adapter is not None:
+yield adapter
=== modified file 'lib/lp/registry/doc/launchpad-container.txt'
--- lib/lp/registry/doc/launchpad-container.txt 2016-02-28 19:36:09 +
+++ lib/lp/registry/doc/launchpad-container.txt 2016-02-28 19:36:09 +
@@ -120,3 +120,20 @@
None
>>> ILaunchpadContainer(junk).isWithin('/firefox')
False
+
+
+== Git repositories ==
+
+A Git repository is within its target.
+
+>>> sample_person = getUtility(IPersonSet).getByName('name12')
+>>> firefox_git = factory.makeGitRepository(target=firefox)
+>>> ILaunchpadContainer(firefox_git).isWithin('/firefox')
+True
+>>> ILaunchpadContainer(firefox_git).isWithin('/mozilla')
+True
+
+But it's not within anything other than its target.
+
+>>> ILaunchpadContainer(firefox_git).isWithin('/ubuntu/+source/evolution')
+False
___
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to : launchpad-reviewers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help : https://help.launchpad.net/ListHelp