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')
    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')
    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')
    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')