示例#1
0
 def test_zeros(self):
     for length in xrange(520):
         test_string = '\x00' * length
         encoded = cobs.encode(test_string)
         expected_encoded = '\x01' * (length + 1)
         self.assertEqual(encoded, expected_encoded, "encoding zeros failed for length %d" % length)
         decoded = cobs.decode(encoded)
         self.assertEqual(decoded, test_string, "decoding zeros failed for length %d" % length)
示例#2
0
 def test_random(self):
     try:
         for _test_num in xrange(self.NUM_TESTS):
             length = random.randint(0, self.MAX_LENGTH)
             test_string = ''.join(chr(random.randint(0,255)) for x in xrange(length))
             encoded = cobs.encode(test_string)
             self.assertTrue('\x00' not in encoded,
                             "encoding contains zero byte(s):\noriginal: %s\nencoded: %s" % (repr(test_string), repr(encoded)))
             self.assertTrue(len(encoded) <= len(test_string) + 1 + (len(test_string) // 254),
                             "encoding too big:\noriginal: %s\nencoded: %s" % (repr(test_string), repr(encoded)))
             decoded = cobs.decode(encoded)
             self.assertEqual(decoded, test_string,
                              "encoding and decoding random data failed:\noriginal: %s\ndecoded: %s" % (repr(test_string), repr(decoded)))
     except KeyboardInterrupt:
         pass
示例#3
0
 def test_decode_predefined_encodings(self):
     for (test_string, expected_encoded_string) in self.predefined_encodings:
         decoded = cobs.decode(expected_encoded_string)
         self.assertEqual(test_string, decoded)