Unittest clients.pithos set object sharing
authorStavros Sachtouris <saxtouri@admin.grnet.gr>
Mon, 11 Mar 2013 11:47:11 +0000 (13:47 +0200)
committerStavros Sachtouris <saxtouri@admin.grnet.gr>
Mon, 11 Mar 2013 11:47:11 +0000 (13:47 +0200)
kamaki/clients/pithos.py
kamaki/clients/test/pithos.py

index 306d52c..5ed424f 100644 (file)
@@ -966,9 +966,7 @@ class PithosClient(PithosRestAPI):
            permissions will be removed
         """
 
-        perms = dict(
-            read='' if not read_permition else read_permition,
-            write='' if not write_permition else write_permition)
+        perms = dict(read=read_permition or '', write=write_permition or '')
         r = self.object_post(obj, update=True, permissions=perms)
         r.release()
 
index abf28bc..093e578 100644 (file)
@@ -983,3 +983,21 @@ class Pithos(TestCase):
             r = self.client.get_object_sharing(obj)
             expected.pop('write')
             self.assert_dicts_are_equal(r, expected)
+
+    @patch('%s.object_post' % pithos_pkg, return_value=FR())
+    def test_set_object_sharing(self, POST):
+        read_perms = ['u1', 'g1', 'u2', 'g2']
+        write_perms = ['u1', 'g1']
+        for kwargs in (
+                dict(read_permition=read_perms, write_permition=write),
+                dict(read_permition=read_perms),
+                dict(write_permition=write_perms)).items():
+            self.client.set_object_sharing(obj, **kwargs)
+            if 'read_permition' in kwargs:
+                kwargs['read'] = kwargs.pop('read_permition')
+            if 'write_permition' in kwargs:
+                kwargs['write'] = kwargs.pop('write_permition')
+            self.assertEqual(
+                POST.mock_calls[-1],
+                call(obj, update=True, permissions=kwargs)
+