def test_hash_consistency(): for reverse in (False, True): with temporary_content(CONTENT) as td: dir_hash = CacheHelper.dir_hash(td) with temporary_file() as tf: zipped = write_zipfile(td, tf.name, reverse=reverse) with contextlib.closing(zipfile.ZipFile(tf.name, 'r')) as zf: zip_hash = CacheHelper.zip_hash(zf) assert zip_hash == dir_hash assert zip_hash != sha1().hexdigest() # make sure it's not an empty hash
def test_hash(): empty_hash = sha1().hexdigest() with temporary_file() as fp: fp.flush() assert empty_hash == CacheHelper.hash(fp.name) with temporary_file() as fp: string = 'asdf' * 1024 * sha1().block_size + 'extra padding' fp.write(string) fp.flush() assert sha1(string.encode('utf-8')).hexdigest() == CacheHelper.hash(fp.name) with temporary_file() as fp: empty_hash = sha1() fp.write('asdf') fp.flush() hash_output = CacheHelper.hash(fp.name, digest=empty_hash) assert hash_output == empty_hash.hexdigest()