Ejemplo n.º 1
0
 def test_incorrect_value(self):
     'Incorrect url encoded value'
     t = UrlTemplate('/<name>')
     value = quote(u'/имя'.encode('utf-8'))[:-1]
     self.assertEqual(t.match(value), (value, {
         'name': u'\u0438\u043c\ufffd%8'
     }))
Ejemplo n.º 2
0
 def test_match_from_begining_without_params(self):
     'UrlTemplate match method without params (from begining of str)'
     ut = UrlTemplate('simple', match_whole_str=False)
     self.assertEqual(ut.match('simple'), ('simple', {}))
     self.assertEqual(ut.match('simple/sdffds'), ('simple', {}))
     self.assertEqual(ut.match('/simple'), (None, {}))
     self.assertEqual(ut.match('/simple/'), (None, {}))
Ejemplo n.º 3
0
 def test_multiple_converters(self):
     'Multiple converters'
     t = UrlTemplate('/<name>/text/<action>')
     self.assertEqual(t.match('/this/text/edit'), ('/this/text/edit', {
         'name': 'this',
         'action': 'edit'
     }))
Ejemplo n.º 4
0
 def test_incorrect_urlencoded_path(self):
     'Incorrect url encoded path'
     t = UrlTemplate('/<name>')
     value = quote(u'/имя'.encode('utf-8')) + '%r1'
     self.assertEqual(t.match(value), (value, {
         'name': u'\u0438\u043c\u044f%r1'
     }))
Ejemplo n.º 5
0
 def test_unicode(self):
     'Unicode values of converters'
     t = UrlTemplate('/<name>/text/<action>')
     url = quote(u'/имя/text/действие'.encode('utf-8'))
     self.assertEqual(t.match(url), (url, {
         'name': u'имя',
         'action': u'действие'
     }))
Ejemplo n.º 6
0
 def test_multiple_converters_postfix(self):
     'Multiple converters with postfix data'
     t = UrlTemplate('/<name>/text/<action>/post')
     self.assertEqual(t.match('/this/text/edit/post'),
                      ('/this/text/edit/post', {
                          'name': 'this',
                          'action': 'edit'
                      }))
     self.assertEqual(t.match('/this/text/edit'), (None, {}))
Ejemplo n.º 7
0
    def test_redefine_converters(self):
        from iktomi.web.url_converters import Integer

        class DoubleInt(Integer):
            def to_python(self, value, env=None):
                return Integer.to_python(self, value, env) * 2
            def to_url(self, value):
                return str(value / 2)

        ut = UrlTemplate('/simple/<int:id>',
                         converters={'int': DoubleInt})
        self.assertEqual(ut(id=2), '/simple/1')
        self.assertEqual(ut.match('/simple/1'), ('/simple/1', {'id': 2}))
Ejemplo n.º 8
0
    def test_redefine_converters(self):
        from iktomi.web.url_converters import Integer

        class DoubleInt(Integer):
            def to_python(self, value, env=None):
                return Integer.to_python(self, value, env) * 2

            def to_url(self, value):
                return str(value // 2)

        ut = UrlTemplate('/simple/<int:id>', converters={'int': DoubleInt})
        self.assertEqual(ut(id=2), '/simple/1')
        self.assertEqual(ut.match('/simple/1'), ('/simple/1', {'id': 2}))
Ejemplo n.º 9
0
 def test_match_from_begining_with_params(self):
     'UrlTemplate match method with params (from begining of str)'
     ut = UrlTemplate('/simple/<int:id>', match_whole_str=False)
     self.assertEqual(ut.match('/simple/2'), ('/simple/2', {'id': 2}))
     self.assertEqual(ut.match('/simple/2/sdfsf'), ('/simple/2', {'id': 2}))
     self.assertEqual(ut.match('/simple'), (None, {}))
     self.assertEqual(ut.match('/simple/d'), (None, {}))
     self.assertEqual(ut.match('/simple/d/sdfsdf'), (None, {}))
Ejemplo n.º 10
0
Archivo: url.py Proyecto: oas89/iktomi
 def test_converter_with_args(self):
     'Converter with args'
     class Conv(Converter):
         def __init__(self, *items):
             self.items = items
         def to_python(self, value, **kw):
             if value not in self.items:
                 raise ConvertError(self, value)
             return value
     t = UrlTemplate(u'/<conv(u"text", u"тест", noquote):name>',
                     converters={'conv': Conv})
     value = quote(u'/имя'.encode('utf-8'))
     self.assertEqual(t.match(value), (None, {}))
     value = quote(u'/text'.encode('utf-8'))
     self.assertEqual(t.match(value), (value, {'name': u'text'}))
     value = quote(u'/тест'.encode('utf-8'))
     self.assertEqual(t.match(value), (value, {'name': u'тест'}))
     value = quote(u'/noquote'.encode('utf-8'))
     self.assertEqual(t.match(value), (value, {'name': u'noquote'}))
Ejemplo n.º 11
0
 def test_match_from_begining_without_params(self):
     'UrlTemplate match method without params (from begining of str)'
     ut = UrlTemplate('simple', match_whole_str=False)
     self.assertEqual(ut.match('simple'), ('simple', {}))
     self.assertEqual(ut.match('simple/sdffds'), ('simple', {}))
     self.assertEqual(ut.match('/simple'), (None, {}))
     self.assertEqual(ut.match('/simple/'), (None, {}))
Ejemplo n.º 12
0
 def test_match_from_begining_with_params(self):
     'UrlTemplate match method with params (from begining of str)'
     ut = UrlTemplate('/simple/<int:id>', match_whole_str=False)
     self.assertEqual(ut.match('/simple/2'), ('/simple/2', {'id':2}))
     self.assertEqual(ut.match('/simple/2/sdfsf'), ('/simple/2', {'id':2}))
     self.assertEqual(ut.match('/simple'), (None, {}))
     self.assertEqual(ut.match('/simple/d'), (None, {}))
     self.assertEqual(ut.match('/simple/d/sdfsdf'), (None, {}))
Ejemplo n.º 13
0
    def test_anonymous(self):
        class SimpleConv(Converter):
            regex = '.+'

        convs = {'string': SimpleConv}

        ut = UrlTemplate('/simple/<id>')

        regexp = construct_re(ut.template, converters=convs, anonymous=True)[0]
        self.assertEqual(regexp.pattern, r'^\/simple\/.+')

        regexp = construct_re(ut.template, converters=convs,
                              anonymous=False)[0]
        self.assertEqual(regexp.pattern, r'^\/simple\/(?P<id>.+)')
Ejemplo n.º 14
0
Archivo: url.py Proyecto: ods/iktomi
 def test_converter_with_args(self):
     'Converter with args'
     class Conv(Converter):
         def __init__(self, *items):
             self.items = items
         def to_python(self, value, **kw):
             if value not in self.items:
                 raise ConvertError(self, value)
             return value
     t = UrlTemplate(u'/<conv(u"text", u"тест", noquote):name>',
                     converters={'conv': Conv})
     value = quote(u'/имя'.encode('utf-8'))
     self.assertEqual(t.match(value), (None, {}))
     value = quote(u'/text'.encode('utf-8'))
     self.assertEqual(t.match(value), (value, {'name': u'text'}))
     value = quote(u'/тест'.encode('utf-8'))
     self.assertEqual(t.match(value), (value, {'name': u'тест'}))
     value = quote(u'/noquote'.encode('utf-8'))
     self.assertEqual(t.match(value), (value, {'name': u'noquote'}))
Ejemplo n.º 15
0
Archivo: url.py Proyecto: ods/iktomi
 def test_default_converter(self):
     'Default converter test'
     t = UrlTemplate('/<name>')
     self.assertEqual(t.match('/somevalue'), ('/somevalue', {'name': 'somevalue'}))
Ejemplo n.º 16
0
 def test_match_without_params(self):
     'UrlTemplate match method without params'
     ut = UrlTemplate('simple')
     self.assertEqual(ut.match('simple'), ('simple', {}))
     self.assertEqual(ut.match('/simple'), (None, {}))
Ejemplo n.º 17
0
 def test_match_with_params(self):
     'UrlTemplate match method with params'
     ut = UrlTemplate('/simple/<int:id>')
     self.assertEqual(ut.match('/simple/2'), ('/simple/2', {'id':2}))
     self.assertEqual(ut.match('/simple'), (None, {}))
     self.assertEqual(ut.match('/simple/d'), (None, {}))
Ejemplo n.º 18
0
Archivo: url.py Proyecto: oas89/iktomi
 def test_incorrect_urlencoded_path(self):
     'Incorrect url encoded path'
     t = UrlTemplate('/<name>')
     value = quote(u'/имя'.encode('utf-8'))+'%r1'
     self.assertEqual(t.match(value), (value, {'name': u'\u0438\u043c\u044f%r1'}))
Ejemplo n.º 19
0
 def test_var_name_with_underscore(self):
     ut = UrlTemplate('<message_uid>')
     self.assertEqual(ut(message_uid='uid'), 'uid')
Ejemplo n.º 20
0
Archivo: url.py Proyecto: oas89/iktomi
 def test_unicode(self):
     'Unicode values of converters'
     t = UrlTemplate('/<name>/text/<action>')
     url = quote(u'/имя/text/действие'.encode('utf-8'))
     self.assertEqual(t.match(url), (url, {'name': u'имя', 'action': u'действие'}))
Ejemplo n.º 21
0
Archivo: url.py Proyecto: oas89/iktomi
 def test_incorrect_value(self):
     'Incorrect url encoded value'
     t = UrlTemplate('/<name>')
     value = quote(u'/имя'.encode('utf-8'))[:-1]
     self.assertEqual(t.match(value), (value, {'name': u'\u0438\u043c\ufffd%8'}))
Ejemplo n.º 22
0
Archivo: url.py Proyecto: oas89/iktomi
 def test_multiple_converters(self):
     'Multiple converters'
     t = UrlTemplate('/<name>/text/<action>')
     self.assertEqual(t.match('/this/text/edit'), ('/this/text/edit', {'name': 'this', 'action': 'edit'}))
Ejemplo n.º 23
0
Archivo: url.py Proyecto: oas89/iktomi
 def test_multiple_converters_postfix(self):
     'Multiple converters with postfix data'
     t = UrlTemplate('/<name>/text/<action>/post')
     self.assertEqual(t.match('/this/text/edit/post'), ('/this/text/edit/post', {'name': 'this', 'action': 'edit'}))
     self.assertEqual(t.match('/this/text/edit'), (None, {}))
Ejemplo n.º 24
0
 def test_empty_match(self):
     'UrlTemplate match method with empty template'
     ut = UrlTemplate('')
     self.assertEqual(ut.match(''), ('', {}))
     self.assertEqual(ut.match('/'), (None, {}))
Ejemplo n.º 25
0
 def test_match_with_params(self):
     'UrlTemplate match method with params'
     ut = UrlTemplate('/simple/<int:id>')
     self.assertEqual(ut.match('/simple/2'), ('/simple/2', {'id': 2}))
     self.assertEqual(ut.match('/simple'), (None, {}))
     self.assertEqual(ut.match('/simple/d'), (None, {}))
Ejemplo n.º 26
0
 def test_only_converter_is_present(self):
     ut = UrlTemplate('<int:id>')
     self.assertEqual(ut(id=2), '2')
Ejemplo n.º 27
0
Archivo: url.py Proyecto: ods/iktomi
 def test_static_text(self):
     'Simple text match'
     t = UrlTemplate('/test/url')
     self.assertEqual(t.match('/test/url'), ('/test/url', {}))
Ejemplo n.º 28
0
 def test_empty_match(self):
     'UrlTemplate match method with empty template'
     ut = UrlTemplate('')
     self.assertEqual(ut.match(''), ('', {}))
     self.assertEqual(ut.match('/'), (None, {}))
Ejemplo n.º 29
0
 def test_builder_with_params(self):
     'UrlTemplate builder method (with params)'
     ut = UrlTemplate('/simple/<int:id>/data')
     self.assertEqual(ut(id=2), '/simple/2/data')
Ejemplo n.º 30
0
 def test_builder_without_params(self):
     'UrlTemplate builder method (without params)'
     ut = UrlTemplate('/simple')
     self.assertEqual(ut(), '/simple')
Ejemplo n.º 31
0
Archivo: url.py Proyecto: ods/iktomi
 def test_incorrect_url_template1(self):
     'Incorrect url template 1'
     self.assertRaises(ValueError, lambda: UrlTemplate('/<:name>/'))
Ejemplo n.º 32
0
 def test_default_converter(self):
     ut = UrlTemplate('<message>')
     self.assertEqual(ut(message='hello'), 'hello')
Ejemplo n.º 33
0
Archivo: url.py Proyecto: ods/iktomi
 def test_match(self):
     'Simple match'
     t = UrlTemplate('/')
     self.assertEqual(t.match('/'), ('/', {}))
Ejemplo n.º 34
0
Archivo: url.py Proyecto: oas89/iktomi
 def test_match(self):
     'Simple match'
     t = UrlTemplate('/')
     self.assertEqual(t.match('/'), ('/', {}))
Ejemplo n.º 35
0
Archivo: url.py Proyecto: ods/iktomi
 def test_converter(self):
     'Simple text match'
     t = UrlTemplate('/<string:name>')
     self.assertEqual(t.match('/somevalue'), ('/somevalue', {'name': 'somevalue'}))
Ejemplo n.º 36
0
Archivo: url.py Proyecto: oas89/iktomi
 def test_static_text(self):
     'Simple text match'
     t = UrlTemplate('/test/url')
     self.assertEqual(t.match('/test/url'), ('/test/url', {}))
Ejemplo n.º 37
0
Archivo: url.py Proyecto: oas89/iktomi
 def test_converter(self):
     'Simple text match'
     t = UrlTemplate('/<string:name>')
     self.assertEqual(t.match('/somevalue'), ('/somevalue', {'name': 'somevalue'}))
Ejemplo n.º 38
0
Archivo: url.py Proyecto: oas89/iktomi
 def test_default_converter(self):
     'Default converter test'
     t = UrlTemplate('/<name>')
     self.assertEqual(t.match('/somevalue'), ('/somevalue', {'name': 'somevalue'}))
Ejemplo n.º 39
0
Archivo: url.py Proyecto: ods/iktomi
 def test_unknown_converter(self):
     'Unknown converter'
     self.assertRaises(KeyError, lambda: UrlTemplate('/<baba:name>/'))
     self.assertRaises(KeyError, lambda: UrlTemplate('/<baba:name></'))
Ejemplo n.º 40
0
 def test_match_without_params(self):
     'UrlTemplate match method without params'
     ut = UrlTemplate('simple')
     self.assertEqual(ut.match('simple'), ('simple', {}))
     self.assertEqual(ut.match('/simple'), (None, {}))