Skip to content

Commit 59ba866

Browse files
committed
try again to cleanup sessions
1 parent a682461 commit 59ba866

2 files changed

Lines changed: 40 additions & 26 deletions

File tree

tests/test_ensure_elements_deprecation.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
1+
import contextlib
12
import shutil
23
import tempfile
34

45
import pytest
56
import selenium.webdriver
67
from requestium import Session
78

8-
chrome_webdriver_path = shutil.which("chromedriver")
9-
109

10+
@contextlib.contextmanager
1111
def create_chrome_session(headless=False):
12-
chrome_options = selenium.webdriver.ChromeOptions()
13-
if headless:
14-
chrome_options.add_argument("--headless=new")
15-
chrome_options.add_argument(f"--user-data-dir={tempfile.mkdtemp()}")
16-
chrome_options.add_argument("--no-sandbox")
17-
chrome_options.add_argument("--disable-dev-shm-usage")
18-
return Session(webdriver_path=chrome_webdriver_path, browser_options=chrome_options)
12+
with tempfile.TemporaryDirectory() as tmp_profile_dir:
13+
chrome_options = selenium.webdriver.ChromeOptions()
14+
if headless:
15+
chrome_options.add_argument("--headless=new")
16+
chrome_options.add_argument(f"--user-data-dir={tmp_profile_dir}")
17+
chrome_options.add_argument("--no-sandbox")
18+
chrome_options.add_argument("--disable-dev-shm-usage")
19+
20+
session = Session(
21+
webdriver_path=shutil.which("chromedriver"), browser_options=chrome_options
22+
)
23+
try:
24+
yield session
25+
finally:
26+
session.driver.quit()
1927

2028

2129
session_factories = {
@@ -26,11 +34,10 @@ def create_chrome_session(headless=False):
2634
}
2735

2836

29-
@pytest.fixture(params=session_factories.keys())
37+
@pytest.fixture(params=["chrome", "chrome_headless"])
3038
def session(request):
31-
session = session_factories[request.param]()
32-
yield session
33-
session.driver.quit()
39+
with create_chrome_session(headless=(request.param == "chrome_headless")) as s:
40+
yield s
3441

3542

3643
def test_deprecation_warning_for_ensure_element_locators_with_underscores(session):

tests/test_requestium.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import contextlib
12
import shutil
23
import tempfile
34

@@ -7,17 +8,24 @@
78

89
from requestium import Session
910

10-
chrome_webdriver_path = shutil.which("chromedriver")
11-
1211

12+
@contextlib.contextmanager
1313
def create_chrome_session(headless=False):
14-
chrome_options = selenium.webdriver.ChromeOptions()
15-
if headless:
16-
chrome_options.add_argument("--headless=new")
17-
chrome_options.add_argument(f"--user-data-dir={tempfile.mkdtemp()}")
18-
chrome_options.add_argument("--no-sandbox")
19-
chrome_options.add_argument("--disable-dev-shm-usage")
20-
return Session(webdriver_path=chrome_webdriver_path, browser_options=chrome_options)
14+
with tempfile.TemporaryDirectory() as tmp_profile_dir:
15+
chrome_options = selenium.webdriver.ChromeOptions()
16+
if headless:
17+
chrome_options.add_argument("--headless=new")
18+
chrome_options.add_argument(f"--user-data-dir={tmp_profile_dir}")
19+
chrome_options.add_argument("--no-sandbox")
20+
chrome_options.add_argument("--disable-dev-shm-usage")
21+
22+
session = Session(
23+
webdriver_path=shutil.which("chromedriver"), browser_options=chrome_options
24+
)
25+
try:
26+
yield session
27+
finally:
28+
session.driver.quit()
2129

2230

2331
session_factories = {
@@ -28,11 +36,10 @@ def create_chrome_session(headless=False):
2836
}
2937

3038

31-
@pytest.fixture(params=session_factories.keys())
39+
@pytest.fixture(params=["chrome", "chrome_headless"])
3240
def session(request):
33-
session = session_factories[request.param]()
34-
yield session
35-
session.driver.quit()
41+
with create_chrome_session(headless=(request.param == "chrome_headless")) as s:
42+
yield s
3643

3744

3845
def test_simple_page_load(session):

0 commit comments

Comments
 (0)