Source code for utool.tests._oldtest_hash

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
REMEMBER In Python 3 think: text or data.
str.encode:   text -> data
bytes.decode: data -> text
"""
import utool
import six
from os.path import join

# import uuid


lorium_text = """
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. """


[docs]def test_file_hash(): resdir = utool.get_app_resource_dir('utool') test_fpath = join(resdir, 'lorium_ipsum.txt') if not utool.checkpath(test_fpath, verbose=True, n=100): utool.write_to(test_fpath, lorium_text) hash_ = utool.get_file_hash(test_fpath) target_hash_ = ( b'\xd1Y\xe5\xa2\xc1\xd8\xb8\nS\xb1?\x16\xfe\xc5\x88\xbd\x9e\xb4\xe3\xda' ) print(repr(hash_)) print(repr(target_hash_)) assert hash_ == target_hash_
[docs]def test_hashstr(): hashstr_ = utool.hashstr(lorium_text) print(repr(hashstr_)) target_hashstr = 'yy7@rnyuhe&zhj0k' print(repr(target_hashstr)) assert hashstr_ == target_hashstr
[docs]def test_hashstr_components(): import hashlib print('lorium_text = %r' % (lorium_text,)) data = lorium_text.encode('utf-8') print('data = %r' % (data,)) hashobj = hashlib.sha512(data) print('hashobj = %r' % (hashobj,)) hashstr = hashobj.hexdigest() print('hashstr = %r' % (hashstr,)) assert hashstr == ( 'c48e65cb600a078819bbfa227b8c02ee5e198cfe9ebc4eb6791f' '69103bb11bc4b2a685c67f9f09ca3a1f364732cef0b2f36a745b' 'ae2b02bd1972592eeb402bd2' ) hashstr2 = utool.convert_hexstr_to_bigbase(hashstr) print('hashstr2 = %r' % (hashstr2,)) assert ( hashstr2 == 'yy7@rnyuhe&zhj0kd+g&22imak39piwuq47t06dinfer0j7ye&l4mr!gl89!uj8v0idfjqy0pry972pu@ety8f8n7b8%0ob6' )
[docs]def test_augment_uuid(): # TODO: This is still divergent between python2 and python3 uuid_ = utool.get_zero_uuid() # uuid_ = uuid.uuid1() # uuidhex_data = uuid_.get_bytes() uuidhex_data = uuid_.bytes print('uuidhex_data = %r' % uuidhex_data) hashable_text1 = '[0, 0, 100, 100]' hashable_text2 = '' if six.PY3: hashable_data1 = hashable_text1.encode('utf-8') hashable_data2 = hashable_text2.encode('utf-8') else: hashable_data1 = hashable_text1 hashable_data2 = hashable_text2 augmented_data1 = uuidhex_data + hashable_data1 augmented_data2 = uuidhex_data + hashable_data2 augmented_uuid1_ = utool.hashable_to_uuid(augmented_data1) augmented_uuid2_ = utool.hashable_to_uuid(augmented_data2) print('augmented_data1 =%r' % augmented_data1) print('augmented_data2 =%r' % augmented_data2) struuid_ = utool.hashable_to_uuid(str(uuid_)) print(' uuid_=%r' % (uuid_,)) print('augmented_uuid1_=%r' % (augmented_uuid1_,)) print('augmented_uuid2_=%r' % (augmented_uuid2_,)) print('hash2uuid(uuid_)=%r' % (struuid_,)) # Test what is capable of being augmented import numpy as np augmented_uuid_T1 = utool.augment_uuid(uuid_, hashable_data1) augmented_uuid_T2 = utool.augment_uuid(uuid_, hashable_data2) augmented_uuid_T3 = utool.augment_uuid(uuid_, hashable_data2, hashable_data1) augmented_uuid_T4 = utool.augment_uuid(uuid_, hashable_data1, hashable_data2) augmented_uuid_T5 = utool.augment_uuid(uuid_, [1, 2, 3]) augmented_uuid_T5 = utool.augment_uuid(uuid_, (1, 2, 3)) augmented_uuid_T6 = utool.augment_uuid(uuid_, np.array((1, 2, 3))) print('augmented_uuid_T1=%r' % (augmented_uuid_T1,)) print('augmented_uuid_T2=%r' % (augmented_uuid_T2,)) print('augmented_uuid_T3=%r' % (augmented_uuid_T3,)) print('augmented_uuid_T4=%r' % (augmented_uuid_T4,)) print('augmented_uuid_T5=%r' % (augmented_uuid_T5,)) print('augmented_uuid_T6=%r' % (augmented_uuid_T6,))
[docs]def test_byteslike(): text = lorium_text[0:11] print('type(text) = %r' % type(text)) data = text.encode('utf-8') print('type(data) = %r' % type(data)) memview = memoryview(data) print('type(memview) = %r, memview=%r' % (type(memview), memview))
if __name__ == '__main__': test_byteslike() utool.run_test(test_augment_uuid) import sys print(sys.executable)