diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 00868668f2f..7409b711e98 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -52,11 +52,13 @@ jobs: - name: Allure Report uses: firebolt-db/action-allure-report@v1 if: always() + continue-on-error: true with: github-key: ${{ secrets.GITHUB_TOKEN }} - name: Upload coverage report uses: actions/upload-artifact@v2 + continue-on-error: true with: name: pytest-coverage-report path: coverage.xml diff --git a/src/firebolt/async_db/connection.py b/src/firebolt/async_db/connection.py index db87148a3d3..382b19d20a1 100644 --- a/src/firebolt/async_db/connection.py +++ b/src/firebolt/async_db/connection.py @@ -4,10 +4,10 @@ import socket from json import JSONDecodeError from types import TracebackType -from typing import Any, Dict, List, Optional +from typing import Any, Dict, Iterable, List, Optional from httpcore.backends.auto import AutoBackend -from httpcore.backends.base import AsyncNetworkStream +from httpcore.backends.base import SOCKET_OPTION, AsyncNetworkStream from httpx import AsyncHTTPTransport, HTTPStatusError, RequestError, Timeout from firebolt.async_db.cursor import Cursor @@ -140,6 +140,7 @@ async def connect_tcp( port: int, timeout: Optional[float] = None, local_address: Optional[str] = None, + socket_options: Optional[Iterable[SOCKET_OPTION]] = None, ) -> AsyncNetworkStream: stream = await super().connect_tcp( host, port, timeout=timeout, local_address=local_address diff --git a/src/firebolt/db/connection.py b/src/firebolt/db/connection.py index 415603a8729..e4b2a74e088 100644 --- a/src/firebolt/db/connection.py +++ b/src/firebolt/db/connection.py @@ -4,10 +4,10 @@ import socket from json import JSONDecodeError from types import TracebackType -from typing import Any, Dict, List, Optional +from typing import Any, Dict, Iterable, List, Optional from warnings import warn -from httpcore.backends.base import NetworkStream +from httpcore.backends.base import SOCKET_OPTION, NetworkStream from httpcore.backends.sync import SyncBackend from httpx import HTTPStatusError, HTTPTransport, RequestError, Timeout from readerwriterlock.rwlock import RWLockWrite @@ -131,9 +131,14 @@ def connect_tcp( port: int, timeout: Optional[float] = None, local_address: Optional[str] = None, + socket_options: Optional[Iterable[SOCKET_OPTION]] = None, ) -> NetworkStream: stream = super().connect_tcp( - host, port, timeout=timeout, local_address=local_address + host, + port, + timeout=timeout, + local_address=local_address, + socket_options=socket_options, ) # Enable keepalive stream.get_extra_info("socket").setsockopt(