Tishka17
Tishka17
ну и mypy лишним не будет, да
Tishka17
ну хз как как мокать execute
Kseniia
Ksenia fugureskater:
Есть видео лица на минуту, нужно в реальном времени рисовать 68 ключевых точек на нем. Все работает кроме того, как видео замедляется раза в два. В чем может быть ошибка? Работа с openCV
ПОЖАЛУЙСТА, ОЧЕНЬ НАДО, ВСЕ ИДЕИ ПЕРЕПРОБОВАЛА🙈🙈🙈
Извините за беспокойство☺️
Anonymous
Tishka17
Kseniia
2,7 GHz
Oleg
ну хз как как мокать execute
Например так
def test_get_object(mocker):
# arrange
execute_mock = mocker.patch('somemodule.execute', autospec=True)
# act
result = get_object(42)
# assert
execute_mock.assert_called_once_with('seelct x from tablename. where ?>0', (42,))
assert result == execute_mock.return_value
Kseniia
Наверное
Oleg
🤔
2,7 GHz
Ну у проца не только частота есть
Tishka17
Tishka17
хз что мы этим проверим
Tishka17
кроме того что константа будет в коде два раза
Oleg
матчить или нет сам sql это уже другой вопрос
Oleg
если константа, то я бы не стал
Tishka17
хм
Oleg
если sql - это константа, то просто выносим ее в переменную и так же мокаем, а тесте проверям что в execute передали этот мок
Oleg
чтобы не дублировать константу
Tishka17
воу-воу
Tishka17
мокать константы
Oleg
не мокаем, сорян
Oleg
просто используем в проверке эту константу
Oleg
я писал про константу, а мысли были про то, что sql может возвращаться из какой-то функции
Oleg
в общем так
def test_get_object(mocker):
# arrange
execute_mock = mocker.patch('somemodule.execute', autospec=True)
y = 42
# act
result = get_object(y)
# assert
execute_mock.assert_called_once_with(GET_OBJECTS_QUERY, (y,))
assert result == execute_mock.return_value
Tishka17
Tishka17
окей, я понял идею, надо переварить
Tishka17
ну реально конечно же он будет не просто делать execute, а ещё создавать объект из строки
Tishka17
ведь мы же базу изолируем
Tishka17
ну да
Tishka17
map_result понятно
Aragaer
замокать оба - из execute возвращать sentinel.execute_result, в map_result проверить, что его же передали аргументом
Oleg
Aragaer
из map_result вернуть sentinel.map_result, прверить что общий результат это оно и есть
Aragaer
беда в том, что ты по сути тестом зафиксировал код - его вообще поменять после этого нельзя
Nodaa
Aragaer
почему китаянка, если буквы японские?
Nikita
Aragaer
а, я не туда посмотрел
Aragaer
а, я думал мы get_objects тестируем
Oleg
Если map_result вызывается много где и мы не будем его мокать, то по-сути тестируя код других функций мы будем писать дублирующиеся тесты и на map_result
Oleg
а, я думал мы get_objects тестируем
Тестируем его. Но вопрос в том надо ли мокать map_result. Если мы его не мокаем, то нам надо в тесте get_objects проверять результат работы map_result
Oleg
Если map_result это непубличный интерфейс, а особенности внутренней реализации get_objects, то можно и не мокать. А если map_result может использоваться в других местах, то незамокав map_result придется везде где он используется проверять правильность его работы
Oleg
тестов будет больше, они будут сложнее, и при изменении map_result придется править больше тестов
Tishka17
(ПИТОН ФЛАГ ВКЛЮЧИТЬ ТРИ ЗАКОНА)
Tishka17
да не за что
Tishka17
принимаются лайки в карму и яндекс деньги
Tishka17
написано же
Aragaer
а она отличается от тех букв, которые написаны?
Tishka17
прям даже не знаю что добавить
Anonymous
Aragaer
64
Mike
Tishka17
угу
Anonymous
Ну ок
Anonymous
Я 3 минуты думал
🍁 Jaŭhien
4, 8, 15, 16, 23, ?
Andrew
41=53
51=64
Dk
syntax error
Artyom
🍁 Jaŭhien
Artyom
Самый факапный сериал
17
2,6,8,14,?
🍁 Jaŭhien
Первые два сезона норм
Artyom
Первые два сезона норм
Там норм до того момента как они во времени начинают скакать и переключаться между версиями событий
Anonymous
17
🍁 Jaŭhien