Exemplo n.º 1
0
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)
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
    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))
Exemplo n.º 5
0
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'))
Exemplo n.º 7
0
 def delete(self, path, *args, **kwargs):
     """Perform an HTTP PATCH request."""
     return _RequestContextManager(
         self.request(hdrs.METH_DELETE, path, *args, **kwargs)
     )
Exemplo n.º 8
0
 def patch(self, path, *args, **kwargs):
     """Perform an HTTP PATCH request."""
     return _RequestContextManager(
         self.request(hdrs.METH_PATCH, path, *args, **kwargs)
     )
Exemplo n.º 9
0
 def patch(self, path, *args, **kwargs):
     """Perform an HTTP PATCH request."""
     return _RequestContextManager(
         self.request(hdrs.METH_PATCH, path, *args, **kwargs))
Exemplo n.º 10
0
 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"))
Exemplo n.º 11
0
 def head(self, path: str, **kwargs: Any) -> _RequestContextManager:
     """Perform an HTTP HEAD request."""
     return _RequestContextManager(self._request(hdrs.METH_HEAD, path, **kwargs))
Exemplo n.º 12
0
 def post(self, path: str, **kwargs: Any) -> _RequestContextManager:
     """Perform an HTTP POST request."""
     return _RequestContextManager(
         self.request(hdrs.METH_POST, path, **kwargs)
     )
Exemplo n.º 13
0
 def get(self, path: str, **kwargs: Any) -> _RequestContextManager:
     """Perform an HTTP GET request."""
     return _RequestContextManager(
         self.request(hdrs.METH_GET, path, **kwargs))
Exemplo n.º 14
0
 def request(self, method, url, *args, **kwargs):
     return _RequestContextManager(self._request(
         method, url, *args, **kwargs
     ))
Exemplo n.º 15
0
 def post(self, url, **kwargs):
     """POST request."""
     return _RequestContextManager(self.request(HTTP_POST, url, **kwargs))
Exemplo n.º 16
0
 def get(self, url, **kwargs):
     """GET Request."""
     return _RequestContextManager(self.request(HTTP_GET, url, **kwargs))
Exemplo n.º 17
0
 def delete(self, path: str, **kwargs: Any) -> _RequestContextManager:
     """Perform an HTTP PATCH request."""
     return _RequestContextManager(self._request(hdrs.METH_DELETE, path, **kwargs))
Exemplo n.º 18
0
 def options(self, path: str, **kwargs: Any) -> _RequestContextManager:
     """Perform an HTTP OPTIONS request."""
     return _RequestContextManager(self._request(hdrs.METH_OPTIONS, path, **kwargs))
Exemplo n.º 19
0
 def head(self, path, *args, **kwargs):
     """Perform an HTTP HEAD request."""
     return _RequestContextManager(
         self.request(hdrs.METH_HEAD, path, *args, **kwargs))
Exemplo n.º 20
0
 def put(self, path: str, **kwargs: Any) -> _RequestContextManager:
     """Perform an HTTP PUT request."""
     return _RequestContextManager(self._request(hdrs.METH_PUT, path, **kwargs))
Exemplo n.º 21
0
 def request(self, method, url, **kwargs):
     return _RequestContextManager(self._request(method, url, **kwargs))
Exemplo n.º 22
0
 def options(self, path, *args, **kwargs):
     """Perform an HTTP OPTIONS request."""
     return _RequestContextManager(
         self.request(hdrs.METH_OPTIONS, path, *args, **kwargs))
Exemplo n.º 23
0
 def options(self, path, *args, **kwargs):
     """Perform an HTTP OPTIONS request."""
     return _RequestContextManager(
         self.request(hdrs.METH_OPTIONS, path, *args, **kwargs)
     )
Exemplo n.º 24
0
 def put(self, path, *args, **kwargs):
     """Perform an HTTP PUT request."""
     return _RequestContextManager(
         self.request(hdrs.METH_PUT, path, *args, **kwargs))
Exemplo n.º 25
0
 def head(self, path, *args, **kwargs):
     """Perform an HTTP HEAD request."""
     return _RequestContextManager(
         self.request(hdrs.METH_HEAD, path, *args, **kwargs)
     )
Exemplo n.º 26
0
 def delete(self, path, *args, **kwargs):
     """Perform an HTTP PATCH request."""
     return _RequestContextManager(
         self.request(hdrs.METH_DELETE, path, *args, **kwargs))
Exemplo n.º 27
0
 def put(self, path, *args, **kwargs):
     """Perform an HTTP PUT request."""
     return _RequestContextManager(
         self.request(hdrs.METH_PUT, path, *args, **kwargs)
     )