Use biginteger for integer overflowing XML-RPC integer dumper
issue10732 review363891002
This commit is contained in:
1 parent
33dfe0c713
commit
c4c3540201
2 files changed
+14
No files matched your search
@@ -55,10 +55,20 @@ def dump_timedelta(self, value, write):
|
||||
self.dump_struct(value, write)
|
||||
|
||||
|
||||
def dump_long(self, value, write):
|
||||
try:
|
||||
self.dump_long(value, write)
|
||||
except OverflowError:
|
||||
write('<value><biginteger>')
|
||||
write(str(int(value)))
|
||||
write('</biginteger></value>\n')
|
||||
|
||||
|
||||
client.Marshaller.dispatch[Decimal] = dump_decimal
|
||||
client.Marshaller.dispatch[datetime.date] = dump_date
|
||||
client.Marshaller.dispatch[datetime.time] = dump_time
|
||||
client.Marshaller.dispatch[datetime.timedelta] = dump_timedelta
|
||||
client.Marshaller.dispatch[int] = dump_long
|
||||
|
||||
|
||||
def dump_struct(self, value, write, escape=client.escape):
|
||||
|
||||
@@ -100,6 +100,10 @@ class XMLTestCase(unittest.TestCase):
|
||||
'Test time'
|
||||
self.dumps_loads(datetime.datetime.now().time())
|
||||
|
||||
def test_biginteger(self):
|
||||
"Test BigInteger"
|
||||
self.dumps_loads(client.MAXINT + 1)
|
||||
|
||||
def test_immutable_dict(self):
|
||||
"Test ImmutableDict"
|
||||
self.dumps_loads(ImmutableDict(foo='bar'))
|
||||
|
||||
Reference in new issue
Block a user