13
13
14
14
def event_listener (driver ) -> EventFiringWebDriver :
15
15
"""Attach the event listener to the driver."""
16
- e_driver : EventFiringWebDriver = EventFiringWebDriver (
17
- driver , EventListener ()
18
- )
16
+ e_driver : EventFiringWebDriver = EventFiringWebDriver (driver , EventListener ())
19
17
return e_driver
20
18
21
19
@@ -29,16 +27,15 @@ def driver_types(request):
29
27
@pytest .fixture
30
28
def make_driver (request ) -> EventFiringWebDriver :
31
29
load_dotenv (dotenv_path = f"{ request .config .getoption ('--env' )} " )
32
- env = request .config .getoption (' --env' )
33
- dr_type = request .config .getoption (' --type' )
30
+ env = request .config .getoption (" --env" )
31
+ dr_type = request .config .getoption (" --type" )
34
32
driver = None
35
33
36
34
def _make_driver () -> EventFiringWebDriver :
37
35
nonlocal driver
38
36
# Create WebDriver instance
39
37
driver = WebDriverFactory ().create_driver (
40
- environment = env ,
41
- driver_type = dr_type
38
+ environment = env , driver_type = dr_type
42
39
)
43
40
# Attach event listener
44
41
driver_with_listener = event_listener (driver )
@@ -54,23 +51,31 @@ def _make_driver() -> EventFiringWebDriver:
54
51
55
52
56
53
def pytest_addoption (parser ):
57
- parser .addoption ("--browser-version" , action = "store" , default = "129" ,
58
- help = "Specify the browser version" )
59
- parser .addoption ("--env" , action = "store" , default = 'stage' ,
60
- help = "Run browser in headless mode" )
61
- parser .addoption ("--type" , action = "store" , default = 'local' ,
62
- help = "Run browser in os type" )
54
+ parser .addoption (
55
+ "--browser-version" ,
56
+ action = "store" ,
57
+ default = "129" ,
58
+ help = "Specify the browser version" ,
59
+ )
60
+ parser .addoption (
61
+ "--env" , action = "store" , default = "stage" , help = "Run browser in headless mode"
62
+ )
63
+ parser .addoption (
64
+ "--type" , action = "store" , default = "local" , help = "Run browser in os type"
65
+ )
63
66
64
67
65
68
def pytest_runtest_makereport (item , call ):
66
69
"""Capture screenshot on test failure."""
67
70
if call .excinfo is not None :
68
71
# Make sure the driver is being captured correctly
69
- driver = item .funcargs .get (' make_driver' , None )
72
+ driver = item .funcargs .get (" make_driver" , None )
70
73
71
74
if driver is not None :
72
75
screenshot_dir = "reports/screenshots"
73
- os .makedirs (screenshot_dir , exist_ok = True ) # Create directory if it does not exist
76
+ os .makedirs (
77
+ screenshot_dir , exist_ok = True
78
+ ) # Create directory if it does not exist
74
79
screenshot_path = os .path .join (screenshot_dir , f"{ item .name } .png" )
75
80
76
81
try :
0 commit comments