"""Same as `khalorg` but now the commands are patched by `echo` for testing."""

import sys
from argparse import ArgumentParser, Namespace
from os.path import dirname, join
from unittest.mock import patch

root: str = dirname(dirname(__file__))
sys.path.append(join(root, "src"))

from khalorg import cli  # noqa


def echo(**kwargs):
    return kwargs


@patch("khalorg.cli.edit", echo)
@patch("khalorg.cli.new", echo)
@patch("khalorg.cli.delete", echo)
@patch("khalorg.cli.list_command", echo)
@patch("khalorg.cli.sync", echo)
def main():
    parser: ArgumentParser = cli.get_parser()
    args: Namespace = parser.parse_args()
    stdout: str = args.func(**vars(args))
    print(stdout)


if __name__ == "__main__":
    main()
