@ru_python

Страница 703 из 9768
Andrey
10.05.2016
09:38:36
unit test framework )
А чем стандартный unittest плох?

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

Google
Andrey
10.05.2016
09:39:01
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
https://github.com/vinta/awesome-python#restful-api
клёвая ссылочка, забрал себе

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

например у торнады встроенный модуль юнит тестирования хэндлеров

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="И стринги мы прямо в коде держим")

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
главно что-бы работало )
а вообще, как показывает практика, писать нужно 2 раза

Andrey
10.05.2016
09:58:12
именно. но во всех примерах именно так. поэтому я хотел узнать best practices дял этого
Самое хорошее - иметь файл с мепом<константа, перевод>. Чтобы на другие языки было проще переводить.

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

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

Dmitri
10.05.2016
10:00:16
Ну да, стандартный подход с gettext
спасибо за наводку, погуглю. Сопсна, по питону на 12-й странице мануала нахожусь) Пришел к вам из Go, Java, частично из C++.

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

Ivan
10.05.2016
10:02:31
спасибо за наводку, погуглю. Сопсна, по питону на 12-й странице мануала нахожусь) Пришел к вам из Go, Java, частично из C++.
Не однолико ли, это же вопрос подхода :) В зависимости от того, что за бот, можно хранить файлами с мэпом, бд с сериализованными стрингами, или даже хардкодить

Ivan
10.05.2016
10:02:59
да-да

я люблю извращения

как-то раз я хранил в sqlite данные по графам в pickle

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

Ivan
10.05.2016
10:04:06
Хуя ты ферзь.
когда-то давно, на заре своей работы с django :)

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

Но так и не могу понять, как бы это сделать красиво

мб вообще вынести в какой-нибудь конфиг файл и конфиг парсером?

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 а не питон

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

Google
[Anonymous]
10.05.2016
10:09:21
Скорость.

Нахуй чтение.

Нахуй базы.

Нахуй I/O.

Нахуй константы - память жрут.

Нахуй переменные - тоже.

Всё нахуй, прямо в строку хуярь.

Покажи кто тут батя.

Ray
10.05.2016
10:09:49
а что не так с DRF ? ну кроме того что 2-3 сломана совместимость
да вроде все так. Но вот взять хотя-бы serializers, в которых много наследования. Причем бывает смотришь в класс - а там ничего

Ivan
10.05.2016
10:09:50
И все-таки. Константы, json или база?
а что по нагрузке планируется?

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
да вроде все так. Но вот взять хотя-бы serializers, в которых много наследования. Причем бывает смотришь в класс - а там ничего
меня скорее раздражает что нет одного метода сделать правильно, они даже в туториале переписывают все по 10 раз то так то сяк сделают

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

Sasha
10.05.2016
10:12:38
Человек новичёк в питоне - нафиг ему эти сложности. Ему бота надо написать.
Я не новичек, хех. Я новичек в ботах Я тут же не прошу мне дать решение, я выясняю best practices

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

Страница 703 из 9768