summaryrefslogtreecommitdiff
path: root/tests/test_message.py
diff options
context:
space:
mode:
authorScott Maxwell <scott@codecobblers.com>2013-10-30 17:09:34 -0700
committerScott Maxwell <scott@codecobblers.com>2013-10-30 17:09:34 -0700
commit0e4ce3762a5b25c5d3eb89335495d3bb9054e3e7 (patch)
treea77bfec4e3a29e9827d4e75de932e34947536181 /tests/test_message.py
parent339d73cc13765bea4dd5b683ca14b02c9baa589f (diff)
downloadparamiko-0e4ce3762a5b25c5d3eb89335495d3bb9054e3e7.tar.gz
Fix message sending
Create constants for byte messages, implement asbytes so many methods can take Message and key objects directly and split get_string into get_text and get_binary. Also, change int handling to use mpint with a flag whenever the int is greater than 32 bits.
Diffstat (limited to 'tests/test_message.py')
-rw-r--r--tests/test_message.py60
1 files changed, 34 insertions, 26 deletions
diff --git a/tests/test_message.py b/tests/test_message.py
index d0e604e3..2580115e 100644
--- a/tests/test_message.py
+++ b/tests/test_message.py
@@ -27,10 +27,16 @@ from paramiko.common import *
class MessageTest (unittest.TestCase):
- __a = '\x00\x00\x00\x17\x07\x60\xe0\x90\x00\x00\x00\x01q\x00\x00\x00\x05hello\x00\x00\x03\xe8' + ('x' * 1000)
- __b = '\x01\x00\xf3\x00\x3f\x00\x00\x00\x10huey,dewey,louie'
- __c = '\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\xf5\xe4\xd3\xc2\xb1\x09\x00\x00\x00\x01\x11\x00\x00\x00\x07\x00\xf5\xe4\xd3\xc2\xb1\x09\x00\x00\x00\x06\x9a\x1b\x2c\x3d\x4e\xf7'
- __d = '\x00\x00\x00\x05\x00\x00\x00\x05\x11\x22\x33\x44\x55\x01\x00\x00\x00\x03cat\x00\x00\x00\x03a,b'
+ if PY3:
+ __a = b'\x00\x00\x00\x17\x07\x60\xe0\x90\x00\x00\x00\x01q\x00\x00\x00\x05hello\x00\x00\x03\xe8' + (b'x' * 1000)
+ __b = b'\x01\x00\xf3\x00\x3f\x00\x00\x00\x10huey,dewey,louie'
+ __c = b'\x00\x00\x00\x05\xff\x00\x00\x00\x07\x00\xf5\xe4\xd3\xc2\xb1\x09\x00\x00\x00\x01\x11\x00\x00\x00\x07\x00\xf5\xe4\xd3\xc2\xb1\x09\x00\x00\x00\x06\x9a\x1b\x2c\x3d\x4e\xf7'
+ __d = b'\x00\x00\x00\x05\xff\x00\x00\x00\x05\x11\x22\x33\x44\x55\xff\x00\x00\x00\x0a\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03cat\x00\x00\x00\x03a,b'
+ else:
+ __a = '\x00\x00\x00\x17\x07\x60\xe0\x90\x00\x00\x00\x01q\x00\x00\x00\x05hello\x00\x00\x03\xe8' + ('x' * 1000)
+ __b = '\x01\x00\xf3\x00\x3f\x00\x00\x00\x10huey,dewey,louie'
+ __c = '\x00\x00\x00\x05\xff\x00\x00\x00\x07\x00\xf5\xe4\xd3\xc2\xb1\x09\x00\x00\x00\x01\x11\x00\x00\x00\x07\x00\xf5\xe4\xd3\xc2\xb1\x09\x00\x00\x00\x06\x9a\x1b\x2c\x3d\x4e\xf7'
+ __d = '\x00\x00\x00\x05\xff\x00\x00\x00\x05\x11\x22\x33\x44\x55\xff\x00\x00\x00\x0a\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03cat\x00\x00\x00\x03a,b'
def test_1_encode(self):
msg = Message()
@@ -39,63 +45,65 @@ class MessageTest (unittest.TestCase):
msg.add_string('q')
msg.add_string('hello')
msg.add_string('x' * 1000)
- self.assertEquals(str(msg), self.__a)
+ self.assertEquals(msg.asbytes(), self.__a)
msg = Message()
msg.add_boolean(True)
msg.add_boolean(False)
- msg.add_byte('\xf3')
- msg.add_bytes('\x00\x3f')
+ msg.add_byte(byte_chr(0xf3))
+
+ msg.add_bytes(zero_byte + byte_chr(0x3f))
msg.add_list(['huey', 'dewey', 'louie'])
- self.assertEquals(str(msg), self.__b)
+ self.assertEquals(msg.asbytes(), self.__b)
msg = Message()
msg.add_int64(5)
- msg.add_int64(0xf5e4d3c2b109L)
+ msg.add_int64(0xf5e4d3c2b109)
msg.add_mpint(17)
- msg.add_mpint(0xf5e4d3c2b109L)
- msg.add_mpint(-0x65e4d3c2b109L)
- self.assertEquals(str(msg), self.__c)
+ msg.add_mpint(0xf5e4d3c2b109)
+ msg.add_mpint(-0x65e4d3c2b109)
+ self.assertEquals(msg.asbytes(), self.__c)
def test_2_decode(self):
msg = Message(self.__a)
self.assertEquals(msg.get_int(), 23)
self.assertEquals(msg.get_int(), 123789456)
- self.assertEquals(msg.get_string(), 'q')
- self.assertEquals(msg.get_string(), 'hello')
- self.assertEquals(msg.get_string(), 'x' * 1000)
+ self.assertEquals(msg.get_text(), 'q')
+ self.assertEquals(msg.get_text(), 'hello')
+ self.assertEquals(msg.get_text(), 'x' * 1000)
msg = Message(self.__b)
self.assertEquals(msg.get_boolean(), True)
self.assertEquals(msg.get_boolean(), False)
- self.assertEquals(msg.get_byte(), '\xf3')
- self.assertEquals(msg.get_bytes(2), '\x00\x3f')
+ self.assertEquals(msg.get_byte(), byte_chr(0xf3))
+ self.assertEquals(msg.get_bytes(2), zero_byte + byte_chr(0x3f))
self.assertEquals(msg.get_list(), ['huey', 'dewey', 'louie'])
msg = Message(self.__c)
self.assertEquals(msg.get_int64(), 5)
- self.assertEquals(msg.get_int64(), 0xf5e4d3c2b109L)
+ self.assertEquals(msg.get_int64(), 0xf5e4d3c2b109)
self.assertEquals(msg.get_mpint(), 17)
- self.assertEquals(msg.get_mpint(), 0xf5e4d3c2b109L)
- self.assertEquals(msg.get_mpint(), -0x65e4d3c2b109L)
+ self.assertEquals(msg.get_mpint(), 0xf5e4d3c2b109)
+ self.assertEquals(msg.get_mpint(), -0x65e4d3c2b109)
def test_3_add(self):
msg = Message()
msg.add(5)
- msg.add(0x1122334455L)
+ msg.add(0x1122334455)
+ msg.add(0xf00000000000000000)
msg.add(True)
msg.add('cat')
msg.add(['a', 'b'])
- self.assertEquals(str(msg), self.__d)
+ self.assertEquals(msg.asbytes(), self.__d)
def test_4_misc(self):
msg = Message(self.__d)
self.assertEquals(msg.get_int(), 5)
- self.assertEquals(msg.get_mpint(), 0x1122334455L)
- self.assertEquals(msg.get_so_far(), self.__d[:13])
- self.assertEquals(msg.get_remainder(), self.__d[13:])
+ self.assertEquals(msg.get_int(), 0x1122334455)
+ self.assertEquals(msg.get_int(), 0xf00000000000000000)
+ self.assertEquals(msg.get_so_far(), self.__d[:29])
+ self.assertEquals(msg.get_remainder(), self.__d[29:])
msg.rewind()
self.assertEquals(msg.get_int(), 5)
self.assertEquals(msg.get_so_far(), self.__d[:4])
self.assertEquals(msg.get_remainder(), self.__d[4:])
-