예제 #1
0
    def test_passing_int_and_float(self):
        plugin = RoutedPlugin('test.plugin')

        @plugin.route('/foo/<int:param1>/<float:param2>')
        def test_func(param1, param2):
            self.assertEqual(param1, 28)
            self.assertEqual(param2, 3.1416)

        with mock.patch('simpleplugin.sys.argv',
                        ['plugin://test.plugin/foo/28/3.1416', '1', '']):
            plugin.run()
예제 #2
0
    def test_multiple_routes(self):
        plugin = RoutedPlugin('test.plugin')

        @plugin.route('/foo', name='foo_route')
        @plugin.route('/bar/<param>')
        def test_func(param='ham'):
            self.assertEqual(param, 'ham')

        with mock.patch('simpleplugin.sys.argv',
                        ['plugin://test.plugin/foo', '1', '']):
            plugin.run()
        with mock.patch('simpleplugin.sys.argv',
                        ['plugin://test.plugin/bar/spam', '1', '']):
            self.assertRaises(AssertionError, plugin.run)
예제 #3
0
    def test_passing_arguments(self):
        plugin = RoutedPlugin('test.plugin')

        @plugin.route('/foo/<param1>/<param2>')
        def test_func(param1, param2):
            self.assertEqual(param1, 'ham')
            self.assertEqual(param2, u'спам')
            self.assertEqual(plugin.params.param3, u'Привет, мир!')

        with mock.patch('simpleplugin.sys.argv', [
                'plugin://test.plugin/foo/ham/%D1%81%D0%BF%D0%B0%D0%BC', '1',
                '?param3=%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%2C+%D0%BC%D0%B8%D1%80%21'
        ]):
            plugin.run()
예제 #4
0
            'url': plugin.url_for('film', id=release['filmID']),
            'context_menu': cm
            })
        num += 1
    return listing

@plugin.route('/mark_watched')
def mark_watched():
    id = plugin.params.id
    with plugin.get_storage("watched") as storage:
        storage[id] = 1
    return xbmc.executebuiltin("Container.Refresh")


@plugin.route('/mark_unwatched')
def mark_unwatched():
    id = plugin.params.id
    with plugin.get_storage("watched") as storage:
        storage[id] = 0
    return xbmc.executebuiltin("Container.Refresh")

def get_playcount(id):
    count = 0
    with plugin.get_storage("watched") as storage:
        count = storage.get(str(id), 0) 
    return count

if __name__ == '__main__':
    plugin.run()

gc.collect()