async def put(url: str, log_404=True, json=None, data=None, **kwargs: Any) -> Optional[ClientResponse]: if HTTP_PREFIX is None: raise OpenhabConnectionNotSetUpError() if IS_READ_ONLY or not IS_ONLINE: return None assert not url.startswith('/'), url url = f'{HTTP_PREFIX}/rest/{url}/' mgr = _RequestContextManager( HTTP_SESSION._request(METH_PUT, url, allow_redirects=HTTP_ALLOW_REDIRECTS, data=data, json=json, **kwargs)) if data is None: data = json return await check_response(mgr, log_404=log_404, sent_data=data)
def _request(self, method: str, url: StrOrURL, *args, allow_retries: bool = False, max_retries: int = 5, allow_redirects: bool = True, **kwargs: Any) -> "aiohttp.client._RequestContextManager": uri = self._full_url(url) if allow_retries: resp = _RequestContextManager( self._retry_requests(lambda: self.session.request( method, uri, *args, allow_redirects=allow_redirects, **kwargs), max_retries=max_retries)) else: resp = self.session.request(method, uri, *args, allow_redirects=allow_redirects, **kwargs) return resp
async def put(url: str, log_404=True, json=None, data=None, **kwargs: Any) -> Optional[ClientResponse]: if HTTP_PREFIX is None: raise OpenhabConnectionNotSetUpError() if IS_READ_ONLY or not IS_ONLINE: return None assert not url.startswith('/'), url url = f'{HTTP_PREFIX}/rest/{url}/' # todo: remove this workaround once there is a fix in aiohttp headers = None if data is not None: headers = {'Content-Type': 'text/plain; charset=utf-8'} mgr = _RequestContextManager( HTTP_SESSION._request(METH_PUT, url, allow_redirects=HTTP_ALLOW_REDIRECTS, headers=headers, data=data, json=json, **kwargs)) if data is None: data = json return await check_response(mgr, log_404=log_404, sent_data=data)
def request(self, method: str, path: str, **kwargs: Any) -> _RequestContextManager: """Routes a request to tested http server. The interface is identical to aiohttp.ClientSession.request, except the loop kwarg is overridden by the instance used by the test server. """ return _RequestContextManager(self._request(method, path, **kwargs))
async def get(url: str, log_404=True, **kwargs: Any) -> ClientResponse: if HTTP_PREFIX is None: raise OpenhabConnectionNotSetUpError() assert not url.startswith('/'), url url = f'{HTTP_PREFIX}/rest/{url}/' mgr = _RequestContextManager( HTTP_SESSION._request(METH_GET, url, allow_redirects=HTTP_ALLOW_REDIRECTS, **kwargs)) return await check_response(mgr, log_404=log_404)
def delete(self, url, *args, **kwargs): updated_kwargs = self._update_headers(kwargs) self.calls.append(call.delete(url, *args, **updated_kwargs)) return _RequestContextManager(self._get_stored_value(url, 'delete'))
def delete(self, path, *args, **kwargs): """Perform an HTTP PATCH request.""" return _RequestContextManager( self.request(hdrs.METH_DELETE, path, *args, **kwargs) )
def patch(self, path, *args, **kwargs): """Perform an HTTP PATCH request.""" return _RequestContextManager( self.request(hdrs.METH_PATCH, path, *args, **kwargs) )
def patch(self, path, *args, **kwargs): """Perform an HTTP PATCH request.""" return _RequestContextManager( self.request(hdrs.METH_PATCH, path, *args, **kwargs))
def post(self, url, *args, **kwargs): updated_kwargs = self._update_headers(kwargs) self.calls.append(call.post(url, *args, **updated_kwargs)) return _RequestContextManager(self._get_stored_value(url, "post"))
def head(self, path: str, **kwargs: Any) -> _RequestContextManager: """Perform an HTTP HEAD request.""" return _RequestContextManager(self._request(hdrs.METH_HEAD, path, **kwargs))
def post(self, path: str, **kwargs: Any) -> _RequestContextManager: """Perform an HTTP POST request.""" return _RequestContextManager( self.request(hdrs.METH_POST, path, **kwargs) )
def get(self, path: str, **kwargs: Any) -> _RequestContextManager: """Perform an HTTP GET request.""" return _RequestContextManager( self.request(hdrs.METH_GET, path, **kwargs))
def request(self, method, url, *args, **kwargs): return _RequestContextManager(self._request( method, url, *args, **kwargs ))
def post(self, url, **kwargs): """POST request.""" return _RequestContextManager(self.request(HTTP_POST, url, **kwargs))
def get(self, url, **kwargs): """GET Request.""" return _RequestContextManager(self.request(HTTP_GET, url, **kwargs))
def delete(self, path: str, **kwargs: Any) -> _RequestContextManager: """Perform an HTTP PATCH request.""" return _RequestContextManager(self._request(hdrs.METH_DELETE, path, **kwargs))
def options(self, path: str, **kwargs: Any) -> _RequestContextManager: """Perform an HTTP OPTIONS request.""" return _RequestContextManager(self._request(hdrs.METH_OPTIONS, path, **kwargs))
def head(self, path, *args, **kwargs): """Perform an HTTP HEAD request.""" return _RequestContextManager( self.request(hdrs.METH_HEAD, path, *args, **kwargs))
def put(self, path: str, **kwargs: Any) -> _RequestContextManager: """Perform an HTTP PUT request.""" return _RequestContextManager(self._request(hdrs.METH_PUT, path, **kwargs))
def request(self, method, url, **kwargs): return _RequestContextManager(self._request(method, url, **kwargs))
def options(self, path, *args, **kwargs): """Perform an HTTP OPTIONS request.""" return _RequestContextManager( self.request(hdrs.METH_OPTIONS, path, *args, **kwargs))
def options(self, path, *args, **kwargs): """Perform an HTTP OPTIONS request.""" return _RequestContextManager( self.request(hdrs.METH_OPTIONS, path, *args, **kwargs) )
def put(self, path, *args, **kwargs): """Perform an HTTP PUT request.""" return _RequestContextManager( self.request(hdrs.METH_PUT, path, *args, **kwargs))
def head(self, path, *args, **kwargs): """Perform an HTTP HEAD request.""" return _RequestContextManager( self.request(hdrs.METH_HEAD, path, *args, **kwargs) )
def delete(self, path, *args, **kwargs): """Perform an HTTP PATCH request.""" return _RequestContextManager( self.request(hdrs.METH_DELETE, path, *args, **kwargs))
def put(self, path, *args, **kwargs): """Perform an HTTP PUT request.""" return _RequestContextManager( self.request(hdrs.METH_PUT, path, *args, **kwargs) )