示例#1
0
 def test_basic_routing(self):
     plugin = NewPlugin()
     @plugin.route('/')
     def main_menu():
         return [{'label': 'Hello XBMC'}]
     with preserve_cli_mode(cli_mode=False):
         test_run = _TestPluginRunner(plugin)
         resp = test_run('/')
         self.assertEqual('Hello XBMC', resp[0].get_label())
示例#2
0
    def test_basic_routing(self):
        plugin = NewPlugin()

        @plugin.route("/")
        def main_menu():
            return [{"label": "Hello XBMC"}]

        with preserve_cli_mode(cli_mode=False):
            test_run = _TestPluginRunner(plugin)
            resp = test_run("/")
            self.assertEqual("Hello XBMC", resp[0].get_label())
示例#3
0
    def test_basic_routing(self):
        plugin = new_plugin()

        @plugin.route('/')
        def main_menu():
            return [{'label': 'Hello Kodi'}]

        with preserve_cli_mode(cli_mode=False):
            test_run = _test_plugin_runner(plugin)
            resp = test_run('/')
            self.assertEqual('Hello Kodi', resp[0].get_label())
示例#4
0
    def test_init_not_cli_mode_default_args(self):
        with preserve_cli_mode(cli_mode=False):
            with preserve_cwd(
                    os.path.join(os.path.dirname(__file__), 'data', 'plugin')):
                plugin = Plugin()

        self.assertEqual('plugin.video.academicearth', plugin.id)
        self.assertEqual(plugin.name, 'Academic Earth')
        self.assertTrue(os.path.isdir(plugin.storage_path))
        self.assertEqual(plugin.added_items, [])
        self.assertRaises(Exception, getattr, plugin, 'handle')
        self.assertRaises(Exception, getattr, plugin, 'request')
示例#5
0
    def test_init_not_cli_mode_default_args(self):
        with preserve_cli_mode(cli_mode=False):
            with preserve_cwd(
                    os.path.join(os.path.dirname(__file__), 'data', 'plugin')):
                plugin = Plugin()

        self.assertEqual('plugin.video.academicearth', plugin.id)
        self.assertEqual(plugin.name, 'Academic Earth')
        self.assertTrue(os.path.isdir(plugin.storage_path))
        self.assertEqual(plugin.added_items, [])
        self.assertRaises(Exception, getattr, plugin, 'handle')
        self.assertRaises(Exception, getattr, plugin, 'request')
示例#6
0
    def test_init_not_cli_mode_default_args(self):
        name = "Hello XBMC"
        path = os.path.join(os.path.dirname(__file__), "data", "plugin", "addon.py")
        with preserve_cli_mode(cli_mode=False):
            with preserve_cwd(os.path.join(os.path.dirname(__file__), "data", "plugin")):
                plugin = Plugin()

        self.assertEqual("plugin.video.academicearth", plugin.id)
        self.assertEqual(plugin.name, "Academic Earth")
        self.assertTrue(os.path.isdir(plugin.storage_path))
        self.assertEqual(plugin.added_items, [])
        self.assertRaises(Exception, getattr, plugin, "handle")
        self.assertRaises(Exception, getattr, plugin, "request")
示例#7
0
 def test_redirect(self):
     plugin = NewPlugin()
     @plugin.route('/')
     def main_menu():
         url = plugin.url_for('videos')
         return plugin.redirect(url)
     @plugin.route('/videos/')
     def videos():
         return [{'label': 'Hello Videos'}]
     with preserve_cli_mode(cli_mode=False):
         test_run = _TestPluginRunner(plugin)
         resp = test_run('/')
         self.assertEqual('Hello Videos', resp[0].get_label())
示例#8
0
    def test_init_not_cli_mode(self):
        name = 'Hello XBMC'
        plugin_id = 'plugin.video.helloxbmc'
        path = os.path.join(os.path.dirname(__file__), 'data', 'plugin', 'addon.py')
        with preserve_cwd(os.path.dirname(path)):
            with preserve_cli_mode(cli_mode=False):
                plugin = Plugin(name, plugin_id, path)

        self.assertEqual(plugin_id, plugin.id)
        self.assertEqual(plugin.name, name)
        self.assertTrue(os.path.isdir(plugin.storage_path))
        self.assertEqual(plugin.added_items, [])
        self.assertRaises(Exception, getattr, plugin, 'handle')
        self.assertRaises(Exception, getattr, plugin, 'request')
示例#9
0
    def test_init_not_cli_mode(self):
        name = "Hello XBMC"
        plugin_id = "plugin.video.helloxbmc"
        path = os.path.join(os.path.dirname(__file__), "data", "plugin", "addon.py")
        with preserve_cwd(os.path.dirname(path)):
            with preserve_cli_mode(cli_mode=False):
                plugin = Plugin(name, plugin_id, path)

        self.assertEqual(plugin_id, plugin.id)
        self.assertEqual(plugin.name, name)
        self.assertTrue(os.path.isdir(plugin.storage_path))
        self.assertEqual(plugin.added_items, [])
        self.assertRaises(Exception, getattr, plugin, "handle")
        self.assertRaises(Exception, getattr, plugin, "request")
示例#10
0
    def test_init_not_cli_mode(self):
        name = 'Hello Kodi'
        plugin_id = 'plugin.video.hellokodi'
        path = os.path.join(os.path.dirname(__file__), 'data', 'plugin',
                            'plugin.py')
        with preserve_cwd(os.path.dirname(path)):
            with preserve_cli_mode(cli_mode=False):
                plugin = Plugin(name, plugin_id, path)

        self.assertEqual(plugin_id, plugin.id)
        self.assertEqual(plugin.name, name)
        self.assertTrue(os.path.isdir(plugin.storage_path))
        self.assertEqual(plugin.added_items, [])
        self.assertRaises(Exception, getattr, plugin, 'handle')
        self.assertRaises(Exception, getattr, plugin, 'request')
示例#11
0
    def test_redirect(self):
        plugin = new_plugin()

        @plugin.route('/')
        def main_menu():
            url = plugin.url_for('videos')
            return plugin.redirect(url)

        @plugin.route('/videos/')
        def videos():
            return [{'label': 'Hello Videos'}]

        with preserve_cli_mode(cli_mode=False):
            test_run = _test_plugin_runner(plugin)
            resp = test_run('/')
            self.assertEqual('Hello Videos', resp[0].get_label())
示例#12
0
    def test_redirect(self):
        plugin = NewPlugin()

        @plugin.route("/")
        def main_menu():
            url = plugin.url_for("videos")
            return plugin.redirect(url)

        @plugin.route("/videos/")
        def videos():
            return [{"label": "Hello Videos"}]

        with preserve_cli_mode(cli_mode=False):
            test_run = _TestPluginRunner(plugin)
            resp = test_run("/")
            self.assertEqual("Hello Videos", resp[0].get_label())
示例#13
0
 def test_options_routing(self):
     plugin = NewPlugin()
     @plugin.route('/person/<name>/')
     @plugin.route('/')
     @plugin.route('/dave/', options={'name': 'dave'})
     def person(name='chris'):
         return [{'label': 'Hello %s' % name}]
     with preserve_cli_mode(cli_mode=False):
         test_run = _TestPluginRunner(plugin)
         resp = test_run('/person/jon/')
         print plugin.request.url
         self.assertEqual('Hello jon', resp[0].get_label())
         resp = test_run('/dave/')
         self.assertEqual('Hello dave', resp[0].get_label())
         resp = test_run('/')
         self.assertEqual('Hello chris', resp[0].get_label())
示例#14
0
    def test_options_routing(self):
        plugin = new_plugin()

        @plugin.route('/person/<name>/')
        @plugin.route('/')
        @plugin.route('/dave/', options={'name': 'dave'})
        def person(name='chris'):
            return [{'label': 'Hello %s' % name}]

        with preserve_cli_mode(cli_mode=False):
            test_run = _test_plugin_runner(plugin)
            resp = test_run('/person/jon/')
            self.assertEqual('Hello jon', resp[0].get_label())
            resp = test_run('/dave/')
            self.assertEqual('Hello dave', resp[0].get_label())
            resp = test_run('/')
            self.assertEqual('Hello chris', resp[0].get_label())
示例#15
0
    def test_options_routing(self):
        plugin = NewPlugin()

        @plugin.route("/person/<name>/")
        @plugin.route("/")
        @plugin.route("/dave/", options={"name": "dave"})
        def person(name="chris"):
            return [{"label": "Hello %s" % name}]

        with preserve_cli_mode(cli_mode=False):
            test_run = _TestPluginRunner(plugin)
            resp = test_run("/person/jon/")
            print plugin.request.url
            self.assertEqual("Hello jon", resp[0].get_label())
            resp = test_run("/dave/")
            self.assertEqual("Hello dave", resp[0].get_label())
            resp = test_run("/")
            self.assertEqual("Hello chris", resp[0].get_label())
示例#16
0
    def test_info_types(self):
        name = 'Hello XBMC'
        path = __file__

        # can't parse from id, default to video
        with preserve_cli_mode(cli_mode=False):
            with preserve_cwd(os.path.join(os.path.dirname(__file__), 'data', 'plugin')):
                plugin = Plugin(name, 'script.module.test', path)
                self.assertEqual(plugin.info_type, 'video')

                # parse from ID
                plugin = Plugin(name, 'plugin.audio.test')
                self.assertEqual(plugin.info_type, 'music')

                plugin = Plugin(name, 'plugin.video.test')
                self.assertEqual(plugin.info_type, 'video')

                plugin = Plugin(name, 'plugin.image.test')
                self.assertEqual(plugin.info_type, 'pictures')

                # info_type param should override value parsed from id
                plugin = Plugin(name, 'plugin.video.test', info_type='music')
                self.assertEqual(plugin.info_type, 'music')
示例#17
0
    def test_info_types(self):
        name = "Hello XBMC"
        path = __file__

        # can't parse from id, default to video
        with preserve_cli_mode(cli_mode=False):
            with preserve_cwd(os.path.join(os.path.dirname(__file__), "data", "plugin")):
                plugin = Plugin(name, "script.module.test", path)
                self.assertEqual(plugin.info_type, "video")

                # parse from ID
                plugin = Plugin(name, "plugin.audio.test")
                self.assertEqual(plugin.info_type, "music")

                plugin = Plugin(name, "plugin.video.test")
                self.assertEqual(plugin.info_type, "video")

                plugin = Plugin(name, "plugin.image.test")
                self.assertEqual(plugin.info_type, "pictures")

                # info_type param should override value parsed from id
                plugin = Plugin(name, "plugin.video.test", info_type="music")
                self.assertEqual(plugin.info_type, "music")
示例#18
0
    def test_info_types(self):
        name = 'Hello Kodi'
        path = __file__

        # can't parse from id, default to video
        with preserve_cli_mode(cli_mode=False):
            with preserve_cwd(
                    os.path.join(os.path.dirname(path), 'data', 'plugin')):
                plugin = Plugin(name, 'script.module.test', path)
                self.assertEqual(plugin.info_type, 'video')

                # parse from ID
                plugin = Plugin(name, 'plugin.audio.test')
                self.assertEqual(plugin.info_type, 'music')

                plugin = Plugin(name, 'plugin.video.test')
                self.assertEqual(plugin.info_type, 'video')

                plugin = Plugin(name, 'plugin.image.test')
                self.assertEqual(plugin.info_type, 'pictures')

                # info_type param should override value parsed from id
                plugin = Plugin(name, 'plugin.video.test', info_type='music')
                self.assertEqual(plugin.info_type, 'music')