22from tests .pages .InventoryPage import InventoryPage
33
44from tests .pages .LoginPage import LoginPage
5+ from tests .pages .MenuPage import MenuPage
56
67SUPPORTED_BROWSERS_LIST = [
78 "chrome" ,
@@ -23,8 +24,13 @@ def pytest_addoption(parser):
2324@pytest .fixture (scope = "function" )
2425def 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