diff test/test_xmlrpc.py @ 4793:d9e5539303bd

Implement XMLRPC MultiCall (including test), see http://docs.python.org/2/library/xmlrpclib.html#xmlrpclib.MultiCall
author Ralf Schlatterbeck <rsc@runtux.com>
date Mon, 17 Jun 2013 16:53:34 +0200
parents 6e9b9743de89
children dad18ee491a9
line wrap: on
line diff
--- a/test/test_xmlrpc.py	Sat Jun 08 22:24:35 2013 -0400
+++ b/test/test_xmlrpc.py	Mon Jun 17 16:53:34 2013 +0200
@@ -6,11 +6,13 @@
 
 import unittest, os, shutil, errno, sys, difflib, cgi, re
 
+from xmlrpclib import MultiCall
 from roundup.cgi.exceptions import *
 from roundup import init, instance, password, hyperdb, date
-from roundup.xmlrpc import RoundupInstance
+from roundup.xmlrpc import RoundupInstance, RoundupDispatcher
 from roundup.backends import list_backends
 from roundup.hyperdb import String
+from roundup.cgi import TranslationService
 
 import db_test_base
 
@@ -221,6 +223,31 @@
         r = self.server.filter('issue', None, {}, group=keygroup)
         self.assertEqual(r, ['2', '3', '1'])
 
+    def testMulticall(self):
+        translator = TranslationService.get_translation(
+            language=self.instance.config["TRACKER_LANGUAGE"],
+            tracker_home=self.instance.config["TRACKER_HOME"])
+        self.server = RoundupDispatcher(self.db, self.instance.actions,
+            translator, allow_none = True)
+        class S:
+            multicall=self.server.funcs['system.multicall']
+        self.server.system = S()
+        self.db.issue.create(title='i1')
+        self.db.issue.create(title='i2')
+        m = MultiCall(self.server)
+        m.display('issue1')
+        m.display('issue2')
+        result = m()
+        results = [
+            {'files': [], 'status': '1', 'tx_Source': 'web',
+             'keyword': [], 'title': 'i1', 'nosy': [], 'messages': [],
+             'priority': None, 'assignedto': None, 'superseder': []},
+            {'files': [], 'status': '1', 'tx_Source': 'web',
+             'keyword': [], 'title': 'i2', 'nosy': [], 'messages': [],
+             'priority': None, 'assignedto': None, 'superseder': []}]
+        for n, r in enumerate(result):
+            self.assertEqual(r, results[n])
+
 def test_suite():
     suite = unittest.TestSuite()
     for l in list_backends():

Roundup Issue Tracker: http://roundup-tracker.org/