diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2012-09-23 03:29:01 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2012-09-23 03:29:01 (GMT) |
commit | bc8f1b20e1ab93ecb2fa4c4e0e97bf43e50b4ee7 (patch) | |
tree | 35a66051b0d592bd5ef1e7806528426259834d40 | |
parent | 1404afc3041512afcfb7ce5b566f04e63abc95f9 (diff) |
Test property permissions
-rwxr-xr-x | tests/units/volume.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/units/volume.py b/tests/units/volume.py index 3ee98aa..a7eefe3 100755 --- a/tests/units/volume.py +++ b/tests/units/volume.py @@ -13,6 +13,7 @@ src_root = abspath(dirname(__file__)) from __init__ import tests +import active_document as ad from active_document import env, volume, document, SingleVolume, \ Request, Response, Document, active_property, \ BlobProperty, NotFound, Redirect @@ -608,6 +609,27 @@ class VolumeTest(tests.Test): ], events) + def test_PermissionsNoWrite(self): + + class TestDocument(Document): + + @active_property(slot=1, default='', permissions=ad.ACCESS_READ) + def prop(self, value): + pass + + @active_property(BlobProperty, permissions=ad.ACCESS_READ) + def blob(self, value): + return value + + self.volume = SingleVolume(tests.tmpdir, [TestDocument]) + guid = self.call('POST', document='testdocument', content={}) + + self.assertRaises(ad.Forbidden, self.call, 'POST', document='testdocument', content={'prop': 'value'}) + self.assertRaises(ad.Forbidden, self.call, 'PUT', document='testdocument', guid=guid, content={'prop': 'value'}) + self.assertRaises(ad.Forbidden, self.call, 'PUT', document='testdocument', guid=guid, content={'blob': 'value'}) + self.assertRaises(ad.Forbidden, self.call, 'PUT', document='testdocument', guid=guid, prop='prop', content='value') + self.assertRaises(ad.Forbidden, self.call, 'PUT', document='testdocument', guid=guid, prop='blob', content='value') + def call(self, method, document=None, guid=None, prop=None, accept_language=None, **kwargs): |