Skip to content

Commit 8798dba

Browse files
committed
If you're overriding SeleniumBase's BaseCase setUp() method, you'll know.
1 parent 14bd125 commit 8798dba

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

seleniumbase/fixtures/base_case.py

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2176,7 +2176,34 @@ def tearDown(self):
21762176
test_id = "%s.%s.%s" % (self.__class__.__module__,
21772177
self.__class__.__name__,
21782178
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\nAlso 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:
21802207
# Save a screenshot if logging is on when an exception occurs
21812208
if has_exception:
21822209
self._add_pytest_html_extra()

0 commit comments

Comments
 (0)