def test_named_length(self): val = 0x010203 cases = ( ('crc32', '00010203'), ('Crc32', '00010203'), ('CRC32', '00010203'), ('md5', '00000000000000000000000000010203'), ('Md5', '00000000000000000000000000010203'), ('MD5', '00000000000000000000000000010203'), ('sha1', '0000000000000000000000000000000000010203'), ('Sha1', '0000000000000000000000000000000000010203'), ('SHA1', '0000000000000000000000000000000000010203'), ('sha256', '0000000000000000000000000000000000000000000000000000000000010203' ), ('Sha256', '0000000000000000000000000000000000000000000000000000000000010203' ), ('SHA256', '0000000000000000000000000000000000000000000000000000000000010203' ), ) for typ, expected in cases: c = Hex(val, typ) self.assertEqual(expected, c)
def test_attr(self): c = Hex('010203', 3) self.assertEqual('010203', c.hex) self.assertEqual(b'\1\2\3', c.bytes) self.assertEqual(256**2 + 2 * 256 + 3, c.int) self.assertIs('010203', c.hex) self.assertIsNot('010203', c)
def test_prefix(self): pref = '1234' cases = ( ('crc32', '12340000'), ('md5', '12340000000000000000000000000000'), ('sha1', '1234000000000000000000000000000000000000'), ('sha256', '1234000000000000000000000000000000000000000000000000000000000000' ), ) for typ, expected in cases: dd('typ:', typ) c = Hex((pref, 0), typ) self.assertEqual(expected, c) self.assertEqual('12340101', Hex((pref, 1), 'crc32'))
def test_init(self): byte_length = 3 cases = ( (0, 0), ('000000', 0), ('\0\0\0', 0), (256**2 + 2 * 256 + 3, 0x010203), ('010203', 0x010203), ('\1\2\3', 0x010203), ) for inp, expected in cases: dd(inp, expected) c = Hex(inp, byte_length) self.assertEqual(expected, c.int) self.assertEqual('%06x' % expected, c)
def test_init_invalid(self): byte_length = 3 cases = ( (256**3 - 1, None), (256**3, ValueError), (-1, ValueError), ('\1\2', ValueError), ('\1\2\3\4', ValueError), ('0102', ValueError), ('01020', ValueError), ('0102030', ValueError), ('01020304', ValueError), ({}, TypeError), ) for inp, err in cases: dd(inp, err) if err is None: Hex(inp, byte_length) else: self.assertRaises(err, Hex, inp, byte_length)
def test_checksum_shortcut(self): val = 0x010203 self.assertEqual(Hex(val, 'crc32'), Hex.crc32(val)) self.assertEqual(Hex(val, 'md5'), Hex.md5(val)) self.assertEqual(Hex(val, 'sha1'), Hex.sha1(val)) self.assertEqual(Hex(val, 'sha256'), Hex.sha256(val))