Use biginteger for integer overflowing XML-RPC integer dumper

issue10732
review363891002
This commit is contained in:
Cédric Krier committed 2021-09-19 00:04:57 +02:00
1 parent 33dfe0c713
commit c4c3540201
2 files changed
+14

No files matched your search

+10
View File
@@ -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):
+4
View File
@@ -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'))