Revision 6106e751

b/kamaki/clients/__init__.py
117 117

  
118 118
        :returns: (scheme, netloc)
119 119
        """
120
        url = _encode(str(url)) if url else 'http://127.0.0.1/'
120
        url = url or 'http://127.0.0.1/'
121 121
        url += '' if url.endswith('/') else '/'
122 122
        if path:
123 123
            url += _encode(path[1:] if path.startswith('/') else path)
124 124
        delim = '?'
125 125
        for key, val in params.items():
126
            val = quote('' if val in (None, False) else _encode('%s' % val))
126
            val = quote('' if val in (None, False) else '%s' % val)
127 127
            url += '%s%s%s' % (delim, key, ('=%s' % val) if val else '')
128 128
            delim = '&'
129 129
        parsed = urlparse(url)
130
        self.url = url
131
        self.path = parsed.path or '/'
130
        self.url = _encode(u'%s' % url)
131
        self.path = _encode((u'%s' % parsed.path) if parsed.path else '/')
132 132
        if parsed.query:
133
            self.path += '?%s' % parsed.query
134
        return (parsed.scheme, parsed.netloc)
133
            self.path += _encode(u'?%s' % parsed.query)
134
        return (_encode(parsed.scheme), _encode(parsed.netloc))
135 135

  
136 136
    def __init__(
137 137
            self, method, url, path,
......
176 176
        self._encode_headers()
177 177
        self.dump_log()
178 178
        conn.request(
179
            method=str(self.method.upper()),
180
            url=str(self.path),
179
            method=self.method.upper(),
180
            url=('%s' % self.path) or '',
181 181
            headers=self.headers,
182 182
            body=self.data)
183 183
        sendlog.info('')

Also available in: Unified diff