|
@@ -223,9 +223,31 @@ class TestModelverse(unittest.TestCase):
|
|
|
# Check that we can write
|
|
|
instantiate("users/user/test/a", "Class")
|
|
|
|
|
|
+ # Cannot modify permissions if we don't own the model
|
|
|
+ try:
|
|
|
+ permission_modify("formalisms/SimpleClassDiagrams", "222")
|
|
|
+ self.fail()
|
|
|
+ except UserPermissionDenied:
|
|
|
+ pass
|
|
|
+
|
|
|
+ # Cannot modify permissions even if we have full access, as long as we are not the owner
|
|
|
+ model_add("users/user/test/z", "formalisms/SimpleClassDiagrams")
|
|
|
+ permission_owner("users/user/test/z", "admin")
|
|
|
+ try:
|
|
|
+ permission_modify("users/user/test/z", "222")
|
|
|
+ self.fail()
|
|
|
+ except UserPermissionDenied:
|
|
|
+ pass
|
|
|
+ try:
|
|
|
+ permission_owner("users/user/test/z", "user")
|
|
|
+ self.fail()
|
|
|
+ except UserPermissionDenied:
|
|
|
+ pass
|
|
|
+
|
|
|
def test_op_model_add(self):
|
|
|
assert model_list_full("users/user/test") == set([])
|
|
|
model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
|
|
|
+ # Test permissions of newly created empty model
|
|
|
assert model_list_full("users/user/test") == set([("a", "user", "nobody", "200")])
|
|
|
|
|
|
model_add("users/user/test/b", "formalisms/SimpleClassDiagrams", \
|
|
@@ -239,31 +261,37 @@ class TestModelverse(unittest.TestCase):
|
|
|
}
|
|
|
""")
|
|
|
|
|
|
+ # Test permissions of newly created non-empty model
|
|
|
assert model_list_full("users/user/test") == set([("a", "user", "nobody", "200"), ("b", "user", "nobody", "200")])
|
|
|
+ # Test content of newly created model with code upload
|
|
|
lst = element_list_nice("users/user/test/b")
|
|
|
assert len(lst) == 2
|
|
|
assert {'__id': "A", "__type": "Class", "abstract": None, "constraint": {"AL": ""}, "lower_cardinality": None, "upper_cardinality": None, "name": "A"} in lst
|
|
|
assert {'__id': "B", "__type": "Class", "abstract": True, "constraint": {"AL": ""}, "lower_cardinality": None, "upper_cardinality": None, "name": "B"} in lst
|
|
|
|
|
|
try:
|
|
|
+ # Cannot upload model to occupied location
|
|
|
model_add("users/user/test/a", "formalisms/SimpleClassDiagrams")
|
|
|
self.fail()
|
|
|
except ModelExists:
|
|
|
assert model_list_full("users/user/test") == set([("a", "user", "nobody", "200"), ("b", "user", "nobody", "200")])
|
|
|
|
|
|
try:
|
|
|
+ # Cannot upload model to unwritable location at root
|
|
|
model_add("z", "formalisms/SimpleClassDiagrams")
|
|
|
self.fail()
|
|
|
except WritePermissionDenied:
|
|
|
assert model_list_full("users/user/test") == set([("a", "user", "nobody", "200"), ("b", "user", "nobody", "200")])
|
|
|
|
|
|
try:
|
|
|
+ # Cannot upload model to unwritable location somewhere in hierarchy
|
|
|
model_add("users/new_model", "formalisms/SimpleClassDiagrams")
|
|
|
self.fail()
|
|
|
except WritePermissionDenied:
|
|
|
assert model_list("users/") == set(["user/", "admin/", "LoLA/", "pypdevs_batch_service/", "HUTN/", "JSON/", "file/", "pypdevs_service/"])
|
|
|
|
|
|
try:
|
|
|
+ # Cannot upload model to unwritable location somewhere in hierarchy with multiple new branches
|
|
|
model_add("users/new_username/new_model", "formalisms/SimpleClassDiagrams")
|
|
|
self.fail()
|
|
|
except WritePermissionDenied:
|