Skip to content

Commit ab49ecb

Browse files
committed
Fix mypy.
1 parent afb76c9 commit ab49ecb

File tree

2 files changed

+15
-14
lines changed

2 files changed

+15
-14
lines changed

src/palace/manager/integration/license/overdrive/api.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@
118118
from palace.manager.sqlalchemy.util import get_one
119119
from palace.manager.util import base64
120120
from palace.manager.util.datetime_helpers import utc_now
121-
from palace.manager.util.http.async_http import AsyncClient
122121
from palace.manager.util.http.exception import BadResponseException
123122
from palace.manager.util.http.http import HTTP, RequestKwargs
124123

@@ -613,8 +612,11 @@ def _get_book_list_page(
613612
availability_queue = extractor_class.availability_link_list(content_dict)
614613
return availability_queue, next_link
615614

616-
def _get_headers(self, auth_token: str) -> dict[str, str]:
617-
return {"Authorization": f"Bearer {auth_token}", "User-Agent": "Palace"}
615+
def _get_headers(self, auth_token: str | None) -> dict[str, str]:
616+
if auth_token:
617+
return {"Authorization": f"Bearer {auth_token}", "User-Agent": "Palace"}
618+
else:
619+
return {}
618620

619621
def book_info_initial_endpoint(
620622
self,
@@ -640,7 +642,7 @@ def book_info_initial_endpoint(
640642
limit=str(min(page_size, self.PAGE_SIZE_LIMIT)),
641643
collection_token=self.collection_token,
642644
)
643-
endpoint: str | None = _make_link_safe(book_info_initial_endpoint)
645+
endpoint: str = _make_link_safe(book_info_initial_endpoint)
644646

645647
return BookInfoEndpoint(endpoint)
646648

@@ -663,12 +665,11 @@ async def fetch_book_info_list(
663665
"""
664666

665667
async with self.create_async_client(connections) as client:
666-
667668
base_url = self.endpoint(self.HOST_ENDPOINT_BASE)
668669
client.headers.update(self._get_headers(self._client_oauth_token))
669670
client.base_url = URL(base_url)
670671
urls: deque[str] = deque()
671-
pending_requests: list[asyncio.Task[Response]] = []
672+
pending_requests: list[asyncio.Task[httpx._models.Response]] = []
672673
books: dict[str, Any] = {}
673674
retried_requests: defaultdict[str, int] = defaultdict(int)
674675
extractor_class = extractor_class or OverdriveRepresentationExtractor
@@ -689,12 +690,13 @@ async def fetch_book_info_list(
689690
for req in done:
690691
try:
691692
response = await req
693+
response.raise_for_status()
692694

693695
if not next:
694696
next_url = extractor_class.link(
695-
response.raise_for_status().json(), rel_to_follow
697+
response.json(), rel_to_follow
696698
)
697-
next = BookInfoEndpoint(next_url)
699+
next = BookInfoEndpoint(next_url) if next_url else None
698700

699701
self._process_request(
700702
response,
@@ -728,7 +730,7 @@ async def fetch_book_info_list(
728730

729731
return list(books.values()), next
730732

731-
def create_async_client(self, connections):
733+
def create_async_client(self, connections: int = 5) -> httpx.AsyncClient:
732734
return httpx.AsyncClient(
733735
timeout=Timeout(20.0, pool=None),
734736
limits=Limits(
@@ -740,9 +742,9 @@ def create_async_client(self, connections):
740742

741743
def _make_request(
742744
self,
743-
client: AsyncClient,
745+
client: httpx.AsyncClient,
744746
urls: deque[str] | str,
745-
pending_requests: list[asyncio.Task[Response]],
747+
pending_requests: list[asyncio.Task[httpx._models.Response]],
746748
) -> None:
747749
if isinstance(urls, str):
748750
url = urls
@@ -754,7 +756,7 @@ def _make_request(
754756

755757
def _process_request(
756758
self,
757-
response: Response,
759+
response: httpx._models.Response,
758760
request_metadata: bool,
759761
request_availability: bool,
760762
base_url: str,

tests/fixtures/overdrive.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from typing import Any
66

77
import pytest
8-
from fixtures.http import MockAsyncClientFixture
98

109
from palace.manager.api.circulation.dispatcher import CirculationApiDispatcher
1110
from palace.manager.api.config import Configuration
@@ -20,7 +19,7 @@
2019
from palace.manager.sqlalchemy.model.patron import Patron
2120
from tests.fixtures.database import DatabaseTransactionFixture
2221
from tests.fixtures.files import OverdriveFilesFixture
23-
from tests.fixtures.http import MockHttpClientFixture
22+
from tests.fixtures.http import MockAsyncClientFixture, MockHttpClientFixture
2423
from tests.fixtures.work import (
2524
WorkIdPolicyQueuePresentationRecalculationFixture,
2625
)

0 commit comments

Comments
 (0)