Changeset 3755

Show
Ignore:
Timestamp:
11/24/07 19:55:52 (8 months ago)
Author:
carndt
Message:

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

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.1/CHANGELOG.txt

    r3745 r3755  
    6868  Every string starting with a dash (``-``) indicates that the column will  
    6969  have its default ordering reversed (#1618). 
     70* turbogears.url() allows to to create an url with multiple values for the  
     71  same key (#1456). 
    7072 
    7173Fixes 
  • branches/1.1/turbogears/controllers.py

    r3455 r3755  
    514514            pairs = [(key, value)] 
    515515        for (k,v) in pairs: 
    516             if isinstance(value, unicode): 
    517                 value = value.encode("utf8") 
     516            if v is None: 
     517                continue 
     518            if isinstance(v, unicode): 
     519                v = v.encode("utf8") 
    518520            args.append("%s=%s" % (k, urllib.quote(str(v)))) 
    519521    if args: 
  • branches/1.1/turbogears/tests/test_controllers.py

    r3690 r3755  
    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():