Skip to content

Commit ca71a0e

Browse files
committed
chore: fixture to handle pytest.mark to use specific browser
1 parent 84c98c1 commit ca71a0e

1 file changed

Lines changed: 21 additions & 2 deletions

File tree

conftest.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from tests.pages.InventoryPage import InventoryPage
33

44
from tests.pages.LoginPage import LoginPage
5+
from tests.pages.MenuPage import MenuPage
56

67
SUPPORTED_BROWSERS_LIST = [
78
"chrome",
@@ -23,8 +24,13 @@ def pytest_addoption(parser):
2324
@pytest.fixture(scope="function")
2425
def use_browser_option(request):
2526
"""Fixture to handle the use of argument --use-browser to select"""
26-
selected_browser = request.config.getoption("--use-browser")
27-
return selected_browser
27+
28+
force_browser = request.node.get_closest_marker("FORCE_BROWSER")
29+
if force_browser is None:
30+
selected_browser = request.config.getoption("--use-browser")
31+
return selected_browser
32+
33+
return force_browser.args[0]
2834

2935

3036
@pytest.fixture(scope="function")
@@ -50,3 +56,16 @@ def start_already_logged(use_browser_option):
5056
yield inventory_page
5157

5258
inventory_page.close_driver()
59+
60+
61+
@pytest.fixture(scope="function")
62+
def start_with_one_product_added(start_already_logged):
63+
"""Fixture that starts the WebDriver with an user logged and at least one product added"""
64+
inventory_page = InventoryPage(driver = start_already_logged.driver)
65+
selected_item, _, _ = inventory_page.choose_an_item_randomsly()
66+
inventory_page.add_item_to_cart(selected_item)
67+
68+
menu_page = MenuPage(driver = inventory_page.driver)
69+
menu_page.click_on_cart_icon()
70+
return menu_page
71+

0 commit comments

Comments
 (0)