More UTF-8 vs. mercurial vs. os.listdir problems.
[redakcja.git] / apps / api / tests / __init__.py
index 2292e7d..c5d79e7 100644 (file)
@@ -19,6 +19,7 @@ def temprepo(name):
 
     def decorator(func):
 
+
         @wraps(func)
         def decorated(self, *args, **kwargs):
             clean = False
@@ -31,10 +32,11 @@ def temprepo(name):
             finally:
                 if not clean and self.response:
                     print "RESULT", func.__name__, ">>>"
-                    print self.response
+                    print self.response.content
                     print "<<<"
-
-                # shutil.rmtree(temp, True)
+                else:
+                    shutil.rmtree(temp, True)
+                
                 settings.REPOSITORY_PATH = ''
            
         return decorated
@@ -63,32 +65,7 @@ class SimpleTest(TestCase):
         self.assert_json_response({                        
             u'documents': [],            
         })    
-
-    @temprepo('clean')
-    def test_documents_post(self):
-        self.assertTrue(self.client.login(username='admin', password='admin'))
-
-        infile = tempfile.NamedTemporaryFile("w+")
-        infile.write('0123456789')
-        infile.flush()
-        infile.seek(0)
-
-        self.response = self.client.post( reverse("document_list_view"),
-        data = {
-             'bookname': 'testbook',
-             'ocr': infile,
-             'generate_dc': False,
-        })
-
-        infile.close()
-
-        self.assert_json_response({
-            'url': reverse('document_view', args=['testbook']),
-            'name': 'testbook',
-            # 'size': 10,
-            # can't test revision number, 'cause it's random
-        },)
-
+    
     @temprepo('clean')
     def test_document_creation(self):
         self.assertTrue(self.client.login(username='admin', password='admin'))
@@ -101,23 +78,21 @@ class SimpleTest(TestCase):
         self.response = self.client.post( reverse("document_list_view"),
         data = {
              'bookname': 'testbook',
-             'ocr': infile,
+             'ocr_file': infile,
              'generate_dc': False,
         })
 
-        r = self.assert_json_response({
+        r = self.assert_json_response( {
             'url': reverse('document_view', args=['testbook']),
             'name': 'testbook',            
             # can't test revision number, 'cause it's random
-        })
+        }, code=201)
 
         created_rev = r['revision']
-
-        self.response = self.client.get( \
-            reverse("document_view", args=["testbook"]) )
-
+        self.response = self.client.get(r['url'])
+        
         result = self.assert_json_response({
-            u'latest_shared_rev': created_rev,
+            u'public_revision': created_rev,
             # u'size': 15,
         })
 
@@ -129,8 +104,10 @@ class SimpleTest(TestCase):
         self.response = self.client.get( reverse("document_list_view") )
         self.assert_json_response({
             # u'latest_rev': u'f94a263812dbe46a3a13d5209bb119988d0078d5',
-            u'documents': [{u'url': u'/api/documents/sample', u'name': u'sample'},
-                {u'url': u'/api/documents/sample_pl', u'name': u'sample_pl'}],
+            u'documents': [
+                {u'url': u'/api/documents/sample', u'name': u'sample', u'parts': []},
+                {u'url': u'/api/documents/sample_pl', u'name': u'sample_pl', u'parts': []}
+            ],
         })
 
         self.response = self.client.get( \
@@ -138,8 +115,8 @@ class SimpleTest(TestCase):
 
         self.assert_json_response({
             #u'latest_shared_rev': u'f94a263812dbe46a3a13d5209bb119988d0078d5',
-            u'text_url': reverse("doctext_view", args=[u'sample']),
-            u'dc_url': reverse("docdc_view", args=[u'sample']),
+            #u'text_url': reverse("doctext_view", args=[u'sample']),
+            #u'dc_url': reverse("docdc_view", args=[u'sample']),
             # u'parts_url': reverse("docparts_view", args=[u'sample']),
             u'name': u'sample',
             # u'size': 20,
@@ -155,8 +132,8 @@ class SimpleTest(TestCase):
 
         resp = self.assert_json_response({
             #u'latest_shared_rev': u'f94a263812dbe46a3a13d5209bb119988d0078d5',
-            u'text_url': reverse("doctext_view", args=[u'sample']),
-            u'dc_url': reverse("docdc_view", args=[u'sample']),
+            #u'text_url': reverse("doctext_view", args=[u'sample']),
+            #u'dc_url': reverse("docdc_view", args=[u'sample']),
             # u'parts_url': reverse("docparts_view", args=[u'sample']),
             u'name': u'sample',
             # u'size': 20,
@@ -165,24 +142,27 @@ class SimpleTest(TestCase):
         self.response = self.client.get(resp['text_url'])
         self.assertEqual(self.response.status_code, 200)
         self.assertEqual(self.response.content, "Ala ma kota\n")
-#
-#
-#    @temprepo('simple')
-#    def test_document_text_update(self):
-#        self.assertTrue(self.client.login(username='admin', password='admin'))
-#        TEXT = u"Ala ma kota i psa"
-#
-#        self.response = self.client.put( \
-#            reverse("doctext_view", args=['testfile']), {'contents': TEXT })
-#        self.assertEqual(self.response.status_code, 200)
-#
-#        self.response = self.client.get( \
-#            reverse("doctext_view", args=['testfile']) )
-#        self.assertEqual(self.response.status_code, 200)
-#        self.assertEqual(self.response.content, TEXT)
-
-    def assert_json_response(self, must_have={}, exclude=[]):
-        self.assertEqual(self.response.status_code, 200)
+
+
+    @temprepo('simple')
+    def test_document_text_save(self):
+        self.assertTrue(self.client.login(username='admin', password='admin'))
+        TEXT = u"Ala ma kota i psa"
+
+        self.response = self.client.get(
+            reverse("document_view", args=['sample']) )
+            
+        resp = self.assert_json_response()
+
+        self.response = self.client.post(resp['text_url'], {
+            'revision': resp['user_revision'] ,'contents': TEXT })
+        result = self.assert_json_response(must_have={u'document': u'sample'} )
+        
+        #self.response = self.client.get(result['url'])
+        #self.assertEqual(self.response.content, TEXT)
+
+    def assert_json_response(self, must_have={}, exclude=[], code=200):
+        self.assertEqual(self.response.status_code, code)        
         result = json.loads(self.response.content)
 
         for (k,v) in must_have.items():