diff options
author | Mark Dickinson <mdickinson@enthought.com> | 2011-03-27 15:25:40 (GMT) |
---|---|---|
committer | Mark Dickinson <mdickinson@enthought.com> | 2011-03-27 15:25:40 (GMT) |
commit | 92b60d55d9115af9661618d7d24da929f181be68 (patch) | |
tree | 16326265d34fcff48260bdb26cf403d97f0f6951 /Lib | |
parent | ccd2283c6fa83a7759a84605810e28713e9f1755 (diff) | |
download | cpython-92b60d55d9115af9661618d7d24da929f181be68.zip cpython-92b60d55d9115af9661618d7d24da929f181be68.tar.gz cpython-92b60d55d9115af9661618d7d24da929f181be68.tar.bz2 |
Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when trying to pack a negative (in-range) integer.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_xdrlib.py | 2 | ||||
-rw-r--r-- | Lib/xdrlib.py | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/Lib/test/test_xdrlib.py b/Lib/test/test_xdrlib.py index 073448c..6004c9f 100644 --- a/Lib/test/test_xdrlib.py +++ b/Lib/test/test_xdrlib.py @@ -12,6 +12,7 @@ class XDRTest(unittest.TestCase): a = [b'what', b'is', b'hapnin', b'doctor'] p.pack_int(42) + p.pack_int(-17) p.pack_uint(9) p.pack_bool(True) p.pack_bool(False) @@ -29,6 +30,7 @@ class XDRTest(unittest.TestCase): self.assertEqual(up.get_position(), 0) self.assertEqual(up.unpack_int(), 42) + self.assertEqual(up.unpack_int(), -17) self.assertEqual(up.unpack_uint(), 9) self.assertTrue(up.unpack_bool() is True) diff --git a/Lib/xdrlib.py b/Lib/xdrlib.py index b293e06..4e48677 100644 --- a/Lib/xdrlib.py +++ b/Lib/xdrlib.py @@ -50,7 +50,9 @@ class Packer: def pack_uint(self, x): self.__buf.write(struct.pack('>L', x)) - pack_int = pack_uint + def pack_int(self, x): + self.__buf.write(struct.pack('>l', x)) + pack_enum = pack_int def pack_bool(self, x): |