Skip to content

Commit c41ebe3

Browse files
elkal98moz-wptsync-bot
authored andcommitted
Add a fixture for WebDriver BiDi tests to keep a list of installed web extensions and remove them at the end of the test.
Differential Revision: https://phabricator.services.mozilla.com/D282753 bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1956885 gecko-commit: 204f50c78893884b11824efe542957ad02b29d18 gecko-reviewers: whimboo
1 parent 2520303 commit c41ebe3

File tree

2 files changed

+32
-21
lines changed

2 files changed

+32
-21
lines changed

webdriver/tests/bidi/web_extension/install/install.py

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,33 @@
44

55

66
@pytest.mark.asyncio
7-
async def test_install_from_base64(bidi_session, extension_data):
8-
web_extension = await bidi_session.web_extension.install(
7+
async def test_install_from_base64(bidi_session, install_webextension, extension_data):
8+
web_extension = await install_webextension(
99
extension_data={
1010
"type": "base64",
1111
"value": extension_data["base64"],
1212
}
1313
)
14-
try:
15-
assert_extension_id(web_extension, extension_data)
16-
finally:
17-
# Clean up the extension.
18-
await bidi_session.web_extension.uninstall(extension=web_extension)
14+
assert_extension_id(web_extension, extension_data)
1915

2016

2117
@pytest.mark.asyncio
22-
async def test_install_from_path(bidi_session, extension_data):
23-
web_extension = await bidi_session.web_extension.install(
18+
async def test_install_from_path(bidi_session, install_webextension, extension_data):
19+
web_extension = await install_webextension(
2420
extension_data={
2521
"type": "path",
2622
"path": extension_data["path"],
2723
}
2824
)
29-
try:
30-
assert_extension_id(web_extension, extension_data)
31-
finally:
32-
# Clean up the extension.
33-
await bidi_session.web_extension.uninstall(extension=web_extension)
25+
assert_extension_id(web_extension, extension_data)
3426

3527

3628
@pytest.mark.asyncio
37-
async def test_install_from_archive_path(bidi_session, extension_data):
38-
web_extension = await bidi_session.web_extension.install(
29+
async def test_install_from_archive_path(bidi_session, install_webextension, extension_data):
30+
web_extension = await install_webextension(
3931
extension_data={
4032
"type": "archivePath",
4133
"path": extension_data["archivePath"],
4234
}
4335
)
44-
try:
45-
assert_extension_id(web_extension, extension_data)
46-
finally:
47-
# Clean up the extension.
48-
await bidi_session.web_extension.uninstall(extension=web_extension)
36+
assert_extension_id(web_extension, extension_data)

webdriver/tests/support/fixtures_bidi.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1226,3 +1226,26 @@ async def match_media_query(context, media_query_type, media_query_value):
12261226
return result["value"]
12271227

12281228
return match_media_query
1229+
1230+
1231+
@pytest_asyncio.fixture
1232+
async def install_webextension(bidi_session):
1233+
installed_extensions = []
1234+
1235+
async def install(extension_data, _extension_params=None):
1236+
if _extension_params is None:
1237+
_extension_params = {}
1238+
extension = await bidi_session.web_extension.install(
1239+
extension_data=extension_data,
1240+
_extension_params=_extension_params
1241+
)
1242+
installed_extensions.append(extension)
1243+
return extension
1244+
1245+
yield install
1246+
1247+
for extension in installed_extensions:
1248+
try:
1249+
await bidi_session.web_extension.uninstall(extension=extension)
1250+
except Exception as e:
1251+
print(f"Failed to uninstall extension {extension}. Error: {e}")

0 commit comments

Comments
 (0)