66from importlib import metadata
77from typing import TYPE_CHECKING
88
9+ import pytest
910from werkzeug import Request , Response
1011
12+ from apify_client import ApifyClient , ApifyClientAsync
1113from apify_client ._http_client import HTTPClient , HTTPClientAsync
1214
1315if TYPE_CHECKING :
@@ -69,14 +71,13 @@ def test_default_headers_sync(httpserver: HTTPServer) -> None:
6971 }
7072
7173
72- async def test_extra_headers_async (httpserver : HTTPServer ) -> None :
73- """Test that extra headers are sent with each request."""
74+ async def test_headers_async (httpserver : HTTPServer ) -> None :
75+ """Test that custom headers are sent with each request."""
7476
75- extra_headers = {
76- 'Test-Header' : 'blah' ,
77- 'User-Agent' : 'CustomUserAgent/1.0' , # Do not override Apify User-Agent
78- }
79- client = HTTPClientAsync (token = 'placeholder_token' , extra_headers = extra_headers )
77+ client = HTTPClientAsync (
78+ token = 'placeholder_token' ,
79+ headers = {'Test-Header' : 'blah' , 'User-Agent' : 'CustomUserAgent/1.0' , 'Authorization' : 'strange_value' },
80+ )
8081 httpserver .expect_request ('/' ).respond_with_handler (_header_handler )
8182 api_url = httpserver .url_for ('/' ).removesuffix ('/' )
8283
@@ -86,22 +87,25 @@ async def test_extra_headers_async(httpserver: HTTPServer) -> None:
8687
8788 assert request_headers == {
8889 'Test-Header' : 'blah' ,
89- 'User-Agent' : _get_user_agent (), # Do not override Apify User-Agent
90+ 'User-Agent' : 'CustomUserAgent/1.0' ,
9091 'Accept' : 'application/json, */*' ,
91- 'Authorization' : 'Bearer placeholder_token ' ,
92+ 'Authorization' : 'strange_value ' ,
9293 'Accept-Encoding' : 'gzip, br, zstd, deflate' ,
9394 'Host' : f'{ httpserver .host } :{ httpserver .port } ' ,
9495 }
9596
9697
97- def test_extra_headers_sync (httpserver : HTTPServer ) -> None :
98- """Test that extra headers are sent with each request."""
98+ def test_headers_sync (httpserver : HTTPServer ) -> None :
99+ """Test that custom headers are sent with each request."""
99100
100- extra_headers = {
101- 'Test-Header' : 'blah' ,
102- 'User-Agent' : 'CustomUserAgent/1.0' , # Do not override Apify User-Agent
103- }
104- client = HTTPClient (token = 'placeholder_token' , extra_headers = extra_headers )
101+ client = HTTPClient (
102+ token = 'placeholder_token' ,
103+ headers = {
104+ 'Test-Header' : 'blah' ,
105+ 'User-Agent' : 'CustomUserAgent/1.0' ,
106+ 'Authorization' : 'strange_value' ,
107+ },
108+ )
105109 httpserver .expect_request ('/' ).respond_with_handler (_header_handler )
106110 api_url = httpserver .url_for ('/' ).removesuffix ('/' )
107111
@@ -111,9 +115,35 @@ def test_extra_headers_sync(httpserver: HTTPServer) -> None:
111115
112116 assert request_headers == {
113117 'Test-Header' : 'blah' ,
114- 'User-Agent' : _get_user_agent (), # Do not override Apify User-Agent
118+ 'User-Agent' : 'CustomUserAgent/1.0' ,
115119 'Accept' : 'application/json, */*' ,
116- 'Authorization' : 'Bearer placeholder_token ' ,
120+ 'Authorization' : 'strange_value ' ,
117121 'Accept-Encoding' : 'gzip, br, zstd, deflate' ,
118122 'Host' : f'{ httpserver .host } :{ httpserver .port } ' ,
119123 }
124+
125+
126+ def test_warning_on_overridden_headers_sync () -> None :
127+ """Test that warning is raised when default headers are overridden."""
128+
129+ with pytest .warns (UserWarning , match = 'User-Agent, Authorization headers of ApifyClient' ):
130+ ApifyClient (
131+ token = 'placeholder_token' ,
132+ headers = {
133+ 'User-Agent' : 'CustomUserAgent/1.0' ,
134+ 'Authorization' : 'strange_value' ,
135+ },
136+ )
137+
138+
139+ async def test_warning_on_overridden_headers_async () -> None :
140+ """Test that warning is raised when default headers are overridden."""
141+
142+ with pytest .warns (UserWarning , match = 'User-Agent, Authorization headers of ApifyClientAsync' ):
143+ ApifyClientAsync (
144+ token = 'placeholder_token' ,
145+ headers = {
146+ 'User-Agent' : 'CustomUserAgent/1.0' ,
147+ 'Authorization' : 'strange_value' ,
148+ },
149+ )
0 commit comments