Seed или вызовы API для создания тестовых пользователей

В ходе разработки и тестирования я запускаю экземпляр Discourse (Docker-версия от Bitnami), который покрывает большинство моих API-тестов для нашего сервиса, взаимодействующего с Discourse. Однако теперь мне нужно протестировать поиск через /u/search/users.json?term=and, и я хотел бы создать несколько пользователей в этом локальном тестовом экземпляре Discourse. По умолчанию там есть только один пользователь с именем «user».

В документации по API, похоже, нет описания соответствующих вызовов для этого, что было бы удобно. Не упустил ли я что-то, что позволило бы просто создать нескольких пользователей для тестирования?

Также отмечу: я уже отправлял ручные запросы к нашему платному рабочему экземпляру Discourse, и это работает. Но мне нужно протестировать это на нашем тестовом/разработочном экземпляре, а для этого требуются дополнительные тестовые пользователи.

Спасибо.

Разрешает ли Bitnami доступ к командной строке папки установки Discourse?

Если да, то ознакомьтесь с этим:

Спасибо @fzngagan. К сожалению, в Bitnami Discourse не установлен Launcher. Что именно делает команда enter app? Я думал, что смогу просто выполнить bundle exec rake admin:create, но получил следующую ошибку:

rake aborted!
LoadError: cannot load such file -- byebug
/opt/bitnami/discourse/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:82:in `require'
/opt/bitnami/discourse/config/application.rb:37:in `<top (required)>'
/opt/bitnami/discourse/Rakefile:5:in `require'
/opt/bitnami/discourse/Rakefile:5:in `<top (required)>'
/opt/bitnami/discourse/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/opt/bitnami/ruby/bin/bundle:23:in `load'
/opt/bitnami/ruby/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)

Казалось, что это перспективно, но я снова вернулся к исходной точке. :frowning:

Можете ли вы использовать поддерживаемую официальную установку Discourse?

В нашей среде разработки требуется ряд служб, и мы предпочитаем запускать всё (включая Discourse и все его модули), а также определять и управлять сетевым взаимодействием между всеми службами одной командой docker-compose up, а также останавливать всё той же командой down. Это позволяет избежать дополнительного шага — добавления launcher при новой установке в нашей среде разработки.

OK, решено. Для тех, кто использует установку Discourse через docker-compose от Bitnami (Docker) для разработки, вот шаги, которые я применил (с опорой на то, что указал @fzngagan):

> docker exec -it <имя вашего контейнера> /bin/bash

Внутри контейнера…

> export RAILS_ENV=production

Не уверен, как это повлияет на логирование; возможно, стоило попробовать =dev или =development. Так что это вопрос для вас, ребята, но я спешу, извините

> bundle exec rake admin:create

Ответьте на вопросы; пароль должен соответствовать правилам Discourse, иначе скрипт начнётся заново

Примечание: Нет необходимости использовать ./Launcher, как указано в ссылке, которую привёл @fzngagan выше.

Жаль, что этого нет в API, если Discourse настроен на окружение Dev или Test, так как это сильно упростило бы тестирование и разработку для API-сервисов, которые хотят это использовать. Однако пока я обойдусь командной строкой внутри экземпляра Docker.

Дополнительное замечание: команда > export RAILS_ENV=production (установка в production) не повлияла на логи Discourse, однако я не перезапускал docker-compose после этого изменения, поэтому, возможно, потребуется удалить переменную окружения или установить её в development, dev или любое другое значение.