From acb415ba8b7596ea9631f637274e8819ff3464b1 Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Thu, 04 Oct 2012 16:04:59 +0000 Subject: Layers restriction makes sense only for context/implementation resources --- diff --git a/sugar_network/local/mounts.py b/sugar_network/local/mounts.py index deba9ea..0c36238 100644 --- a/sugar_network/local/mounts.py +++ b/sugar_network/local/mounts.py @@ -314,7 +314,9 @@ class RemoteMount(ad.CommandsProcessor, _Mount, _ProxyCommands): try: return ad.CommandsProcessor.call(self, request, response) except ad.CommandNotFound: - if local.layers.value and 'layer' not in request: + if local.layers.value and request.get('document') in \ + ('context', 'implementation') and \ + 'layer' not in request: request['layer'] = local.layers.value return self._client.call(request, response) diff --git a/tests/units/remote_mount.py b/tests/units/remote_mount.py index 7897b4d..f3f7e14 100755 --- a/tests/units/remote_mount.py +++ b/tests/units/remote_mount.py @@ -18,6 +18,7 @@ from sugar_network.local.mountset import Mountset from sugar_network.toolkit import sugar, http from sugar_network.resources.user import User from sugar_network.resources.context import Context +from sugar_network.resources.implementation import Implementation from sugar_network.resources.artifact import Artifact from sugar_network.resources.volume import Volume from sugar_network import IPCClient @@ -313,7 +314,7 @@ class RemoteMountTest(tests.Test): self.assertRaises(urllib2.HTTPError, urllib2.urlopen, blob_url) def test_RestrictLayers(self): - self.start_ipc_and_restful_server() + self.start_ipc_and_restful_server([User, Context, Implementation, Artifact]) remote = IPCClient(mountpoint='/') context = remote.post(['context'], { @@ -331,6 +332,7 @@ class RemoteMountTest(tests.Test): 'notes': '', 'spec': {'*-*': {}}, }) + artifact = remote.post(['artifact'], {}) self.assertEqual( [{'layer': ['public']}], @@ -353,6 +355,16 @@ class RemoteMountTest(tests.Test): remote.get(['implementation'], reply='layer', layer='public')['result']) self.assertEqual( + [{'layer': ['public']}], + remote.get(['artifact'], reply='layer')['result']) + self.assertEqual( + [], + remote.get(['artifact'], reply='layer', layer='foo')['result']) + self.assertEqual( + [{'layer': ['public']}], + remote.get(['artifact'], reply='layer', layer='public')['result']) + + self.assertEqual( [{'stability': 'stable', 'guid': impl, 'arch': '*-*', 'version': '1'}], remote.get(['context', context], cmd='feed')) self.assertEqual( @@ -385,6 +397,16 @@ class RemoteMountTest(tests.Test): remote.get(['implementation'], reply='layer', layer='public')['result']) self.assertEqual( + [{'layer': ['public']}], + remote.get(['artifact'], reply='layer')['result']) + self.assertEqual( + [], + remote.get(['artifact'], reply='layer', layer='foo')['result']) + self.assertEqual( + [{'layer': ['public']}], + remote.get(['artifact'], reply='layer', layer='public')['result']) + + self.assertEqual( [], remote.get(['context', context], cmd='feed')) self.assertEqual( -- cgit v0.9.1