|
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