def _generate_db(source): """Regenerate the hash.json database which contains all of the sha1 signatures of media files. """ result = Result() source = os.path.abspath(os.path.expanduser(source)) extensions = set() all_files = set() valid_files = set() if not os.path.isdir(source): log.error('Source is not a valid directory %s' % source) sys.exit(1) subclasses = get_all_subclasses(Base) for cls in subclasses: extensions.update(cls.extensions) all_files.update(FILESYSTEM.get_all_files(source, None)) db = Db() db.backup_hash_db() db.reset_hash_db() for current_file in all_files: if os.path.splitext(current_file)[1][1:].lower() not in extensions: log.info('Skipping invalid file %s' % current_file) result.append((current_file, False)) continue result.append((current_file, True)) db.add_hash(db.checksum(current_file), current_file) db.update_hash_db() result.write()
def test_get_all_empty(): db = Db() db.reset_hash_db() counter = 0 for key, value in db.all(): counter += 1 # there's a final iteration because of the generator assert counter == 0, counter
def test_reset_hash_db(): db = Db() random_key = helper.random_string(10) random_value = helper.random_string(12) # Test with explicit False value as 3rd param db.add_hash(random_key, random_value, False) assert random_key in db.hash_db, random_key db.reset_hash_db() assert random_key not in db.hash_db, random_key
def test_get_all(): db = Db() db.reset_hash_db() random_keys = [] random_values = [] for _ in range(10): random_keys.append(helper.random_string(10)) random_values.append(helper.random_string(12)) db.add_hash(random_keys[-1:][0], random_values[-1:][0], False) counter = 0 for key, value in db.all(): assert key in random_keys, key assert value in random_values, value counter += 1 assert counter == 10, counter
def _generate_db(source): """Regenerate the hash.json database which contains all of the sha1 signatures of media files. """ result = Result() source = os.path.abspath(os.path.expanduser(source)) if not os.path.isdir(source): log.error('Source is not a valid directory %s' % source) sys.exit(1) db = Db() db.backup_hash_db() db.reset_hash_db() for current_file in FILESYSTEM.get_all_files(source): result.append((current_file, True)) db.add_hash(db.checksum(current_file), current_file) log.progress() db.update_hash_db() log.progress('', True) result.write()