diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/__init__.py | 1 | ||||
-rwxr-xr-x | tests/units/remote_mount.py | 82 |
2 files changed, 83 insertions, 0 deletions
diff --git a/tests/__init__.py b/tests/__init__.py index c95f45a..725508a 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -84,6 +84,7 @@ class Test(unittest.TestCase): local.server_mode.value = False local.mounts_root.value = None local.ipc_port.value = 5101 + local.layers.value = None mounts_monitor.stop() mounts_monitor._COMPLETE_MOUNT_TIMEOUT = .1 stats.stats_root.value = tmpdir + '/stats' diff --git a/tests/units/remote_mount.py b/tests/units/remote_mount.py index 3d58a65..7897b4d 100755 --- a/tests/units/remote_mount.py +++ b/tests/units/remote_mount.py @@ -312,6 +312,88 @@ class RemoteMountTest(tests.Test): remote.get(['artifact', guid], reply=['data'])) self.assertRaises(urllib2.HTTPError, urllib2.urlopen, blob_url) + def test_RestrictLayers(self): + self.start_ipc_and_restful_server() + remote = IPCClient(mountpoint='/') + + context = remote.post(['context'], { + 'type': 'activity', + 'title': 'title', + 'summary': 'summary', + 'description': 'description', + }) + impl = remote.post(['implementation'], { + 'context': context, + 'license': 'GPLv3+', + 'version': '1', + 'date': 0, + 'stability': 'stable', + 'notes': '', + 'spec': {'*-*': {}}, + }) + + self.assertEqual( + [{'layer': ['public']}], + remote.get(['context'], reply='layer')['result']) + self.assertEqual( + [], + remote.get(['context'], reply='layer', layer='foo')['result']) + self.assertEqual( + [{'layer': ['public']}], + remote.get(['context'], reply='layer', layer='public')['result']) + + self.assertEqual( + [{'layer': ['public']}], + remote.get(['implementation'], reply='layer')['result']) + self.assertEqual( + [], + remote.get(['implementation'], reply='layer', layer='foo')['result']) + self.assertEqual( + [{'layer': ['public']}], + remote.get(['implementation'], reply='layer', layer='public')['result']) + + self.assertEqual( + [{'stability': 'stable', 'guid': impl, 'arch': '*-*', 'version': '1'}], + remote.get(['context', context], cmd='feed')) + self.assertEqual( + [], + remote.get(['context', context], cmd='feed', layer='foo')) + self.assertEqual( + [{'stability': 'stable', 'guid': impl, 'arch': '*-*', 'version': '1'}], + remote.get(['context', context], cmd='feed', layer='public')) + + local.layers.value = ['foo', 'bar'] + + self.assertEqual( + [], + remote.get(['context'], reply='layer')['result']) + self.assertEqual( + [], + remote.get(['context'], reply='layer', layer='foo')['result']) + self.assertEqual( + [{'layer': ['public']}], + remote.get(['context'], reply='layer', layer='public')['result']) + + self.assertEqual( + [], + remote.get(['implementation'], reply='layer')['result']) + self.assertEqual( + [], + remote.get(['implementation'], reply='layer', layer='foo')['result']) + self.assertEqual( + [{'layer': ['public']}], + remote.get(['implementation'], reply='layer', layer='public')['result']) + + self.assertEqual( + [], + remote.get(['context', context], cmd='feed')) + self.assertEqual( + [], + remote.get(['context', context], cmd='feed', layer='foo')) + self.assertEqual( + [{'stability': 'stable', 'guid': impl, 'arch': '*-*', 'version': '1'}], + remote.get(['context', context], cmd='feed', layer='public')) + if __name__ == '__main__': tests.main() |