
Older
24.08.2017
08:19:20

Andrey
24.08.2017
08:19:44
Но не в том суть.

Google

Andrey
24.08.2017
08:20:14

Older
24.08.2017
08:20:19
Я про связку. Щас напишу как

amureki
24.08.2017
08:22:06
Потом бах-трах, loaddata
я представил сейчас, как мой CI выглядел бы, где мы берем 20 гб дамп, бам-трах грузим его в CI, тестим, потом сносим...и это каждые N минут

Andrey
24.08.2017
08:23:23
Представляете?

amureki
24.08.2017
08:23:51
Далее, представим, что у нас какая-то фича с некоторыми миграциями....ты льешь свой дамп, далее ты обязан во время тестов накатывать миграции все, потом только сможешь протестировать фичу, иначе она свалится из-за бд

Andrey
24.08.2017
08:25:35

Older
24.08.2017
08:25:36
https://pastebin.com/ZGjUHmXu
Как-то так. Потом UserFactory.create_batch(1000)
И тебе создаст 1000 юзеров с рандомными name

Andrey
24.08.2017
08:26:45
Причём сразу сказал

Google

Andrey
24.08.2017
08:26:59
Что не нужны мне фабрики
хоть они 1 лям генерят.
Я могу юзать фабрики, не отрицаю
и это выход, оно будет работать
и есть решения удобные для них
и это здорово\полезно
но сейчас
меня интересуют именно фикстуры
джанговские
и их импорт в тесты.
Вы чет не так делаете. Вместо схемы: ответ на вопрос, предложение сделать лучше и обоснование - Вы делаете - предложение сделать лучше.
Упускаете две важные части
Одну из них критически важную.

Дмитрий
24.08.2017
08:29:12
?

amureki
24.08.2017
08:29:41
Воот, так вопрос тоже без обоснования, почему надо делать через одно место, а не по best practices? Или я упустил это обоснование?

Older
24.08.2017
08:30:10
Не понимаю, в чем смысл подтягивать фикстуры для тестов

Andrey
24.08.2017
08:31:30
+ без сторонних расширений
+ у Django из коробки что-то подобное есть.

Google

amureki
24.08.2017
08:32:25
Кода меньше? Мы как-то о разном, похоже, говорим...
Придется городить код на создание дампа, его загрузку и потом снос...опять же, откуда свежий дамп с миграциями фичи берется не понимаю
Я вижу пока только больше кода, причем костыльного
+ без сторонних расширений
И это очень часто минус - когда люди предпочитают городить велосипеды без документации и прочего, которые потом не поддерживают, которые потом новые разработчики не понимают
вместо того, чтоб заиспользовать популярный пакет, где все аккуратно расписано, и который развивается

Older
24.08.2017
08:34:26
Это каждый раз заливать дамп в тестовую базу? Бред какой-то

Andrey
24.08.2017
08:35:34

amureki
24.08.2017
08:36:29
Так так так
Вот погоди
Сам дамп то как генерируется?
тот самый файлик users.json, к примеру

Older
24.08.2017
08:37:39
ручками))

amureki
24.08.2017
08:37:40
и как чувак, вводящий с фичей новое текстовое поле в модели User обновляет этот файлик?
добавили поле description, где надо генерить некоторое количество символов, скажем 500 текста

Andrey
24.08.2017
08:41:11
manage.py dumpdata, открываем созданный файл, оставляем по 10-20 записей, нужных нам (для моей задачи - секунд 60, если смотреть телек параллельно). И, профит, не?
Они все отсортированы
убить хоть 10кк не проблема же

Дмитрий
24.08.2017
08:41:44
Бля, редактировать дамп с 10кк
Мсье Вы знаете толк

Call Me Maybe
24.08.2017
08:41:56
>смотреть телек
никакого профита, абсолютно

amureki
24.08.2017
08:42:17
manage.py dumpdata, открываем созданный файл, оставляем по 10-20 записей, нужных нам (для моей задачи - секунд 60, если смотреть телек параллельно). И, профит, не?
то есть, пишет фичу, чтоб протестировать ее быстро, он сначала должен руками в своейл локальной базе добавить сотню юзеров, поправить каждому дескрипшн, потом сделать дамп из этого?
и только потом запустить тесты!

Andrey
24.08.2017
08:42:33
Такс, ребят. Я Вас прекрасно понимаю.
Я спросил о существуеющей у Джанги технологии

Google

Andrey
24.08.2017
08:42:57
Мне никто, ничего не объяснил.
Но
Но!

Дмитрий
24.08.2017
08:43:06

amureki
24.08.2017
08:43:07
а если опечатался в имени поля
повторяем заново, делаем дамп, редактируем снова файл руками, удаляем лишнее, добавляем нужное, делаем еще раз дамп и запускаем тесты

Andrey
24.08.2017
08:43:13
Накидали over90000 вариантов, как сделать иначе.
Ок, я Вас понял.
Не вижу смысла продолжать дискуссию.

amureki
24.08.2017
08:43:26

Andrey
24.08.2017
08:43:35
Да-да
Рассказали
Потом ещё рассказали
Я пошел.
Пасиб

amureki
24.08.2017
08:43:56
ну погоди, я ведь пытаюсь понять, как ты это делаешь, чтоб понять причину твоего непонимания и непринятия

Andrey
24.08.2017
08:44:13
Не-не, прости. Я сам разберусь.

Дмитрий
24.08.2017
08:44:16

amureki
24.08.2017
08:44:35
извини, если мои вопросы показались грубыми, но этот способ тестирования очень странно выглядит в моем понимании

Andrey
24.08.2017
08:45:13
Я ведь, скорее всего, буду юзать фабрики, ведь это действительно эффективно и полезность сего решения возрастает с увеличением функционала сервиса.

amureki
24.08.2017
08:45:14

Google

amureki
24.08.2017
08:45:32
https://michaelvdw.nl/code/adding-pytest-to-your-django-project/ и вот еще туда же

Spacehug
24.08.2017
08:45:41
> complex
> простой
))))

amureki
24.08.2017
08:45:52
все как мы писали - с пайтестом и фабриками, best practices

Call Me Maybe
24.08.2017
08:47:27
Теперь привыкать к новой аватарке @amureki ...

amureki
24.08.2017
08:47:48

Alexander
24.08.2017
08:49:46
Хочу взять, dumpdata
dumpdata в реальной жизни не работает, потому что обычно базы с овердофига данных, там не получится использовать такую команду... я вообще удивляюсь, что её не удалили

Andrey
24.08.2017
08:50:50
Я даже не сам к ней пришел. Кто-то подсунул
Мол, сделай фикстуры.
Я такой, ок

Alexander
24.08.2017
08:51:53
ну, в общем, она нормально работает, только если это какая-то пустая тестовая база, а если production - там так или иначе будет SQL
а loaddata в тестах можно вызвать как команду
но, опять же, возможно, sql будет удобнее

Artem
24.08.2017
08:53:09

Alexander
24.08.2017
08:53:41
а я не знаю
?)
ну, в общем, fixture удобно использовать для создания тестовых данных) и там из тестов можно выполнять loaddata, а вот применение dumpdata я не увидел, мне кажется это ненужным, дампить лучше в SQL тогда уж и если есть такая потребность, то и fixture тоже переводить в SQL тогда
мне кажется, в будущем эти fixtures вообще выкинут из Django
но я не уверен

amureki
24.08.2017
08:56:20
На сложных базах у меня никогда не выходило нормально сдампить и слоадить через эти команды
через бд дампы делал всегда в итоге