Exemplo n.º 1
0
    def test_set_defaults(self):
        session = Mock()
        plugin = Mock()
        parser = Mock()

        session.plugins = {"mock": plugin}
        plugin.arguments = Arguments(Argument("test1", default="default1"),
                                     Argument("test2", default="default2"),
                                     Argument("test3"))

        setup_plugin_args(session, parser)

        self.assertEqual(plugin.options.get("test1"), "default1")
        self.assertEqual(plugin.options.get("test2"), "default2")
        self.assertEqual(plugin.options.get("test3"), None)
Exemplo n.º 2
0
    def test_setup_plugin_args(self):
        session = Mock()
        plugin = Mock()
        parser = argparse.ArgumentParser(add_help=False)
        parser.add_argument("--global-arg1", default=123)
        parser.add_argument("--global-arg2", default=456)

        session.plugins = {"mock": plugin}
        plugin.arguments = Arguments(Argument("global-arg1", is_global=True),
                                     Argument("test1", default="default1"),
                                     Argument("test2", default="default2"),
                                     Argument("test3"))

        setup_plugin_args(session, parser)

        group_plugins = next((grp for grp in parser._action_groups
                              if grp.title == "Plugin options"),
                             None)  # pragma: no branch
        self.assertIsNotNone(group_plugins,
                             "Adds the 'Plugin options' arguments group")
        group_plugin = next(
            (grp
             for grp in group_plugins._action_groups if grp.title == "Mock"),
            None)  # pragma: no branch
        self.assertIsNotNone(
            group_plugin,
            "Adds the 'Mock' arguments group to the 'Plugin options' group")
        self.assertEqual([
            item for action in group_plugin._group_actions
            for item in action.option_strings
        ], [
            "--mock-test1", "--mock-test2", "--mock-test3"
        ], "Only adds plugin arguments and ignores global argument references")
        self.assertEqual([
            item for action in parser._actions
            for item in action.option_strings
        ], [
            "--global-arg1", "--global-arg2", "--mock-test1", "--mock-test2",
            "--mock-test3"
        ], "Parser has all arguments registered")

        self.assertEqual(plugin.options.get("global-arg1"), 123)
        self.assertEqual(plugin.options.get("global-arg2"), None)
        self.assertEqual(plugin.options.get("test1"), "default1")
        self.assertEqual(plugin.options.get("test2"), "default2")
        self.assertEqual(plugin.options.get("test3"), None)
Exemplo n.º 3
0
    def test_set_defaults(self):
        session = Mock()
        plugin = Mock()
        parser = Mock()

        session.plugins = {"mock": plugin}
        plugin.arguments = Arguments(
            Argument("test1", default="default1"),
            Argument("test2", default="default2"),
            Argument("test3")
        )

        setup_plugin_args(session, parser)

        self.assertEqual(plugin.options.get("test1"), "default1")
        self.assertEqual(plugin.options.get("test2"), "default2")
        self.assertEqual(plugin.options.get("test3"), None)
Exemplo n.º 4
0
    def test_setup_plugin_options(self):
        session = Mock()
        plugin = Mock(module="plugin")
        parser = argparse.ArgumentParser()
        parser.add_argument("--foo-foo", default=123)

        session.plugins = {"plugin": plugin}
        session.set_plugin_option = lambda name, key, value: session.plugins[
            name].options.update({key: value})
        plugin.arguments = Arguments(
            Argument("foo-foo", is_global=True),
            Argument("bar-bar", default=456),
            Argument("baz-baz", default=789, help=argparse.SUPPRESS))

        with patch("streamlink_cli.main.args") as args:
            args.foo_foo = 321
            args.plugin_bar_bar = 654
            args.plugin_baz_baz = 987  # this wouldn't be set by the parser if the argument is suppressed

            setup_plugin_args(session, parser)
            self.assertEqual(plugin.options.get("foo_foo"), 123,
                             "Sets the global-argument's default value")
            self.assertEqual(plugin.options.get("bar_bar"), 456,
                             "Sets the plugin-argument's default value")
            self.assertEqual(
                plugin.options.get("baz_baz"), 789,
                "Sets the suppressed plugin-argument's default value")

            setup_plugin_options(session, plugin)
            self.assertEqual(plugin.options.get("foo_foo"), 321,
                             "Sets the provided global-argument value")
            self.assertEqual(plugin.options.get("bar_bar"), 654,
                             "Sets the provided plugin-argument value")
            self.assertEqual(
                plugin.options.get("baz_baz"), 789,
                "Doesn't set values of suppressed plugin-arguments")