src/cm/tests/test_structure.py
changeset 0 40c8f766c9b8
child 103 61fd17f9ab78
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/tests/test_structure.py	Mon Nov 23 15:14:29 2009 +0100
@@ -0,0 +1,65 @@
+from django.test import TestCase
+from django.test.client import Client
+from django.core import management
+
+from cm.models import *
+
+class StructureTest(TestCase):
+    fixtures = ['test_comments',]
+    
+    def test_edit_text(self):
+        self.assertEqual(TextVersion.objects.count(), 1)
+        self.assertEqual(Comment.objects.count(), 8)
+        
+        # edit with duplication, without changing content
+        text = Text.objects.all()[0]
+        new_text = text.edit(new_title='my title', 
+                  new_format='html', 
+                  new_content=text.get_latest_version().content, 
+                  keep_comments = True, 
+                  new_version = True)
+        self.assertEqual(TextVersion.objects.count(), 2)
+        self.assertEqual(Comment.objects.count(), 16)
+        
+        # edit with duplication changing content
+        new_text = text.edit(new_title='my title', 
+                  new_format='html', 
+                  new_content='simple text <p>simple text</p> <p>simple text</p> ', 
+                  keep_comments = True, 
+                  new_version = True)
+        self.assertEqual(TextVersion.objects.count(), 3)
+        self.assertEqual(Comment.objects.count(), 17) # 22
+
+        # edit without duplication, completely changing content
+        new_text = text.edit(new_title='my title', 
+                  new_format='html', 
+                  new_content='xxxxxx', 
+                  keep_comments = True, 
+                  new_version = False)
+        self.assertEqual(TextVersion.objects.count(), 3)
+        self.assertEqual(Comment.objects.count(), 16) # 21
+
+    def test_edit_text2(self):
+        self.assertEqual(TextVersion.objects.count(), 1)
+        self.assertEqual(Comment.objects.count(), 8)
+        text = Text.objects.all()[0]
+        new_text = text.edit(new_title='my title', 
+                  new_format='html', 
+                  new_content='xxxxxx', 
+                  keep_comments = False, 
+                  new_version = False)
+        self.assertEqual(TextVersion.objects.count(), 1)
+        self.assertEqual(Comment.objects.count(), 0)
+
+    def test_edit_text3(self):
+        self.assertEqual(TextVersion.objects.count(), 1)
+        self.assertEqual(Comment.objects.count(), 8)
+        text = Text.objects.all()[0]
+        new_text = text.edit(new_title='my title', 
+                  new_format='html', 
+                  new_content='xxxxxx', 
+                  keep_comments = False, 
+                  new_version = True)
+        self.assertEqual(TextVersion.objects.count(), 2)
+        self.assertEqual(Comment.objects.count(), 8)
+