def rmdir(session, args): # validate and build paths args = list(map(session.resolve_full_path, args)) for arg in args: if not arg: errors.path_invalid(arg) return is_dir = list(map(session.is_dir, args)) for i, answer in enumerate(is_dir): if not answer: errors.wrong_type(args[i], "directory") return to_remove = [] for dir in args: children = session.handle_ls(Commands.ls, [dir]) if len(children) > 2: logger.print_info("Directory {} is not empty. Do you want to remove it with all its contents?\n" "Print \"yes\" to proceed, or anything else to abort operation.".format(dir)) response = input() if response.strip(" ") != "yes": logger.print_info(f"Directory {dir} will not be removed") else: logger.print_info(f"Directory {dir} will be removed") to_remove.append(dir) else: to_remove.append(dir) CommandConfig.Actions.__n_args_handler(session.send_command, Commands.rmdir, to_remove)
def print(session, args): source = session.resolve_full_path(args[0]) if not source: errors.path_invalid(args[0]) return is_dir = session.is_dir(source) if is_dir: errors.wrong_type(args[0], "file") return session.handle_print(Commands.print, source)
def cd(session, args): new_path = session.resolve_full_path(args[0]) if not new_path: errors.path_invalid(new_path) return is_dir = session.is_dir(new_path) if not is_dir: errors.wrong_type(new_path, "directory") logger.handle_error(f"Path {new_path} is not a directory!") return session.change_curr_dir(new_path)
def rm(session, args): args = list(map(session.resolve_full_path, args)) for arg in args: if not arg: errors.path_invalid(arg) return is_dir = list(map(session.is_dir, args)) for i, answer in enumerate(is_dir): if answer == 1: errors.wrong_type(args[i], "file") return CommandConfig.Actions.__n_args_handler(session.send_command, Commands.rm, args)
def check_bogus_field_on_post(self, bogus_field): field, value, expected_type = bogus_field error = e.wrong_type(field=field, type=expected_type) response = self.post_resource({field: value}) response.assert_match(400, error)
def check_bogus_field_on_put(self, url, bogus_field): field, value, expected_type = bogus_field error = e.wrong_type(field=field, type=expected_type) response = client.put(url, {field: value}) response.assert_match(400, error)