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

        @plugin.route('/<int:param1>/<float:param2>')
        def test():
            pass

        url = plugin.url_for('test', param1=1, param2=3.14)
        self.assertEqual(url, 'plugin://test.plugin/1/3.14')
예제 #2
0
    def test_building_simple_url(self):
        plugin = RoutedPlugin('test.plugin')

        @plugin.route('/foo')
        def test():
            pass

        self.assertEqual(plugin.url_for('test'), 'plugin://test.plugin/foo')
        self.assertEqual(plugin.url_for(test), 'plugin://test.plugin/foo')
예제 #3
0
    def test_building_url_args_kwargs(self):
        plugin = RoutedPlugin('test.plugin')

        @plugin.route('/<param1>/<param2>/<param3>')
        def test():
            pass

        url = plugin.url_for('test', 'foo', param2='bar', param3='spam')
        self.assertEqual(url, 'plugin://test.plugin/foo/bar/spam')
예제 #4
0
    def test_building_url_args(self):
        plugin = RoutedPlugin('test.plugin')

        @plugin.route('/<param1>/<param2>')
        def test():
            pass

        url = plugin.url_for('test', 'foo', u'тест')
        self.assertEqual(url,
                         u'plugin://test.plugin/foo/%D1%82%D0%B5%D1%81%D1%82')
예제 #5
0
    def test_simple_routing(self):
        plugin = RoutedPlugin('test.plugin')

        @plugin.route('/foo')
        def test_func():
            raise AssertionError('Test passed!')

        with mock.patch('simpleplugin.sys.argv',
                        ['plugin://test.plugin/foo', '1', '']):
            self.assertRaises(AssertionError, plugin.run)
예제 #6
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()
예제 #7
0
    def test_routes_with_same_name(self):
        plugin = RoutedPlugin('test.plugin')
        try:

            @plugin.route('/foo')
            @plugin.route('/bar')
            def test_func():
                pass
        except SimplePluginError:
            pass
        else:
            self.fail('Added 2 routes with the same name!')
예제 #8
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)
예제 #9
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()
예제 #10
0
import os
import sys
import gc

import json
import xbmc, xbmcgui, xbmcplugin
import urllib
from simpleplugin import RoutedPlugin
from simpleplugin import MemStorage

try:
    import urllib2
except:
    import urllib.request as urllib2

plugin = RoutedPlugin()
storage = MemStorage('legends')

@plugin.route('/')
def root():
    listing = get_releases_list()
    return plugin.create_listing(listing, content='movies', sort_methods=(xbmcplugin.SORT_METHOD_DATEADDED, xbmcplugin.SORT_METHOD_VIDEO_RATING), cache_to_disk=True)


@plugin.route('/film')
def film():
    allmovies = storage['movies']

    use_torrserver = plugin.get_setting('use_engine', True)
    id = int(plugin.params.id)
    major_version = int(xbmc.getInfoLabel('System.BuildVersion')[:2])