@@ -2176,7 +2176,34 @@ def tearDown(self):
2176
2176
test_id = "%s.%s.%s" % (self .__class__ .__module__ ,
2177
2177
self .__class__ .__name__ ,
2178
2178
self ._testMethodName )
2179
- if self .with_selenium :
2179
+ try :
2180
+ with_selenium = self .with_selenium
2181
+ except Exception :
2182
+ sub_class_name = str (
2183
+ self .__class__ .__bases__ [0 ]).split ('.' )[- 1 ].split ("'" )[0 ]
2184
+ sub_file_name = str (self .__class__ .__bases__ [0 ]).split ('.' )[- 2 ]
2185
+ sub_file_name = sub_file_name + ".py"
2186
+ class_name = str (self .__class__ ).split ('.' )[- 1 ].split ("'" )[0 ]
2187
+ file_name = str (self .__class__ ).split ('.' )[- 2 ] + ".py"
2188
+ class_name_used = sub_class_name
2189
+ file_name_used = sub_file_name
2190
+ if sub_class_name == "BaseCase" :
2191
+ class_name_used = class_name
2192
+ file_name_used = file_name
2193
+ fix_setup = "super(%s, self).setUp()" % class_name_used
2194
+ fix_teardown = "super(%s, self).tearDown()" % class_name_used
2195
+ message = ("You're overriding SeleniumBase's BaseCase setUp() "
2196
+ "method with your own setUp() method, which breaks "
2197
+ "SeleniumBase. You can fix this by going to your "
2198
+ "%s class located in your %s file and adding the "
2199
+ "following line of code AT THE BEGINNING of your "
2200
+ "setUp() method:\n %s\n \n Also make sure "
2201
+ "you have added the following line of code AT THE "
2202
+ "END of your tearDown() method:\n %s\n "
2203
+ % (class_name_used , file_name_used ,
2204
+ fix_setup , fix_teardown ))
2205
+ raise Exception (message )
2206
+ if with_selenium :
2180
2207
# Save a screenshot if logging is on when an exception occurs
2181
2208
if has_exception :
2182
2209
self ._add_pytest_html_extra ()
0 commit comments