@ru_python

Страница 7382 из 9768
Tishka17
12.12.2018
13:12:40
это ж надо докер расчехлять как минимум

gigimon
12.12.2018
13:12:48
а в чем сложность?

Tishka17
12.12.2018
13:12:53
ну хз

просто интересно

Google
Tishka17
12.12.2018
13:13:03
один контейнер с тестами, другой с базой

как из контейнера с тестом поднять другой контейнер

gigimon
12.12.2018
13:13:12
не вижу проблем ?

как из контейнера с тестом поднять другой контейнер
прокидываешь либо docker сокет, либо обращаешься к докеру по http api

Сергей
12.12.2018
13:13:38
это ж надо докер расчехлять как минимум
никакого докера запрос улетает типа CREATE db_test и кстати еще миграции накатываются

Aragaer
12.12.2018
13:13:42
ой не, я такие штуки делаю вообще на behave

Alex
12.12.2018
13:13:43
ты не поверишь, но @pytest.mark.usefixtures
ну из документации это немного все же не то

Aragaer
12.12.2018
13:13:51
я знаю про pytest-bdd, но мне он не зашел

Tishka17
12.12.2018
13:13:58
никакого докера запрос улетает типа CREATE db_test и кстати еще миграции накатываются
эм, вот три теста одновременно делают create db_test - что будет?

Zi
12.12.2018
13:14:04
Подскажите как перевести суму в копейки. Копаю в сторону Decimal Сейчас есть что то такое, но варианты с 1 например выдает неправильно def convert_amount(sum): from decimal import getcontext getcontext().prec = 2 x = Decimal(str(sum)) a = int(x) b = int(100 * (x - a)) if a == 0: a = "" return (str(a)+str(b))

gigimon
12.12.2018
13:14:04
ну из документации это немного все же не то
но организовать работу с ним можно такую же

Tishka17
12.12.2018
13:14:16
ой

LighteR
12.12.2018
13:14:19
я бы предпочел какой-нибудь явный декоратор для этого
Типа было так: def test_bla(user, blog): стало так: @use_fixture('user', 'blog') def test_bla(user, blog): ?

Google
gigimon
12.12.2018
13:14:19
Aragaer
12.12.2018
13:14:20
а в behave есть before_all, before_feature, before_scenario и соответствующие after

Tishka17
12.12.2018
13:14:21
импорт внутри функции

gigimon
12.12.2018
13:14:39
ой не, я такие штуки делаю вообще на behave
я сейчас переписываю bdd тесты на просто pytest, выкидывая lettuce

Alex
12.12.2018
13:14:55
Aragaer
12.12.2018
13:15:00
если она не в виде целого числа, то вот в этом месте и надо чинить

сумма денег всегда должна быть в копейках

LighteR
12.12.2018
13:15:11
Сергей
12.12.2018
13:15:13
эм, вот три теста одновременно делают create db_test - что будет?
не делают. фикстра базы со скоупом session один раз на весь запуск выполняется

Zi
12.12.2018
13:15:41
а изначально сумма в чем?
В строке. С плавающей точкой

Tishka17
12.12.2018
13:15:42
не делают. фикстра базы со скоупом session один раз на весь запуск выполняется
как скоуп мне запретит одновременно запустить два раза тесты в двух контейнерах?

Aragaer
12.12.2018
13:16:02
В строке. С плавающей точкой
тогда надо убрать точку наверно

Tishka17
12.12.2018
13:16:09
str от строки это сильно

Zi
12.12.2018
13:16:49
тогда надо убрать точку наверно
А если флоат прилетит?

Tishka17
12.12.2018
13:17:03
ты чего вообще хочешь?

Сергей
12.12.2018
13:17:11
как скоуп мне запретит одновременно запустить два раза тесты в двух контейнерах?
типа распараллеливать прогон тестов или что? чет не пойму зачем это

Google
Tishka17
12.12.2018
13:17:12
пример входных и выходных данных давай

типа распараллеливать прогон тестов или что? чет не пойму зачем это
ну да, вот есть CI он фигачит параллельно тесты от разных веток

Ilya
12.12.2018
13:17:41
#help-offered #documentation I am looking for Open Source project to write documentation. Привет! Хочу написать документацию проекта.

Сергей
12.12.2018
13:18:27
ну да, вот есть CI он фигачит параллельно тесты от разных веток
если у них общая база, то там будут коллизии и такие тесты не надежны )

нафиг так делать

Tishka17
12.12.2018
13:18:36
не должна быть общая база

её надо поднять

для теста

ну с пробросом сокета докера понял

LighteR
12.12.2018
13:19:04
если у них общая база, то там будут коллизии и такие тесты не надежны )
Да просто не надо писать unit test'ы, которым нужна база

Сергей
12.12.2018
13:19:05
научить CI на каждую ветку свою базу прописывать в конфиге

Tishka17
12.12.2018
13:19:09
непонятно как это к фикстурам относится и “прописал строчку и всё”

Tishka17
12.12.2018
13:19:54
оказывается не строчку, а ещё сокет пробросить и CI настроить

Сергей
12.12.2018
13:20:40
причем тут это вообще?

Aragaer
12.12.2018
13:20:51
крч я пользую для такого behave и доволен

gigimon
12.12.2018
13:20:54
непонятно как это к фикстурам относится и “прописал строчку и всё”
тебе никто не мешает сделать фикстуру: mysql, которая 1 раз создаст базу на сессию (поднимет mysql например), затем создать фикстуру mydb, которую передавать в каждый тест и она будет просто на старте теста создавать базу/дамп, а при выходе очищать

Tishka17
12.12.2018
13:21:02
а тут красиво в функцию теста передаешь параметр mysql и получаешь запущенный mysql с натсроенным на него окружением

Aragaer
12.12.2018
13:21:08
и вообще, часть этих фикстур выношу в шаги, а их в бэкграунд для тестов

Сергей
12.12.2018
13:21:14
как-то резко скатились от фикстур к настройке окружения для CI

Google
Aragaer
12.12.2018
13:21:45
Background: Given I have a database populated with the following: | key | value | | 1 | 2 |

Tishka17
12.12.2018
13:21:52
у меня собственно и было - базовый класс тесткейса, который поднимает базу

gigimon
12.12.2018
13:21:54
я это могу и без фикстур сделать
было б странно, если б это можно было сделать только с фикстурами)

Tishka17
12.12.2018
13:22:14
что так строка, что так

gigimon
12.12.2018
13:23:26
Tishka17 ну ок, а если тебе надо 2 базы? mysql и redis например?

Сергей
12.12.2018
13:23:32
у меня собственно и было - базовый класс тесткейса, который поднимает базу
дак можно и фикстуру такую же сделать поднимает базу, если её нет. если есть, то не поднимает и запускай себе в разных контейнерах только непонятно кто из них потом её грохать будет ) все зависит от бзкейсов, мне вот такое поведение не нужно было

gigimon
12.12.2018
13:23:37
то уже попадешь на множественное наследование

Tishka17
12.12.2018
13:24:23
Admin
ERROR: S client not available

gigimon
12.12.2018
13:24:39
фабрику, проблем то

а потом дашь это джуну и офигеешь от вопросов)

Tishka17
12.12.2018
13:24:49
можно декоратор соорудить чтобы в сетап само прописывалось

а вообще подумаешь множественное наследование

gigimon
12.12.2018
13:25:17
а в py.test ты просто создашь вторую фикстуру redis, которая ничего не будет знать про mysql и передав ее в функцию, у тебя будет редис

Сергей
12.12.2018
13:25:40
вот блин адепты ООП и докеров ) любят же всё переусложнять )

Tishka17
12.12.2018
13:26:49
я полагаю один и тот же код получится

вопрос как он будет прмиеняться к тесту

LighteR
12.12.2018
13:29:48
сетап бд, редиса и т.п. уже похоже на интеграционное тестирование, я бы в unit test'ах такого не делал

Владимир
12.12.2018
13:31:09
сетап бд, редиса и т.п. уже похоже на интеграционное тестирование, я бы в unit test'ах такого не делал
Если надо развернуть для прогонки, то можно. Потом CI все это исполняет

Сергей
12.12.2018
13:32:10
это оч холиварная тема )

Google
gigimon
12.12.2018
13:32:14
я им интеграционные гоняю и selenium и апи тесты

интеграционный тест на 2.5 часа тоже гоняется

Валерий Н.
12.12.2018
13:32:40
36 лучших видео для тех, кто хочет углубить знания в Python Познавательная подборка видеоматериалов о языке программирования Python. Подборка разбита на временной ряд от 2007 до 2015 года. Посмотри, как развивался Python! https://proglib.io/p/py-must-watch-videos/

Валерий
12.12.2018
13:33:38
AuthUser.objects.filter(email__in=emails) - что деалет __in в Django?

Владимир
12.12.2018
13:34:20
Выбирает юзеров с мейлами из списка емейлс

Tishka17
12.12.2018
13:34:45
делает IN

select * from authuser where email in (emails)

LighteR
12.12.2018
13:35:47
а что, py.test только юнит тестов использовать?)
Ну никто не запретит, но мне, все же, кажется что в первую очередь pytest для unittest'ов

gigimon
12.12.2018
13:35:57
чем тогда делать другое тестирование?

LighteR
12.12.2018
13:36:20
разворачивание окружения может быть слишком сложной задачей, чтобы ее делать в фикстурах

Tishka17
12.12.2018
13:37:02
ну у меня щас функциональный тест

Владимир
12.12.2018
13:37:07
разворачивание окружения может быть слишком сложной задачей, чтобы ее делать в фикстурах
А зачем там. Пусть это будет описано в контейнере, а тесты уже будут использовать это окружение

Tishka17
12.12.2018
13:37:12
база инциализируется снаружи

gigimon
12.12.2018
13:38:28
у нас на проекте все по контейнерам и даже ci (докер) контейнерный

Tishka17
12.12.2018
13:38:41
угу

Владимир
12.12.2018
13:38:49
Все в коробки!

gigimon
12.12.2018
13:38:51
пустить все тесты в 5 потоков и пусть каждый знает, что ему надо очень просто

тесты все свое носят с собой

LighteR
12.12.2018
13:39:15
А зачем там. Пусть это будет описано в контейнере, а тесты уже будут использовать это окружение
Звучит вполне норм. Тогда просто важно не смешивать unit test'ы и интеграционные

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