-
Notifications
You must be signed in to change notification settings - Fork 66
Closed
Milestone
Description
Describe the bug
Attempting to use uplink.Url results in an AttributeError.
...
return self._check_async_results(future_response.location)
File "/home/cognifloyd/v/st2/lib/python2.7/site-packages/uplink/builder.py", line 99, in __call__
self._request_definition.define_request(request_builder, args, kwargs)
File "/home/cognifloyd/v/st2/lib/python2.7/site-packages/uplink/commands.py", line 271, in define_request
request_builder.url = request_builder.url.build()
AttributeError: 'str' object has no attribute 'build'
To Reproduce
Use uplink.Url as an argument and provide a string with a full URL.
Expected behavior
A clear and concise description of what you expected to happen.
No error.
Additional context
It looks like
- commands.py line 265:
request_builder.Urlis set to an instance ofuplink.utils.URIBuilder - commands.py line 267: eventually calls
uplink.Url._modify_request()- arguments.py line 682: replace
request_builder.Urlwith the final string
- arguments.py line 682: replace
- commands.py line 271: calls
request_builder.url.build()assuming that it is still aURIBuilderinstance.
Lines 263 to 271 in 8483dcc
| def define_request(self, request_builder, func_args, func_kwargs): | |
| request_builder.method = self._method | |
| request_builder.url = utils.URIBuilder(self._uri) | |
| request_builder.return_type = self._return_type | |
| self._argument_handler.handle_call( | |
| request_builder, func_args, func_kwargs | |
| ) | |
| self._method_handler.handle_builder(request_builder) | |
| request_builder.url = request_builder.url.build() |
Lines 680 to 682 in 0d29483
| def _modify_request(cls, request_builder, value): | |
| """Updates request url.""" | |
| request_builder.url = value |
So, maybe what's needed is:
def define_request(...):
...
self._argument...
self._method...
if isinstance(request_builder.url, utils.URIBuilder):
request_builder.url = request_builder.url.build() Metadata
Metadata
Assignees
Labels
No labels