Example #1
0
 def test_encode(self):
     '''Encode (regular)'''
     case = b'\x00\x01\x02\x03'
     expected = b'\xe0\x00\x01\x02\x03'
     ctx = E0D0Context()
     actual = ctx.finalize(case)
     self.assertEqual(actual, expected)
Example #2
0
 def test_encode_escape(self):
     '''Encode (escape)'''
     case = b'\xe0\xd0code'
     expected = b'\xe0\xd0\xdf\xd0\xcfcode'
     ctx = E0D0Context()
     actual = ctx.finalize(case)
     self.assertEqual(actual, expected)
Example #3
0
 def test_decode_bad_all_sync(self):
     '''Bad packet (all sync)'''
     case = b'\xe0\xe0\xe0'
     expected = (b'', )
     ctx = E0D0Context()
     actual = ctx.decode(case)
     self.assertEqual(actual, expected)
Example #4
0
 def test_decode(self):
     '''Decode (regular)'''
     case = b'\xe0\x00\x01\x02\x03'
     expected = (b'\x00\x01\x02\x03', )
     ctx = E0D0Context()
     actual = ctx.decode(case)
     self.assertEqual(actual, expected)
Example #5
0
 def test_decode_multipacket(self):
     '''Multipacket decode'''
     case = b'\xe0first\xe0second'
     expected = (b'first', b'second')
     ctx = E0D0Context()
     actual = ctx.decode(case)
     self.assertEqual(actual, expected)
Example #6
0
 def test_decode_trailing_sync(self):
     '''Trailing sync'''
     case = b'\xe0endless\xe0'
     expected = (b'endless', b'')
     ctx = E0D0Context()
     actual = ctx.decode(case)
     self.assertEqual(actual, expected)
Example #7
0
 def test_decode_escape(self):
     '''Decode (escape)'''
     case = b'\xe0\xd0\xdf\xd0\xcfcode'
     expected = (b'\xe0\xd0code', )
     ctx = E0D0Context()
     actual = ctx.decode(case)
     self.assertEqual(actual, expected)
Example #8
0
 def test_decode_bad_escape_after_escape(self):
     '''Bad packet (escape after escape)'''
     case = b'\xe0one\xd0\xd0swo'
     expected = (b'onetwo', )
     ctx = E0D0Context()
     with self.assertWarnsRegex(UserWarning,
                                r'^Escape received after escape'):
         actual = ctx.decode(case)
     self.assertEqual(actual, expected)
Example #9
0
 def test_decode_bad_sync_after_escape(self):
     '''Bad packet (sync after escape)'''
     case = b'\xe0I am escaping...\xd0\xe0oh'
     expected = (b'I am escaping...', b'oh')
     ctx = E0D0Context()
     with self.assertWarnsRegex(UserWarning,
                                r'^Sync received after escape'):
         actual = ctx.decode(case)
     self.assertEqual(actual, expected)
Example #10
0
 def test_encode_chaining(self):
     '''Chaining encode'''
     case1 = b'this is '
     case2 = b'one message'
     expected = b'\xe0this is one message'
     ctx = E0D0Context()
     actual = ctx.encode(case1)
     actual += ctx.finalize(case2)
     self.assertEqual(actual, expected)
Example #11
0
 def test_decode_multipacket_chained_incomplete(self):
     '''Multipacket decode (chained and incomplete)'''
     case1 = b'\xe0third\xe0for'
     case2 = b'th'
     expected1 = (b'third', b'for')
     expected2 = (b'th', )
     ctx = E0D0Context()
     actual = ctx.decode(case1)
     self.assertEqual(actual, expected1)
     actual = ctx.decode(case2)
     self.assertEqual(actual, expected2)
Example #12
0
 def test_decode_multipacket_chained(self):
     '''Multipacket decode (chained)'''
     case1 = b'\xe0first'
     case2 = b'\xe0second'
     expected1 = (b'first', )
     expected2 = (b'second', )
     ctx = E0D0Context()
     actual = ctx.decode(case1)
     self.assertEqual(actual, expected1)
     actual = ctx.decode(case2)
     self.assertEqual(actual, expected2)
Example #13
0
 def test_encode_multipacket(self):
     '''Multipacket encode'''
     case1 = b'this is'
     case2 = b'two messages'
     expected1 = b'\xe0this is'
     expected2 = b'\xe0two messages'
     ctx = E0D0Context()
     actual = ctx.finalize(case1)
     self.assertEqual(actual, expected1)
     actual = ctx.finalize(case2)
     self.assertEqual(actual, expected2)