Changeset 3753

Show
Ignore:
Timestamp:
11/24/07 19:31:23 (1 year ago)
Author:
carndt
Message:

Fix ticket #1456 (url allow key with multiple values)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.0/turbogears/controllers.py

    r3506 r3753  
    513513            pairs = [(key, value)] 
    514514        for (k,v) in pairs: 
    515             if isinstance(value, unicode): 
    516                 value = value.encode("utf8") 
     515            if isinstance(v, unicode): 
     516                v = v.encode("utf8") 
    517517            args.append("%s=%s" % (k, urllib.quote(str(v)))) 
    518518    if args: 
  • branches/1.0/turbogears/tests/test_controllers.py

    r3689 r3753  
    585585                ["/foo?bar=qwer&bar=asdf", "/foo?bar=asdf&bar=qwer"] 
    586586 
     587    def test_unicode(self): 
     588        """url() can handle unicode parameters""" 
     589        testutil.create_request("/") 
     590        assert url('/', x=u'\N{LATIN SMALL LETTER A WITH GRAVE}' 
     591            u'\N{LATIN SMALL LETTER E WITH GRAVE}' 
     592            u'\N{LATIN SMALL LETTER I WITH GRAVE}' 
     593            u'\N{LATIN SMALL LETTER O WITH GRAVE}' 
     594            u'\N{LATIN SMALL LETTER U WITH GRAVE}') \ 
     595            == '/?x=%C3%A0%C3%A8%C3%AC%C3%B2%C3%B9' 
     596 
     597    def test_list(self): 
     598        """url() can handle list parameters, with unicode too""" 
     599        testutil.create_request("/") 
     600        assert url('/', foo=['bar', u'\N{LATIN SMALL LETTER A WITH GRAVE}']) \ 
     601            == '/?foo=bar&foo=%C3%A0' 
     602 
    587603    def tearDown(self): 
    588604        turbogears.config.update({"server.webpath" : ""}) 
    589605        turbogears.startup.startTurboGears() 
     606 
    590607 
    591608def test_index_trailing_slash():