Oleg
по-моему все пишут один тест на get/set
Oleg
там же либо мокать надо, либо тестировать внутреннюю реализацию
Tishka17
да
Daniel
Тут есть люди, кто прогает на маке?)
Oleg
но если в get/set, например, запросы в базу, я бы замокал
Tishka17
но если в get/set, например, запросы в базу, я бы замокал
ну тут есть внешняя зависимость - база
Tishka17
но если в get/set, например, запросы в базу, я бы замокал
хотя смотря что там за объект, я бы скорее всего базу не мокал, ибо всякие селекты мокать запаришься. Либо не тестил бы вообще, либо тестил на реальноцй базе
Daniel
увы, я
Как поставить 3.7 питон на пичарм, у я не могу не интерфейс поменять, ни найти кнопочку за это отвечающую, я скачал питон с офф сайта и вроде он появился в выборе компиляторов
Daniel
На маке*
Aragaer
вообще, в зависимости от заковыристости реализации, я бы могу предложить следующие тесты: - только get - set, потом get - set, set, get - set, get, get - set, get, set, get
Daniel
Ну, просто установил его
Daniel
🌚
Paul
как передать по HTTP public key - alices_public_key print(alices_public_key) # UmbralPublicKey:036e2d8feb51ad5 print(type(alices_public_key)) # "<class 'umbral.keys.UmbralPublicKey'>" чтоб на flask сервере его можно было прочитать ?
Daniel
А как в это меню попасть, если я в проекте нахожусь?
Tishka17
а дальшне все кнопки на скрине
Daniel
Спасибо
Aragaer
но на самом деле такие заковыристые тесты они бы родились не на пустом месте, а именно из реализации. "а, вы вон как хитро делаете! А тогда если я сделаю сначала get, потом set, а потом еще два раза get, то у вас все навернется"
Aragaer
не совсем. Это как обоснование для исправления
Aragaer
потому что "у вас тут не код, а говно" - "но оно же работает!" - "а вот вам тест" - "ну ок"
Oleg
хотя смотря что там за объект, я бы скорее всего базу не мокал, ибо всякие селекты мокать запаришься. Либо не тестил бы вообще, либо тестил на реальноцй базе
Не, не тестить вообще такой себе вариант. На проектах где 100% coverage обязательно условие - это вообще не вариант. Ну и я считаю, что unit-test не должны зависеть от окружения (бд, другие сервисы и т.д.). Если нужно тестировать с реальными базами, то пиши интеграционные тесты
Tishka17
да
не надо https реализовывать во flask, юзай nginx
🤔
да
Не буду ничего утверждать, но скорее всего фласк этим не занимается
Oleg
не надо https реализовывать во flask, юзай nginx
+1. Терминация https в приложение - плохая идея
Paul
не надо https реализовывать во flask, юзай nginx
он у меня типа serverless в облаке
Tishka17
он у меня типа serverless в облаке
тогда что там у тебчя облако умеет
Tishka17
туда и отдавай
Anonymous
Доброе утро
🤔
Ну или PA
Oleg
юнит-тест обертки над базой - нереально. Тебе надо полностью замокать SQL для этого
Ты имеешь в виду делать мок, который парсит SQL? Так делать не надо
Tishka17
Ты имеешь в виду делать мок, который парсит SQL? Так делать не надо
ну так у тебя класс работающий с базой наверняка ничего больше не делает кроме как генерит sql
Paul
тогда что там у тебчя облако умеет
облако умеет что надо, мне с клиента нужно отправить на сервер print(alices_public_key) # UmbralPublicKey:036e2d8feb51ad5 print(type(alices_public_key)) # "<class 'umbral.keys.UmbralPublicKey'>" в комментах написано что это к серверу вопросов нет как это прередать по Hyper Text Transport Protocol HTTP (S) ?
Tishka17
хуй знает что такое UmbralPublicKey и при чем тут HTTP и зачем тебе это передавать
Tishka17
тебе надо с клиента на сервер отпраивть данные? или авторизоваться по сертификату?
Paul
хуй знает что такое UmbralPublicKey и при чем тут HTTP и зачем тебе это передавать
мне нужно передать <class 'umbral.keys.UmbralPublicKey'> авторизоваться не надо
🤔
Oleg
ну так у тебя класс работающий с базой наверняка ничего больше не делает кроме как генерит sql
Ну для того чтобы проверить что на выходе получился ожидаемый sql база не нужна. Достаточно сматчить его с каким-то эталонным значением
Paul
хуй знает что такое UmbralPublicKey и при чем тут HTTP и зачем тебе это передавать
как сформировать запрос на сервер с <class 'umbral.keys.UmbralPublicKey'> серилизовать в байты?
Oleg
Вообще вот что пишет Мартин Фаулер по этому поводу: Your unit tests will run very fast. On a decent machine you can expect to run thousands of unit tests within a few minutes. Test small pieces of your codebase in isolation and avoid hitting databases, the filesystem or firing HTTP queries (by using mocks and stubs for these parts) to keep your tests fast.
Tishka17
мне нужно передать <class 'umbral.keys.UmbralPublicKey'> авторизоваться не надо
Нельзя передать объект, можно передать данные. Вопросы: 1. Откуда ты взял объект 2. Что будешь делать на сервере? 3. Клиент и сервер твои?
Paul
Нельзя передать объект, можно передать данные. Вопросы: 1. Откуда ты взял объект 2. Что будешь делать на сервере? 3. Клиент и сервер твои?
да мои , но публичный ключ может себе копировать вся планета Земля, секъюрность не нужна , нужно запаковать в запрос ключ и на сервере получить его
Tishka17
Ну для того чтобы проверить что на выходе получился ожидаемый sql база не нужна. Достаточно сматчить его с каким-то эталонным значением
Эм, зачем проверять sql, когда надо проверять логику? Sql можно очень сильно изменить и функционально он останется тем же
Paul
Нельзя передать объект, можно передать данные. Вопросы: 1. Откуда ты взял объект 2. Что будешь делать на сервере? 3. Клиент и сервер твои?
и на клиенте и на сервере есть либа которая умеет работать с этим ключем, вопрос как по HTTP его передать
Tishka17
Paul
ок
🤔
ИМХО ему в бегиннерсы
Kseniia
Есть видео лица на минуту, нужно в реальном времени рисовать 68 ключевых точек на нем. Все работает кроме того, как видео замедляется раза в два. В чем может быть ошибка?
Kseniia
Работа с openCV
Daniel
@Tishka17 что такое R интерпритатор
Oleg
то что описываешь ты - это интеграционные тесты
Tishka17
Ты просто пытаешься сказать, что интеграционные тесты лучше юнит тестов
Да не, прост омне кажется тестировать фукнции вида execute(“seelct x from tablename. where ?>0”, (y,)) смысла нет
Tishka17
а слой работы с базой примерно такой
Daniel
Что такое R interpritator 🌚
Daniel
Hlp pls
Daniel
Ну ок
Tishka17
R - это другой язык как бы
Tishka17
типа такой: def get_objects(y): return execute(“seelct x from tablename. where ?>0”, (y,)) ?
угу. типа изолировали работу с базой от бизнес логики
Tishka17
вот этот объект везде и мокаем
🤔
Прям ботовский ник
Tishka17
типа такой: def get_objects(y): return execute(“seelct x from tablename. where ?>0”, (y,)) ?
ты же рендеринг шаблонов не тестируешь, это праям похожий кейс
Oleg
угу. типа изолировали работу с базой от бизнес логики
с эти я, в целом, согласен при условии если get_objects и execute с тайпхинтами и проверяются mypy. Иначе при изменении сигнатуры execute ты не узнаешь что get_objects стал с ним несовместим.
Anonymous
Прям ботовский ник
Ну да всех ботов Мама называет кожаными именами)