Browse Source

Add model_overwrite test

Yentl Van Tendeloo 7 years ago
parent
commit
409874bf11
1 changed files with 40 additions and 1 deletions
  1. 40 1
      unit/test_all.py

+ 40 - 1
unit/test_all.py

@@ -366,8 +366,47 @@ class TestModelverse(unittest.TestCase):
         except WritePermissionDenied:
         except WritePermissionDenied:
             pass
             pass
 
 
-    """
     def test_op_model_overwrite(self):
     def test_op_model_overwrite(self):
+        # Test overwrite of simple model
+        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")])
+        assert element_list_nice("users/user/test/a") == []
+
+        model_overwrite("users/user/test/a", \
+            """
+            Class A {
+                name = "A"
+            }
+            Class B {
+                name = "B"
+                abstract = True
+            }
+            """)
+
+        # Test permissions of newly created non-empty model
+        assert model_list_full("users/user/test") == set([("a", "user", "nobody", "200")])
+        # Test content of newly created model with code upload
+        lst = element_list_nice("users/user/test/a")
+        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
+
+        before = element_list_nice("formalisms/SimpleClassDiagrams")
+        try:
+            # Cannot overwrite non-writable model
+            model_overwrite("formalisms/SimpleClassDiagrams", "")
+            self.fail()
+        except WritePermissionDenied:
+            # No changes were made
+            after = element_list_nice("formalisms/SimpleClassDiagrams")
+
+            assert len(after) == len(before)
+            for entry in after:
+                assert entry in before
+
+    """
     def test_op_user_delete(self):
     def test_op_user_delete(self):
     def test_op_model_render(self):
     def test_op_model_render(self):
     def test_op_transformation_between(self):
     def test_op_transformation_between(self):