Beispiel #1
0
    async def test_dispatch_handler__async_in_run_loop(
            self, target: arguments.CommandGroup):
        @target.command
        async def known(args) -> int:
            return 42

        with pytest.raises(RuntimeError):
            target.dispatch_handler(
                argparse.Namespace(**{":handler:": "known"}))
Beispiel #2
0
    def test_dispatch_handler__with_alias(self,
                                          target: arguments.CommandGroup):
        group = target.create_command_group("foo")

        @group.command(aliases=("k", "kwn"))
        def known(args) -> int:
            return 42

        actual = target.dispatch_handler(
            argparse.Namespace(**{
                ":handler:foo": "kwn",
                ":handler:": "foo"
            }))

        assert actual == 42
Beispiel #3
0
    def test_dispatch_handler__nested_command(self,
                                              target: arguments.CommandGroup):
        group = target.create_command_group("foo")

        @group.command
        def known(args) -> int:
            return 24

        actual = target.dispatch_handler(
            argparse.Namespace(**{
                ":handler:foo": "known",
                ":handler:": "foo"
            }))

        assert actual == 24
Beispiel #4
0
    def test_default(self, target: arguments.CommandGroup):
        @target.default
        def my_default(args):
            return 13

        actual = target.dispatch_handler(argparse.Namespace())

        assert actual == 13
Beispiel #5
0
    def test_create_command_group(self, target: arguments.CommandGroup):
        actual = target.create_command_group("foo",
                                             help_text="bar",
                                             aliases=("f", ))

        assert isinstance(actual, arguments.CommandGroup)
        assert actual.parser.prog == "test foo"
        assert "foo" in target._handlers
        assert "f" in target._handlers
Beispiel #6
0
    def test_dispatch_handler__async(self, target: arguments.CommandGroup):
        @target.command
        async def known(args) -> int:
            return 42

        actual = target.dispatch_handler(
            argparse.Namespace(**{":handler:": "known"}))

        assert actual == 42
Beispiel #7
0
def settings(app: CommandGroup):
    """
    Register settings report handler
    """

    @argument(
        "--out",
        dest="out",
        default=sys.stdout,
        type=FileType(mode="w"),
        help_text="File to output settings report to; default is stdout.",
    )
    def _handler(opts) -> Optional[int]:
        """
        Report of current settings.
        """
        from pyapp.conf.report import SettingsReport

        return SettingsReport(False, opts.no_color, opts.out).run()

    app.command(_handler, name="settings")
Beispiel #8
0
    def test_create_command_group__nested(self,
                                          target: arguments.CommandGroup):
        group = target.create_command_group("foo")
        actual = group.create_command_group("bar")

        assert actual.handler_dest == ":handler:foo:bar"