У меня проблема при попытке написать модульные тесты для скрипта python3. Код генерирует ошибку AttributeError во время работы внутри определения теста, но этого не происходит, если я запускаю тот же код в том же файле вне класса определений теста.
Код:
class TestDataCleaningMethods(unittest.TestCase):
def test_one(self):
data = pd.DataFrame(columns=[
'categoryId',
'regionId',
'districtId',
'jobType',
'contractType',
'payType'])
result = service.__columns_to_snake_case(data)
Выдает следующую ошибку:
AttributeError: module 'service' has no attribute '_TestDataCleaningMethods__columns_to_snake_case'
Я провел поиск и нашел несколько вопросов и ответов об ошибках атрибутов на unittest, но не нашел ни одного, который бы полностью соответствовал этой проблеме.
Еще одна вещь, на которую стоит обратить внимание: я исправил Monkey import
, чтобы вернуть Mocks, но я не вижу, чтобы это мешало работе unittest. В интересах завершенности, этот код:
orig_import = __import__
original_imports = [
"service",
"pandas"
]
def import_mock(name, *args):
if name in original_imports:
print(f"Using original imports for {name}")
return orig_import(name, *args)
print(f"Mocking {name}")
return mock.MagicMock()
with mock.patch('builtins.__import__', side_effect=import_mock):
import service
Любая помощь с благодарностью