
Andrey
10.05.2016
09:36:53

Ray
10.05.2016
09:38:04

Andrey
10.05.2016
09:38:36

Ray
10.05.2016
09:38:55
питоновскый ?

Google

Andrey
10.05.2016
09:39:01

Andy
10.05.2016
09:39:19

Aragaer
10.05.2016
09:39:26
потому что тестировать юнит-тестом начинку для фреймворка - задолбешься

Anton
10.05.2016
09:39:40
о, спасибо, люди

Mikhail
10.05.2016
09:39:44
У кого-нибудь есть удачный опыт компиляции apk с kivy под виндой?

Anton
10.05.2016
09:40:01

Aragaer
10.05.2016
09:40:03
тебе фреймворк дает адский объект с параметрами, ты с ним в коде работаешь, а сымитировать такой же руками в юнит тесте это гемор
например у торнады встроенный модуль юнит тестирования хэндлеров

Ray
10.05.2016
09:40:26

Andrey
10.05.2016
09:40:55

Ray
10.05.2016
09:40:56
Да.
Он не плох. Но позвольте спросить как вы будете реализовывать тестирование авторизации ?

Aragaer
10.05.2016
09:41:12
в торнаде вроде есть пример

Andrey
10.05.2016
09:41:29

Google

Anton
10.05.2016
09:41:50
Но можно и самому
если имеется в виду, клепать что-то поверх wsgi, то уже делал на перле такое, для psgi, но это скорее с самим стандартом разобраться, о ксати, почитаю как я спек по wsgi

Aragaer
10.05.2016
09:42:00
но я авторизацию тестировал на уровне интеграционных тестов, а там я уже использовал behave и selenium. Но у меня авторизация была через openid и опять же поднимался свой минимальный openid сервер

Andrey
10.05.2016
09:42:47

Ray
10.05.2016
09:43:35
про метод я что-то не совсем понял

Andrey
10.05.2016
09:45:30
про метод я что-то не совсем понял
Выделить метод, который проверяет права на авторизацию. Авторизация состоит из: получение данных, их проверку, и если данные верны, то установки "флага", что у пользователя есть какие-то права. Вот проверку данных поместить в юниттесты, а остальное проверять интеграционными тестами.

Aragaer
10.05.2016
09:48:02
как там ... юнит тесты нужны для того, чтобы быть уверенным в своем коде. Можно сесть и накодячить сразу всю систему. И если оно сразу и работает, то и зашибись. Но если вдруг в какой-то момент ты понял, что чота запутался, то стоит притормозить и начать тестировать. Откатить назад все изменения, начать идти чуть более мелкими шажочками.
если ты протестил в отдельности все методы в изоляции, а проверить их связку проблематично, но там все просто и тривиально, ну так и в чем проблема - просто напиши код

Ray
10.05.2016
09:50:21
есть другой подход - сперва написать тесты

[Anonymous]
10.05.2016
09:50:27
TDD ебаный.
НАПИСАЛИ ТЕСТЫ
@
СДАЛИ ПРОЕКТ
@
ЗАБЫЛИ НАПИСАТЬ ПРОГРАММУ

Anton
10.05.2016
09:51:09
вот кстати логику аутентификации вынести отдельно, в ту же модель например, и покрыть юниттестами очень даже здравая идея

Cykooz
10.05.2016
09:52:13
У меня обычно ход мыслей такой - если я не могу без гемороя написать тесты которые учитывают взаимодействие разных частей системы - то значит я криво написал систему (или заюзал кривой фреймворк, который не позволяет мне динамически в тестах подменять части системы на Mock-и)

Ray
10.05.2016
09:53:13
трудно представить что что-то не представляется быть замоканым

Cykooz
10.05.2016
09:55:05
В этом плане я уже люто нелюблю джангу - там какой то геморой полный с динамической перезагрузкой URL-сов. У меня в системе некоторые приложения подключаются в зависимости от настроек в yaml файле и по умолчанию они отключены. В тестах возникает запарка - как их включить для тестирования, что бы Django подхватила новые urlpatterns

Sasha
10.05.2016
09:55:13
Товарищи ботоводы, а вы стринги прямо в коде указываете?
Типа:
bot.answerCallbackQuery(query.id,
text="И стринги мы прямо в коде держим")

Dmitri
10.05.2016
09:56:26

Anton
10.05.2016
09:56:33
вообще

Sasha
10.05.2016
09:56:39
именно

Dmitri
10.05.2016
09:56:51
тем более русские стринги в коде...

Google

Dmitri
10.05.2016
09:57:00
как-то странно

Ray
10.05.2016
09:57:00
а если работает - не трогай

Sasha
10.05.2016
09:57:22
именно. но во всех примерах именно так.
поэтому я хотел узнать best practices дял этого

Dmitri
10.05.2016
09:57:23

Anton
10.05.2016
09:57:40
сереиализуй во что-нибудь, сохрани куда-нибудь, в конф путь, если оч хочется, можно и в класс обернуть структуру

Dmitri
10.05.2016
09:58:02

Andrey
10.05.2016
09:58:12

Dmitri
10.05.2016
09:58:31

Sasha
10.05.2016
09:58:36
Ну да, стандартный подход с gettext

Anton
10.05.2016
09:58:46
так лучше уже геттекст тогда

Dmitri
10.05.2016
10:00:16

Anton
10.05.2016
10:00:57

Dmitri
10.05.2016
10:02:25
а, вы про этот геттекст? https://www.gnu.org/software/gettext/manual/gettext.html

Ivan
10.05.2016
10:02:31

[Anonymous]
10.05.2016
10:02:51
Мсье знает толк.

Ivan
10.05.2016
10:02:59
да-да
я люблю извращения
как-то раз я хранил в sqlite данные по графам в pickle

Google

[Anonymous]
10.05.2016
10:03:45
Хуя ты ферзь.

Ivan
10.05.2016
10:04:06

Sasha
10.05.2016
10:04:11
Эти стринги - фактически стандартные ответы бота.
Самое галвное, что там локализации не предполагается никогда.
но хранить в коде уж точно не стоит.
Но так и не могу понять, как бы это сделать красиво
мб вообще вынести в какой-нибудь конфиг файл и конфиг парсером?

Ivan
10.05.2016
10:05:31

Sasha
10.05.2016
10:06:01
Он возможно обрастет в скором времени

Admin
ERROR: S client not available

Sasha
10.05.2016
10:06:39
А какой тогда выриант еще подойдет, без хардкодинга?

Anton
10.05.2016
10:06:43

Dmitri
10.05.2016
10:06:46
если обрастет - выноси однозначно

Ray
10.05.2016
10:07:22
так вот, возвращаясь к фреймворкам. Сейчас уже больше года пользую джангу и к ней рест фреймворк. Что можно сказать: "да, да ! Но, нет !"

Andrey
10.05.2016
10:07:49

Ivan
10.05.2016
10:08:15
Он возможно обрастет в скором времени
Если обрастёт, тогда действительно выноси. Ну и механизм периодического подхватывания строк — боты они предполагают не сбалансированную нагрузку, а значит может быть то пусто, то густо

Ray
10.05.2016
10:08:24
и если для себя делать свой собственный сервис - то либо фласк, либо фалкон

Mikhail
10.05.2016
10:08:27
2-3 в смысле DRF а не питон

Sasha
10.05.2016
10:08:55

[Anonymous]
10.05.2016
10:09:19
Я прямо в коде храню.

Google

[Anonymous]
10.05.2016
10:09:21
Скорость.
Нахуй чтение.
Нахуй базы.
Нахуй I/O.
Нахуй константы - память жрут.
Нахуй переменные - тоже.
Всё нахуй, прямо в строку хуярь.
Покажи кто тут батя.

Ray
10.05.2016
10:09:49

Ivan
10.05.2016
10:09:50

Cykooz
10.05.2016
10:10:08
Если интернационализация не предпологается совсем - то в топку gettext и ко.
Если все строки уникальны и не используются по два-три раза в разных местах кода - в топку вообще какой то мепинг. Вы сейчас в это закопаетесь, понаделаете ошибок хитрых а профиту пока для вас - 0.
Вот когда это понадобится - то прикрутить мепинг или gettext будет не очень сложной задачей.

Ray
10.05.2016
10:10:25

Sasha
10.05.2016
10:10:36

Aragaer
10.05.2016
10:10:54
а есть вроде у геттекста тулза, которой скармливаешь код, а он тебе сам говорит где чего можно выцеплять

Mikhail
10.05.2016
10:11:21

Cykooz
10.05.2016
10:11:45
Человек новичёк в питоне - нафиг ему эти сложности. Ему бота надо написать.

Sasha
10.05.2016
10:11:52

Ivan
10.05.2016
10:12:03

Sasha
10.05.2016
10:12:38

Cykooz
10.05.2016
10:12:55
бест - gettext