Update test files with refinements and fixes
- test_anime_endpoints.py: Minor updates - test_download_retry.py: Refinements - test_i18n.js: Updates - test_tmdb_client.py: Improvements - test_tmdb_rate_limiting.py: Test enhancements - test_user_preferences.js: Updates
This commit is contained in:
@@ -25,8 +25,11 @@ class TestTMDBRateLimiting:
|
||||
mock_response.status = 429
|
||||
mock_response.headers = {'Retry-After': '2'}
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get:
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get:
|
||||
mock_get.return_value.__aenter__.return_value = mock_response
|
||||
|
||||
# Should retry after rate limit
|
||||
@@ -101,8 +104,11 @@ class TestTMDBRateLimiting:
|
||||
return mock_response_429
|
||||
return mock_response_200
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
mock_get.side_effect = mock_get_side_effect
|
||||
|
||||
@@ -141,8 +147,11 @@ class TestTMDBRateLimiting:
|
||||
call_count += 1
|
||||
return response
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
mock_get.side_effect = mock_get_side_effect
|
||||
|
||||
@@ -163,8 +172,11 @@ class TestTMDBExponentialBackoff:
|
||||
"""Test exponential backoff delays on timeout errors."""
|
||||
client = TMDBClient(api_key="test_key")
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
# Mock timeout errors
|
||||
mock_get.side_effect = asyncio.TimeoutError()
|
||||
@@ -184,8 +196,11 @@ class TestTMDBExponentialBackoff:
|
||||
"""Test exponential backoff on aiohttp ClientError."""
|
||||
client = TMDBClient(api_key="test_key")
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
mock_get.side_effect = aiohttp.ClientError("Connection failed")
|
||||
|
||||
@@ -218,8 +233,11 @@ class TestTMDBExponentialBackoff:
|
||||
mock_response.raise_for_status = MagicMock()
|
||||
return mock_response
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
mock_get.side_effect = mock_get_side_effect
|
||||
|
||||
@@ -236,8 +254,11 @@ class TestTMDBExponentialBackoff:
|
||||
"""Test that retries stop after max_retries attempts."""
|
||||
client = TMDBClient(api_key="test_key")
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
mock_get.side_effect = asyncio.TimeoutError()
|
||||
|
||||
@@ -265,8 +286,11 @@ class TestTMDBQuotaExhaustion:
|
||||
mock_response.status = 429
|
||||
mock_response.headers = {'Retry-After': '3600'} # 1 hour
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
mock_get.return_value.__aenter__.return_value = mock_response
|
||||
|
||||
@@ -286,8 +310,11 @@ class TestTMDBQuotaExhaustion:
|
||||
mock_response = AsyncMock()
|
||||
mock_response.status = 401
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get:
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get:
|
||||
mock_get.return_value.__aenter__.return_value = mock_response
|
||||
|
||||
with pytest.raises(TMDBAPIError) as exc_info:
|
||||
@@ -309,8 +336,11 @@ class TestTMDBErrorParsing:
|
||||
mock_response = AsyncMock()
|
||||
mock_response.status = 404
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get:
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get:
|
||||
mock_get.return_value.__aenter__.return_value = mock_response
|
||||
|
||||
with pytest.raises(TMDBAPIError) as exc_info:
|
||||
@@ -349,9 +379,12 @@ class TestTMDBErrorParsing:
|
||||
mock_response_200.raise_for_status = MagicMock()
|
||||
return mock_response_200
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock):
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
mock_get.side_effect = mock_get_side_effect
|
||||
|
||||
result = await client._request("test/endpoint", max_retries=3)
|
||||
@@ -366,8 +399,11 @@ class TestTMDBErrorParsing:
|
||||
"""Test parsing of network connection errors."""
|
||||
client = TMDBClient(api_key="test_key")
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get:
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get:
|
||||
mock_get.side_effect = aiohttp.ClientConnectorError(
|
||||
connection_key=MagicMock(),
|
||||
os_error=OSError("Network unreachable")
|
||||
@@ -389,8 +425,11 @@ class TestTMDBTimeoutHandling:
|
||||
"""Test handling of request timeout."""
|
||||
client = TMDBClient(api_key="test_key")
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get:
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get:
|
||||
mock_get.side_effect = asyncio.TimeoutError()
|
||||
|
||||
with pytest.raises(TMDBAPIError) as exc_info:
|
||||
@@ -419,9 +458,12 @@ class TestTMDBTimeoutHandling:
|
||||
mock_response.raise_for_status = MagicMock()
|
||||
return mock_response
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock):
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
mock_get.side_effect = mock_get_side_effect
|
||||
|
||||
result = await client._request("test/endpoint", max_retries=3)
|
||||
@@ -441,8 +483,11 @@ class TestTMDBTimeoutHandling:
|
||||
mock_response.json = AsyncMock(return_value={"data": "test"})
|
||||
mock_response.raise_for_status = MagicMock()
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get:
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get:
|
||||
mock_get.return_value.__aenter__.return_value = mock_response
|
||||
|
||||
await client._request("test/endpoint")
|
||||
@@ -460,8 +505,11 @@ class TestTMDBTimeoutHandling:
|
||||
"""Test handling of multiple consecutive timeouts."""
|
||||
client = TMDBClient(api_key="test_key")
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
mock_get.side_effect = asyncio.TimeoutError()
|
||||
|
||||
@@ -490,8 +538,11 @@ class TestTMDBCaching:
|
||||
mock_response.json = AsyncMock(return_value={"cached": "data"})
|
||||
mock_response.raise_for_status = MagicMock()
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get:
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get:
|
||||
mock_get.return_value.__aenter__.return_value = mock_response
|
||||
|
||||
# First request
|
||||
@@ -517,8 +568,11 @@ class TestTMDBCaching:
|
||||
mock_response.json = AsyncMock(return_value={"data": "test"})
|
||||
mock_response.raise_for_status = MagicMock()
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get:
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get:
|
||||
mock_get.return_value.__aenter__.return_value = mock_response
|
||||
|
||||
# Two requests with different parameters
|
||||
@@ -540,8 +594,11 @@ class TestTMDBCaching:
|
||||
mock_response.json = AsyncMock(return_value={"data": "test"})
|
||||
mock_response.raise_for_status = MagicMock()
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get:
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get:
|
||||
mock_get.return_value.__aenter__.return_value = mock_response
|
||||
|
||||
# First request (cache miss)
|
||||
@@ -615,9 +672,12 @@ class TestTMDBSessionManagement:
|
||||
mock_response.raise_for_status = MagicMock()
|
||||
return mock_response
|
||||
|
||||
with patch.object(client, '_ensure_session'), \
|
||||
patch('aiohttp.ClientSession.get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock):
|
||||
mock_session = AsyncMock()
|
||||
mock_session.closed = False
|
||||
client.session = mock_session
|
||||
|
||||
with patch.object(mock_session, 'get') as mock_get, \
|
||||
patch('asyncio.sleep', new_callable=AsyncMock) as mock_sleep:
|
||||
mock_get.side_effect = mock_get_side_effect
|
||||
|
||||
result = await client._request("test/endpoint", max_retries=3)
|
||||
|
||||
Reference in New Issue
Block a user