def test_specific_bad_data(self): """ A few implict error/edge cases in the SMAZ algorithm """ buffer_overflow = chr(255) + chr(255) # Buffer overflow - expects 254 bytes, gets 0 multibyte_non_ascii = chr(255) + chr(1) + chr(200) + chr(200) # Non ascii multi-byte payload singlebyte_non_ascii = chr(254) + chr(129) # Non ascii single-byte payload self.assertFalse(_check_ascii(multibyte_non_ascii)) self.assertEqual(decompress(buffer_overflow, raise_on_error=False), None) self.assertRaises(ValueError, decompress, buffer_overflow, raise_on_error=True) self.assertEqual(decompress(multibyte_non_ascii), (chr(200) + chr(200))) # Returns non-ascii data self.assertRaises(ValueError, decompress, multibyte_non_ascii, raise_on_error=True, check_ascii=True) self.assertEqual(decompress(multibyte_non_ascii, raise_on_error=False, check_ascii=True), None) self.assertEqual(decompress(singlebyte_non_ascii), chr(129)) # Returns non-ascii data self.assertRaises(ValueError, decompress, singlebyte_non_ascii, raise_on_error=True, check_ascii=True) self.assertEqual(decompress(singlebyte_non_ascii, raise_on_error=False, check_ascii=True), None)
def test_ascii_check(self): """ Test the ascii check """ self.assertTrue(_check_ascii('1230ABCZADSADW')) self.assertFalse(_check_ascii(chr(129) + chr(129))) self.assertEqual(None, compress(chr(129), raise_on_error=False))
def test_ascii_check(self): """ Test the ascii check """ self.assertTrue(_check_ascii("1230ABCZADSADW")) self.assertFalse(_check_ascii(chr(129) + chr(129))) self.assertEquals(None, compress(chr(129), raise_on_error=False))