4
from test import test_support
13
alist = [{'astring': 'foo@bar.baz.spam',
17
'anotherlist': ['.zyx.41'],
18
'abase64': xmlrpclib.Binary("my dog has fleas"),
19
'boolean': xmlrpclib.False,
20
'unicode': u'\u4000\u6000\u8000',
21
u'ukey\u4000': 'regular value',
24
class XMLRPCTestCase(unittest.TestCase):
26
def test_dump_load(self):
27
self.assertEquals(alist,
28
xmlrpclib.loads(xmlrpclib.dumps((alist,)))[0][0])
30
def test_dump_big_long(self):
31
self.assertRaises(OverflowError, xmlrpclib.dumps, (2L**99,))
33
def test_dump_bad_dict(self):
34
self.assertRaises(TypeError, xmlrpclib.dumps, ({(1,2,3): 1},))
36
def test_dump_big_int(self):
37
if sys.maxint > 2L**31-1:
38
self.assertRaises(OverflowError, xmlrpclib.dumps,
41
def test_dump_none(self):
42
value = alist + [None]
43
arg1 = (alist + [None],)
44
strg = xmlrpclib.dumps(arg1, allow_none=True)
45
self.assertEquals(value,
46
xmlrpclib.loads(strg)[0][0])
47
self.assertRaises(TypeError, xmlrpclib.dumps, (arg1,))
49
def test_default_encoding_issues(self):
50
# SF bug #1115989: wrong decoding in '_stringify'
51
utf8 = """<?xml version='1.0' encoding='iso-8859-1'?>
54
<string>abc \x95</string>
60
<value><string>ghi \x97</string></value>
66
old_encoding = sys.getdefaultencoding()
68
sys.setdefaultencoding("iso-8859-1")
70
(s, d), m = xmlrpclib.loads(utf8)
72
sys.setdefaultencoding(old_encoding)
75
self.assertEquals(s, u"abc \x95")
76
self.assert_(isinstance(s, unicode))
77
self.assertEquals(items, [(u"def \x96", u"ghi \x97")])
78
self.assert_(isinstance(items[0][0], unicode))
79
self.assert_(isinstance(items[0][1], unicode))
81
self.assertEquals(s, "abc \xc2\x95")
82
self.assertEquals(items, [("def \xc2\x96", "ghi \xc2\x97")])
85
test_support.run_unittest(XMLRPCTestCase)
88
if __name__ == "__main__":