Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def check_one_answer(self, has_source, id_relative_date_action_list, expected_actions):
source_file = File('a', []) if has_source else None
dest_file_versions = [
FileVersion(id_, 'a', self.today + relative_date * self.one_day_millis, action, 100)
for (id_, relative_date, action) in id_relative_date_action_list
]
dest_file = File('a', dest_file_versions)
bucket = MagicMock()
api = MagicMock()
api.get_bucket_by_name.return_value = bucket
dest_folder = B2Folder('bucket-1', 'folder', api)
actual_actions = list(
make_b2_keep_days_actions(
source_file, dest_file, dest_folder, dest_folder, self.keep_days, self.today
)
)
actual_action_strs = [str(a) for a in actual_actions]
self.assertEqual(expected_actions, actual_action_strs)
raise UnSyncableFilename(
"sync does not support file names with drive letters", file_name
)
if current_name != file_name and current_name is not None and current_versions:
yield File(current_name, current_versions)
current_versions = []
file_info = file_version_info.file_info
if SRC_LAST_MODIFIED_MILLIS in file_info:
mod_time_millis = int(file_info[SRC_LAST_MODIFIED_MILLIS])
else:
mod_time_millis = file_version_info.upload_timestamp
assert file_version_info.size is not None
current_name = file_name
file_version = FileVersion(
file_version_info.id_, file_version_info.file_name, mod_time_millis,
file_version_info.action, file_version_info.size
)
if policies_manager.should_exclude_file_version(file_version):
continue
current_versions.append(file_version)
if current_name is not None and current_versions:
yield File(current_name, current_versions)
# Sorting the list of triples puts them in the right order because 'name',
# the sort key, is the first thing in the triple.
for (name, local_path, b2_path) in sorted(names):
if name.endswith('/'):
for subdir_file in cls._walk_relative_paths(
local_path, b2_path, reporter, policies_manager
):
yield subdir_file
else:
# Check that the file still exists and is accessible, since it can take a long time
# to iterate through large folders
if is_file_readable(local_path, reporter):
file_mod_time = int(os.path.getmtime(local_path) * 1000)
file_size = os.path.getsize(local_path)
version = FileVersion(local_path, b2_path, file_mod_time, 'upload', file_size)
if policies_manager.should_exclude_file_version(version):
continue
yield File(b2_path, [version])