|
3 | 3 | import asyncio |
4 | 4 | from datetime import datetime, timedelta, timezone |
5 | 5 | from typing import TYPE_CHECKING, Any |
6 | | -from unittest import mock |
7 | 6 | from unittest.mock import AsyncMock |
8 | 7 |
|
9 | 8 | import pytest |
10 | 9 | from playwright.async_api import Browser, Playwright, async_playwright |
11 | 10 |
|
12 | | -from crawlee.browsers import PlaywrightBrowserController, PlaywrightBrowserPlugin, PlaywrightPersistentBrowser |
| 11 | +from crawlee.browsers import PlaywrightBrowserController, PlaywrightPersistentBrowser |
13 | 12 |
|
14 | 13 | if TYPE_CHECKING: |
15 | 14 | from collections.abc import AsyncGenerator |
@@ -116,17 +115,17 @@ async def test_memory_leak_on_concurrent_context_creation() -> None: |
116 | 115 | # Prepare mocked browser with relevant methods and attributes |
117 | 116 | mocked_browser = AsyncMock() |
118 | 117 | mocked_context_launcher = AsyncMock() |
119 | | - async def delayed_launch_persistent_context(*args: Any, **kwargs: Any) -> AsyncMock: |
| 118 | + |
| 119 | + async def delayed_launch_persistent_context(*args: Any, **kwargs: Any) -> Any: |
120 | 120 | """Ensure that both calls to create context overlap in time.""" |
121 | 121 | await asyncio.sleep(5) # Simulate delay in creation to make sure race condition happens |
122 | 122 | return await mocked_context_launcher(*args, **kwargs) |
| 123 | + |
123 | 124 | mocked_browser.launch_persistent_context = delayed_launch_persistent_context |
124 | 125 |
|
125 | 126 | # Create minimal instance of PlaywrightBrowserController with mocked browser |
126 | 127 | controller = PlaywrightBrowserController( |
127 | | - PlaywrightPersistentBrowser(mocked_browser,None, {}), |
128 | | - header_generator=None, |
129 | | - fingerprint_generator=None |
| 128 | + PlaywrightPersistentBrowser(mocked_browser, None, {}), header_generator=None, fingerprint_generator=None |
130 | 129 | ) |
131 | 130 |
|
132 | 131 | # Both calls will try to create browser context at the same time, but only one context should be created. |
|
0 commit comments