Я пишу модульный тест, в котором мне нужно имитировать поведение API, есть две части вопроса. Прямо сейчас я использую приспособление, которое работает нормально, но я не совсем понимаю, как здесь работает макет, я не совсем понимаю, как объекты-мокеры передаются в функциюock_dataiku во время выполнения (думаю, это какое-то волшебство в пакете макета?
@pytest.fixture()
def mock_dataiku(mocker):
# Mock Dataiku client and project
mock_client = MagicMock()
mock_project = MagicMock()
mocker.patch('dataiku.api_client', return_value=mock_client)
mock_client.get_project.return_value = mock_project
return mock_project
def test_cleanse_existing_variable(mock_dataiku):
# Set up project variables
mock_dataiku.get_variables.return_value = {
"local": {"var1": "old_value", "comment": "some_comment"}
}
cleanse(["var1", "comment"])
# Check if variables were set to the default value
expected_variables = {"local": {"var1": "-1", "comment": ""} }
mock_dataiku.set_variables.assert_called_with(expected_variables)
Вторая часть вопроса — как получить эти тесты в классе тестов unittest. Вместо этого я попытался создать экземпляр приспособления, но, очевидно, это не работает, поскольку у меня нет доступа к объекту-мокеру. Я новичок в тестировании, поэтому мне также хотелось бы спросить, имеет ли смысл в этом случае использовать unittest.Testcase? Почему светильники не поддерживаются? Могу ли я просто опустить класс и вместо этого использовать pytest сам по себе?
class test_cleanse(unittest.TestCase):
def __init__(self):
# Mock Dataiku client and project
mock_client = MagicMock()
mock_project = MagicMock()
mocker.patch('dataiku.api_client', return_value=mock_client)
mock_client.get_project.return_value = mock_project
#return mock_project
self.mocker=mock.project
Подробнее здесь: https://stackoverflow.com/questions/793 ... ect-fixtur
Издевательство над Python, почему мокер не нужно инициализировать. Как внедрить приспособление в модульный тест ⇐ Python
Программы на Python
1737025104
Anonymous
Я пишу модульный тест, в котором мне нужно имитировать поведение API, есть две части вопроса. Прямо сейчас я использую приспособление, которое работает нормально, но я не совсем понимаю, как здесь работает макет, я не совсем понимаю, как объекты-мокеры передаются в функциюock_dataiku во время выполнения (думаю, это какое-то волшебство в пакете макета?
@pytest.fixture()
def mock_dataiku(mocker):
# Mock Dataiku client and project
mock_client = MagicMock()
mock_project = MagicMock()
mocker.patch('dataiku.api_client', return_value=mock_client)
mock_client.get_project.return_value = mock_project
return mock_project
def test_cleanse_existing_variable(mock_dataiku):
# Set up project variables
mock_dataiku.get_variables.return_value = {
"local": {"var1": "old_value", "comment": "some_comment"}
}
cleanse(["var1", "comment"])
# Check if variables were set to the default value
expected_variables = {"local": {"var1": "-1", "comment": ""} }
mock_dataiku.set_variables.assert_called_with(expected_variables)
Вторая часть вопроса — как получить эти тесты в классе тестов unittest. Вместо этого я попытался создать экземпляр приспособления, но, очевидно, это не работает, поскольку у меня нет доступа к объекту-мокеру. Я новичок в тестировании, поэтому мне также хотелось бы спросить, имеет ли смысл в этом случае использовать unittest.Testcase? Почему светильники не поддерживаются? Могу ли я просто опустить класс и вместо этого использовать pytest сам по себе?
class test_cleanse(unittest.TestCase):
def __init__(self):
# Mock Dataiku client and project
mock_client = MagicMock()
mock_project = MagicMock()
mocker.patch('dataiku.api_client', return_value=mock_client)
mock_client.get_project.return_value = mock_project
#return mock_project
self.mocker=mock.project
Подробнее здесь: [url]https://stackoverflow.com/questions/79361304/python-mocking-why-doesnt-mocker-need-to-get-initialized-how-to-inject-fixtur[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия