Changeset 3831

Show
Ignore:
Timestamp:
12/17/07 09:18:40 (8 months ago)
Author:
chrisz
Message:

Identity could break with nested params when user was not logged in.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.0/turbogears/identity/tests/test_identity.py

    r3817 r3831  
    131131    test_params = turbogears.expose()(test_params) 
    132132    test_params = identity.require(identity.not_anonymous())(test_params) 
     133 
    133134 
    134135class TestIdentity(unittest.TestCase): 
     
    461462        """Test that the decode filter doesn't break with nested 
    462463        variables and Identity""" 
    463         testutil.create_request('/test_params?user_name=samIam&password=secret&login=Login&' 
    464             + urllib.quote(IdentityRoot._test_params.decode('utf-8').encode('latin-1'), '=&')) 
     464        params = urllib.quote(IdentityRoot._test_params.decode('utf-8').encode('latin-1'), '=&') 
     465        testutil.create_request('/test_params?' + params) 
     466        firstline = cherrypy.response.body[0] 
     467        assert 'identity_failed_answer' in firstline, firstline 
     468        params += '&user_name=samIam&password=secret&login=Login' 
     469        testutil.create_request('/test_params?' + params) 
    465470        firstline = cherrypy.response.body[0] 
    466471        assert 'params ok' in firstline, firstline 
     472 
    467473 
    468474class TestTGUser(testutil.DBTest): 
  • branches/1.0/turbogears/visit/api.py

    r3818 r3831  
    216216            elif isinstance(value, list): 
    217217                return map(encode_utf8, value) 
    218             else: 
    219                 try: 
    220                     return value.encode('utf-8') 
    221                 except AttributeError: 
    222                     pass 
     218            elif isinstance(value, unicode): 
     219                return value.encode('utf-8') 
    223220            return value 
    224221