Skip to content

Commit 9f2b0c5

Browse files
committed
fix mypy
1 parent f572a7c commit 9f2b0c5

File tree

4 files changed

+18
-10
lines changed

4 files changed

+18
-10
lines changed

src/apify/scrapy/requests.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@ def to_apify_request(scrapy_request: Request, spider: Spider) -> CrawleeRequest
4242
Returns:
4343
The converted Apify request if the conversion was successful, otherwise None.
4444
"""
45-
if not isinstance(cast(Any, scrapy_request), Request):
46-
Actor.log.warning('Failed to convert to Apify request: Scrapy request must be a Request instance.')
45+
if not isinstance(scrapy_request, Request):
46+
Actor.log.warning( # type: ignore[unreachable]
47+
'Failed to convert to Apify request: Scrapy request must be a Request instance.'
48+
)
4749
return None
4850

4951
call_id = crypto_random_object_id(8)
@@ -53,7 +55,7 @@ def to_apify_request(scrapy_request: Request, spider: Spider) -> CrawleeRequest
5355
if _is_request_produced_by_middleware(scrapy_request):
5456
unique_key = compute_unique_key(
5557
url=scrapy_request.url,
56-
method=scrapy_request.method,
58+
method=scrapy_request.method, # type: ignore[arg-type] # str vs literal
5759
payload=scrapy_request.body,
5860
use_extended_unique_key=True,
5961
)
@@ -80,9 +82,9 @@ def to_apify_request(scrapy_request: Request, spider: Spider) -> CrawleeRequest
8082

8183
# Convert Scrapy's headers to a HttpHeaders and store them in the apify_request
8284
if isinstance(scrapy_request.headers, Headers):
83-
apify_request.headers = HttpHeaders(scrapy_request.headers.to_unicode_dict())
85+
apify_request.headers = HttpHeaders(dict(scrapy_request.headers.to_unicode_dict()))
8486
else:
85-
Actor.log.warning(
87+
Actor.log.warning( # type: ignore[unreachable]
8688
f'Invalid scrapy_request.headers type, not scrapy.http.headers.Headers: {scrapy_request.headers}'
8789
)
8890

tests/unit/scrapy/pipelines/test_actor_dataset_push.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class ItemTestCase:
5757
expected_exception=None,
5858
),
5959
ItemTestCase(
60-
item=None,
60+
item=DummyItem(a='exc', b='ept', c='ion'),
6161
item_dict={},
6262
expected_exception=TypeError,
6363
),

tests/unit/scrapy/requests/test_to_apify_request.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test_handles_headers(spider: Spider) -> None:
3838
apify_request = to_apify_request(scrapy_request, spider)
3939

4040
assert apify_request is not None
41-
assert apify_request.headers == HttpHeaders(scrapy_request_headers.to_unicode_dict())
41+
assert apify_request.headers == HttpHeaders(dict(scrapy_request_headers.to_unicode_dict()))
4242

4343

4444
def test_without_id_and_unique_key(spider: Spider) -> None:
@@ -90,5 +90,5 @@ def test_with_id_and_unique_key(spider: Spider) -> None:
9090
def test_invalid_scrapy_request_returns_none(spider: Spider) -> None:
9191
scrapy_request = 'invalid_request'
9292

93-
apify_request = to_apify_request(scrapy_request, spider)
93+
apify_request = to_apify_request(scrapy_request, spider) # type: ignore[arg-type]
9494
assert apify_request is None

tests/unit/scrapy/requests/test_to_scrapy_request.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@ def test_without_reconstruction_with_optional_fields(spider: Spider) -> None:
5858
assert apify_request.method == scrapy_request.method
5959
assert apify_request.id == scrapy_request.meta.get('apify_request_id')
6060
assert apify_request.unique_key == scrapy_request.meta.get('apify_request_unique_key')
61-
assert apify_request.headers.get('authorization') == scrapy_request.headers.get('authorization').decode()
61+
62+
scrapy_request_headers = scrapy_request.headers.get('authorization')
63+
assert scrapy_request_headers is not None
64+
assert apify_request.headers.get('authorization') == scrapy_request_headers.decode()
6265
assert apify_request.user_data == scrapy_request.meta.get('userData')
6366

6467

@@ -105,7 +108,10 @@ def test_with_reconstruction_with_optional_fields(spider: Spider) -> None:
105108
assert apify_request.method == scrapy_request.method
106109
assert apify_request.id == scrapy_request.meta.get('apify_request_id')
107110
assert apify_request.unique_key == scrapy_request.meta.get('apify_request_unique_key')
108-
assert apify_request.headers.get('authorization') == scrapy_request.headers.get('authorization').decode()
111+
112+
scrapy_request_headers = scrapy_request.headers.get('authorization')
113+
assert scrapy_request_headers is not None
114+
assert apify_request.headers.get('authorization') == scrapy_request_headers.decode()
109115
assert apify_request.user_data == scrapy_request.meta.get('userData')
110116

111117

0 commit comments

Comments
 (0)