changeset 5153:e9801faebbe4

added a couple of xmlrpc tests for untested functions/codepaths
author John Rouillard <rouilj@ieee.org>
date Wed, 20 Jul 2016 22:30:35 -0400
parents 65b42fd96c00
children f608eeecf638
files test/test_xmlrpc.py
diffstat 1 files changed, 59 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/test/test_xmlrpc.py	Wed Jul 20 21:35:55 2016 -0400
+++ b/test/test_xmlrpc.py	Wed Jul 20 22:30:35 2016 -0400
@@ -93,6 +93,58 @@
         results = self.server.display(fileid, 'content')
         self.assertEqual(results['content'], 'hello\r\nthere')
 
+    def testSchema(self):
+        schema={'status': [('order', '<roundup.hyperdb.Number>'),
+                           ('name', '<roundup.hyperdb.String>')],
+                'keyword': [('name', '<roundup.hyperdb.String>')],
+                'priority': [('order', '<roundup.hyperdb.Number>'),
+                             ('name', '<roundup.hyperdb.String>')],
+                'user': [('username', '<roundup.hyperdb.String>'),
+                         ('alternate_addresses', '<roundup.hyperdb.String>'),
+                         ('realname', '<roundup.hyperdb.String>'),
+                         ('roles', '<roundup.hyperdb.String>'),
+                         ('organisation', '<roundup.hyperdb.String>'),
+                         ('queries', '<roundup.hyperdb.Multilink to "query">'),
+                         ('phone', '<roundup.hyperdb.String>'),
+                         ('address', '<roundup.hyperdb.String>'),
+                         ('timezone', '<roundup.hyperdb.String>'),
+                         ('password', '<roundup.hyperdb.Password>')],
+                'file': [('content', '<roundup.hyperdb.String>'),
+                         ('type', '<roundup.hyperdb.String>'),
+                         ('name', '<roundup.hyperdb.String>')],
+                'msg': [('files', '<roundup.hyperdb.Multilink to "file">'),
+                        ('inreplyto', '<roundup.hyperdb.String>'),
+                        ('tx_Source', '<roundup.hyperdb.String>'),
+                        ('recipients', '<roundup.hyperdb.Multilink to "user">'),
+                        ('author', '<roundup.hyperdb.Link to "user">'),
+                        ('summary', '<roundup.hyperdb.String>'),
+                        ('content', '<roundup.hyperdb.String>'),
+                        ('messageid', '<roundup.hyperdb.String>'),
+                        ('date', '<roundup.hyperdb.Date>'),
+                        ('type', '<roundup.hyperdb.String>')],
+                'query': [('url', '<roundup.hyperdb.String>'),
+                          ('private_for', '<roundup.hyperdb.Link to "user">'),
+                          ('name', '<roundup.hyperdb.String>'),
+                          ('klass', '<roundup.hyperdb.String>')],
+                'issue': [('status', '<roundup.hyperdb.Link to "status">'),
+                          ('files', '<roundup.hyperdb.Multilink to "file">'),
+                          ('tx_Source', '<roundup.hyperdb.String>'),
+                          ('keyword', '<roundup.hyperdb.Multilink to "keyword">'),
+                          ('title', '<roundup.hyperdb.String>'),
+                          ('nosy', '<roundup.hyperdb.Multilink to "user">'),
+                          ('messages', '<roundup.hyperdb.Multilink to "msg">'), 
+                          ('priority', '<roundup.hyperdb.Link to "priority">'),
+                          ('assignedto', '<roundup.hyperdb.Link to "user">'),
+                          ('superseder', '<roundup.hyperdb.Multilink to "issue">')]}
+
+        results = self.server.schema()
+        self.assertEqual(results, schema)
+
+    def testLookup(self):
+        self.assertRaises(KeyError, self.server.lookup, 'user', '1')
+        results = self.server.lookup('user', 'admin')
+        self.assertEqual(results, '1')
+
     def testAction(self):
         # As this action requires special previledges, we temporarily switch
         # to 'admin'
@@ -106,6 +158,13 @@
         users_after = self.server.list('user')
         self.assertEqual(users_before, users_after)
 
+        # test a bogus action
+        with self.assertRaises(Exception) as cm:
+            self.server.action('bogus')
+        print cm.exception
+        self.assertEqual(cm.exception.message,
+                         'action "bogus" is not supported ')
+
     def testAuthDeniedEdit(self):
         # Wrong permissions (caught by roundup security module).
         self.assertRaises(Unauthorised, self.server.set,

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