Ver código fonte

Remove group at end of test run

Yentl Van Tendeloo 7 anos atrás
pai
commit
20b8c9c100
1 arquivos alterados com 110 adições e 41 exclusões
  1. 110 41
      unit/test_all.py

+ 110 - 41
unit/test_all.py

@@ -2637,20 +2637,14 @@ class TestModelverse(unittest.TestCase):
 
     def test_op_permission_owner_model(self):
         model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
-        try:
-            # Might already exist
-            group_create("users")
-        except GroupExists:
-            pass
+
+        group_create("users")
         permission_group("users/user/test/a", "users")
         permission_modify("users/user/test/a", "210")
 
         self.do_create_user("group_user")
         self.do_create_user("other_user")
-        try:
-            group_join("users", "group_user")
-        except UserExists:
-            pass
+        group_join("users", "group_user")
 
         # Test initial situation, where we have owners user:users with permission 210
         self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
@@ -2695,20 +2689,14 @@ class TestModelverse(unittest.TestCase):
         self.do_as_user("admin", permission_owner, ["users/user/test/a", "user"])
         self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
 
+        group_delete("users")
+
     def test_op_permission_owner_folder(self):
         folder_create("users/user/test/a/b/c")
 
-        try:
-            # Might already exist
-            group_create("users")
-        except GroupExists:
-            pass
+        group_create("users")
         self.do_create_user("group_user")
-        try:
-            # Might already be a member
-            group_join("users", "group_user")
-        except UserExists:
-            pass
+        group_join("users", "group_user")
 
         permission_group("users/user/test/a/b", "users")
         permission_modify("users/user/test/a/b", "210")
@@ -2740,21 +2728,15 @@ class TestModelverse(unittest.TestCase):
         except ReadPermissionDenied:
             pass
 
+        group_delete("users")
+
     def test_op_read_permissions_model(self):
         model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
 
-        try:
-            # Might already exist
-            group_create("users")
-        except:
-            pass
+        group_create("users")
         self.do_create_user("group_user")
         self.do_create_user("other_user")
-        try:
-            # Might already be a member
-            group_join("users", "group_user")
-        except:
-            pass
+        group_join("users", "group_user")
 
         permission_group("users/user/test/a", "users")
         permission_modify("users/user/test/a", "210")
@@ -2778,21 +2760,15 @@ class TestModelverse(unittest.TestCase):
         except UnknownLocation:
             pass
 
+        group_delete("users")
+
     def test_op_read_permissions_folder(self):
         folder_create("users/user/test/a")
 
-        try:
-            # Might already exist
-            group_create("users")
-        except:
-            pass
+        group_create("users")
         self.do_create_user("group_user")
         self.do_create_user("other_user")
-        try:
-            # Might already be a member
-            group_join("users", "group_user")
-        except:
-            pass
+        group_join("users", "group_user")
 
         permission_group("users/user/test/a", "users")
         permission_modify("users/user/test/a", "210")
@@ -2810,6 +2786,101 @@ class TestModelverse(unittest.TestCase):
         except UnknownLocation:
             pass
 
+        group_delete("users")
+
+    def test_op_permission_group_model(self):
+        model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
+        group_create("users")
+        group_create("other_group")
+        permission_modify("users/user/test/a", "210")
+
+        self.do_create_user("group_user")
+        self.do_create_user("other_user")
+        group_join("users", "group_user")
+
+        # Test initial situation, where we have owners user:users with permission 210
+        self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
+
+        # Change owner, but permissions stay the same
+        permission_group("users/user/test/a", "users")
+        self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
+
+        # Only owner can modify group permissions
+        try:
+            self.do_as_user("group_user", permission_group, ["users/user/test/a", "other_group"])
+            self.fail()
+        except UserPermissionDenied:
+            self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
+
+        # Test that admin can always do operations, even if not owner
+        # And test that user permissions still override group permissions
+        self.do_as_user("admin", permission_group, ["users/user/test/a", "admin"])
+        self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
+        self.do_as_user("admin", permission_group, ["users/user/test/a", "other_group"])
+        self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
+        self.do_as_user("admin", permission_group, ["users/user/test/a", "users"])
+        self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
+
+        # Test non-existing model
+        try:
+            permission_group("adfadf", "admin")
+            self.fail()
+        except UnknownModel:
+            pass
+
+        # Test non-existing group
+        try:
+            self.do_as_user("admin", permission_group, ["users/user/test/a", "dfadf"])
+            self.fail()
+        except UnknownGroup:
+            pass
+
+        # Test assign to group which is already owning group, resulting in no change
+        self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
+        self.do_as_user("admin", permission_group, ["users/user/test/a", "users"])
+        self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
+
+        self.do_as_user("admin", group_delete, ["other_group"])
+        self.do_as_user("admin", group_delete, ["users"])
+
+    def test_op_permission_group_folder(self):
+        folder_create("users/user/test/a/b/c")
+
+        group_create("users")
+        self.do_create_user("group_user")
+        group_join("users", "group_user")
+
+        permission_group("users/user/test/a/b", "users")
+        permission_modify("users/user/test/a/b", "210")
+
+        # Test permissions
+        self.do_test_permission("users/user/test/", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
+        self.do_test_permission("users/user/test/a", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
+        self.do_test_permission("users/user/test/a/b", {"admin": "RW", "user": "RW", "group_user": "R", "other_user": ""})
+        self.do_test_permission("users/user/test/a/b/c", {"admin": "RW", "user": "RW", "group_user": "", "other_user": ""})
+
+        # But test if they are really applicable
+        try:
+            self.do_as_user("group_user", model_list, ["users/user/test"])
+            self.fail()
+        except ReadPermissionDenied:
+            pass
+
+        try:
+            self.do_as_user("group_user", model_list, ["users/user/test/a"])
+            self.fail()
+        except ReadPermissionDenied:
+            pass
+
+        self.do_as_user("group_user", model_list, ["users/user/test/a/b"])
+
+        try:
+            self.do_as_user("group_user", model_list, ["users/user/test/a/b/c"])
+            self.fail()
+        except ReadPermissionDenied:
+            pass
+
+        group_delete("users")
 
     """
     def test_op_model_render(self):
@@ -2822,8 +2893,6 @@ class TestModelverse(unittest.TestCase):
     def test_op_transformation_execute_MANUAL(self):
     def test_op_transformation_signature(self):
     def test_op_process_signature(self):
-    def test_op_permission_group(self):
-    def test_op_permission_owner(self):
     def test_op_group_owner_add(self):
     def test_op_group_owner_delete(self):
     def test_op_conformance_delete(self):