Exemple #1
0
        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)
Exemple #2
0
        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)
Exemple #3
0
        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)
Exemple #4
0
        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)
Exemple #5
0
    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)
Exemple #6
0
    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)
Exemple #7
0
    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)
Exemple #8
0
    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)