Skip to content

Commit 8693c3d

Browse files
committed
Update test setup for overriding the "sb" pytest fixture
1 parent e8e1a81 commit 8693c3d

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

examples/test_override_sb_fixture.py

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
def sb(request):
77
from selenium import webdriver
88
from seleniumbase import BaseCase
9+
from seleniumbase import config as sb_config
910

1011
class BaseClass(BaseCase):
1112
def get_new_driver(self, *args, **kwargs):
@@ -29,12 +30,28 @@ def tearDown(self):
2930
self.save_teardown_screenshot()
3031
super().tearDown()
3132

32-
sb = BaseClass("base_method")
33-
sb.setUpClass()
34-
sb.setUp()
35-
yield sb
36-
sb.tearDown()
37-
sb.tearDownClass()
33+
if request.cls:
34+
request.cls.sb = BaseClass("base_method")
35+
request.cls.sb.setUp()
36+
request.cls.sb._needs_tearDown = True
37+
request.cls.sb._using_sb_fixture = True
38+
request.cls.sb._using_sb_fixture_class = True
39+
sb_config._sb_node[request.node.nodeid] = request.cls.sb
40+
yield request.cls.sb
41+
if request.cls.sb._needs_tearDown:
42+
request.cls.sb.tearDown()
43+
request.cls.sb._needs_tearDown = False
44+
else:
45+
sb = BaseClass("base_method")
46+
sb.setUp()
47+
sb._needs_tearDown = True
48+
sb._using_sb_fixture = True
49+
sb._using_sb_fixture_no_class = True
50+
sb_config._sb_node[request.node.nodeid] = sb
51+
yield sb
52+
if sb._needs_tearDown:
53+
sb.tearDown()
54+
sb._needs_tearDown = False
3855

3956

4057
def test_override_fixture_no_class(sb):

0 commit comments

Comments
 (0)