Я пытаюсь создать метод-обертку вокруг assertEquals (код ниже).Когда я запускаю тесты, я получаю следующую ошибку: «AttributeError: у объекта« список »нет атрибута« _getAssertEqualityFunc »»
Я пытался использовать напрямую assertEquals, и это работает, но мне нужно сделать больше вещей, когда утверждаюне удается.
from unittest import TestCase as a
class Asserts:
_assert_list = []
@property
def assert_list(self):
return self._assert_list
def equals(self, first, second, msg=None):
"""Fail if the two objects are unequal as determined by the '=='
operator.
"""
try:
A.assertEquals(first, second, msg)
except AssertionError:
self._assert_list.append(AssertionError.__cause__)
Редактировать: немного изменил код.Я хочу использовать это при выполнении нескольких тестов, чтобы не останавливаться в середине цикла, если что-то не получится по пути.Например, make all all утверждает, что вместо остановки теста в случае неудачи он добавляет причину в список, и в конце я буду утверждать, если список пуст или нет.
Трассировка:
Трассировка (последний последний вызов):
«Путь» файла, строка 88, в test_tc_01 self.a.equals (self.li, self.li2)
Файл«путь», строка 21, равно a.assertEquals (первый, второй, msg)
File «путь», строка 1321, в deprecated_func return original_func (* args, ** kwargs)
файл «path», строка828, assertEqual assertion_func = self._getAssertEqualityFunc (first, second) AttributeError: объект list не имеет атрибута _getAssertEqualityFunc
EDIT 2: у меня несколько утверждений в одном тесте. Если, например, первыйтерпит неудачу, остальные из них пропущены. Вот почему я хочу реализовать это в моей структуре
РЕДАКТИРОВАТЬ 3: по запросу, поставив здесь тест
def setUp(self):
self.driver = WebDriver(browser='chrome').browser
self.driver.get(self.RLO_URL)
self.driver.maximize_window()
self.wait = WebDriverWait(self.driver, 10)
self.driver.implicitly_wait(10)
self.a = Asserts()
login_page = LoginPage(self.driver)
login_page.log_in()
def test_tc_01(self):
self.maxDiff = None
nav_page = NavBarPage(self.driver)
nav_page.go_to_start_new_process()
start_new_process_page = StartNewProcessPage(self.driver)
start_new_process_page.start()
process_page = ProcessPage(self.driver)
app_info = process_page.application_info
import pdb; pdb.set_trace()
# self.assertEquals(app_info.get_country_list(), self.EXPECTED_COUNTRIES)
self.assertEquals(app_info.get_channel_list(), self.EXPECTED_CHANNELS)
self.assertEquals(app_info.get_marketing_source_list(), self.EXPECTED_MARKETING_SOURCE)
self.assertEquals(app_info.get_marketing_agreement_list(), self.EXPECTED_MARKETING_AGREEMENT)
self.assertEquals(app_info.get_office_credit_list(), self.EXPECTED_OFFICE_CREDIT)
def tearDown(self):
self.driver.quit()