[Erp5-report] r42104 nicolas - /erp5/trunk/utils/cloudooo/cloudooo/handler/ooo/tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Jan 7 09:47:48 CET 2011
Author: nicolas
Date: Fri Jan 7 09:47:47 2011
New Revision: 42104
URL: http://svn.erp5.org?rev=42104&view=rev
Log:
Check that conversion succeeds.
If daemon is not able to convert at least one document, then the test will fail.
Modified:
erp5/trunk/utils/cloudooo/cloudooo/handler/ooo/tests/testHighLoad.py
Modified: erp5/trunk/utils/cloudooo/cloudooo/handler/ooo/tests/testHighLoad.py
URL: http://svn.erp5.org/erp5/trunk/utils/cloudooo/cloudooo/handler/ooo/tests/testHighLoad.py?rev=42104&r1=42103&r2=42104&view=diff
==============================================================================
--- erp5/trunk/utils/cloudooo/cloudooo/handler/ooo/tests/testHighLoad.py [utf8] (original)
+++ erp5/trunk/utils/cloudooo/cloudooo/handler/ooo/tests/testHighLoad.py [utf8] Fri Jan 7 09:47:47 2011
@@ -31,10 +31,20 @@ import os
import subprocess
from xmlrpclib import ServerProxy
from base64 import encodestring, decodestring
-from multiprocessing import Process
+from multiprocessing import Process, Array
from cloudoooTestCase import CloudoooTestCase, make_suite
+import magic
DAEMON = True
+mime_decoder = magic.Magic(mime=True)
+
+def basicTestToGenerate(id, proxy, data, source_format, destination_format,
+ result_list):
+ """Test to use method generate of server"""
+ document = proxy.convertFile(data, source_format, destination_format)
+ mimetype = mime_decoder.from_buffer(decodestring(document))
+ assert mimetype == 'application/pdf'
+ result_list[id] = True
class TestHighLoad(CloudoooTestCase):
"""Test with many simultaneous connection"""
@@ -43,32 +53,23 @@ class TestHighLoad(CloudoooTestCase):
"""Creates connection with cloudooo Server"""
self.proxy = ServerProxy("http://%s:%s" % (self.hostname, self.cloudooo_port))
- def basicTestToGenerate(self, id, data, source_format, destination_format):
- """Test to use method generate of server"""
- document = self.proxy.convertFile(data, source_format, destination_format)
- document_output_url = os.path.join(self.tmp_url, "%s.%s" % (id, destination_format))
- open(document_output_url, 'wb').write(decodestring(document))
- command_list = ["file", "-b", document_output_url]
- stdout, stderr = subprocess.Popen(command_list,
- stdout=subprocess.PIPE).communicate()
- self.assertEquals(stdout, 'PDF document, version 1.4\n')
- self.assertEquals(stderr, None)
- os.remove(document_output_url)
- self.assertEquals(os.path.exists(document_output_url), False)
-
def testGenerateHighLoad(self):
"""Sends many request to Server. Calling generate method"""
process_list = []
- data = open("data/test.doc", 'r').read()
- for id in range(50):
- process = Process(target=self.basicTestToGenerate, args=(id,
- encodestring(data), 'doc', 'pdf'))
+ data = encodestring(open("data/test.doc", 'r').read())
+ LOOP = 50
+ result_list = Array('i', range(LOOP))
+ for id in range(LOOP):
+ process = Process(target=basicTestToGenerate, args=(id, self.proxy, data,
+ 'doc', 'pdf',
+ result_list))
process.start()
process_list.append(process)
for proc in process_list[:]:
proc.join()
del proc
+ self.assertTrue(all(result_list))
def test_suite():
More information about the Erp5-report
mailing list