# Seed ou chamadas de API para criar usuários de teste

**URL:** https://meta.discourse.org/t/seed-or-api-calls-to-create-test-users/126025
**Category:** Development
**Created:** [17 Agosto , 2019 02:13 UTC](https://meta.discourse.org/t/seed-or-api-calls-to-create-test-users/126025 "2019-08-17T02:13:06Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![alank](https://avatars.discourse-cdn.com/v4/letter/a/c89c15/32.png) [@alank](https://meta.discourse.org/u/alank)
#### Post date: [17 Agosto , 2019 02:13 UTC](https://meta.discourse.org/t/seed-or-api-calls-to-create-test-users/126025/1 "2019-08-17T02:13:06Z")

</div>

Em meu desenvolvimento e testes, estou executando uma instância do Discourse (Docker Discourse da Bitnami), que atende à maioria das minhas necessidades de teste de API para nosso serviço de API que se comunica com o Discourse. No entanto, agora preciso testar a pesquisa usando `/u/search/users.json?term=and` e gostaria de popular alguns usuários neste serviço local de teste do Discourse. Por padrão, ele possui apenas um usuário com o nome “user”.

A documentação da API não parece explicar chamadas de API para fazer isso, o que seria fácil. Há algo que estou perdendo onde posso simplesmente criar vários usuários para testar isso?

Vale ressaltar que já criei solicitações manuais para nosso serviço pago ao vivo do Discourse, e isso funciona, mas gostaria de testar em nossa instância de desenvolvimento/teste e, para isso, preciso de mais usuários de teste.

Obrigado.

---

<div class="post-metadata">

### Author: ![fzngagan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fzngagan/32/259349_2.png) [@fzngagan](https://meta.discourse.org/u/fzngagan)
#### Post date: [17 Agosto , 2019 03:58 UTC](https://meta.discourse.org/t/seed-or-api-calls-to-create-test-users/126025/2 "2019-08-17T03:58:05Z")

</div>

O Bitnami permite acessar a linha de comando da pasta de configuração do Discourse?

Se sim, confira isso:

> [@Adding new user when outgoing email has been globally disabled](https://meta.discourse.org/t/adding-new-user-when-outgoing-email-has-been-globally-disabled/123328?u=fzngagan):
>
> Hi, We have a test site with the email globally disabled, this test site has an old copy of the production site so we don’t want to send any emails from this one. Is there any way to add a new user to our test site which does not involve emailing for confirmation of details? Thanks

---

<div class="post-metadata">

### Author: ![alank](https://avatars.discourse-cdn.com/v4/letter/a/c89c15/32.png) [@alank](https://meta.discourse.org/u/alank)
#### Post date: [19 Agosto , 2019 10:45 UTC](https://meta.discourse.org/t/seed-or-api-calls-to-create-test-users/126025/3 "2019-08-19T10:45:46Z")

</div>

Obrigado, @fzngagan. Infelizmente, o Bitnami Discourse não tem o Launcher instalado. O que exatamente `enter app` faz? Achei que poderia apenas executar `bundle exec rake admin:create`, mas isso retorna…

```plaintext
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)

```

Isso parecia promissor, mas estou de volta ao zero. ☹

---

<div class="post-metadata">

### Author: ![csmu](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/csmu/32/124581_2.png) [@csmu](https://meta.discourse.org/u/csmu)
#### Post date: [19 Agosto , 2019 10:58 UTC](https://meta.discourse.org/t/seed-or-api-calls-to-create-test-users/126025/4 "2019-08-19T10:58:52Z")

</div>

> [@alank](#):
>
> O Bitnami Discourse não possui Launcher

Você poderia usar a instalação oficial suportada do Discourse?

---

<div class="post-metadata">

### Author: ![alank](https://avatars.discourse-cdn.com/v4/letter/a/c89c15/32.png) [@alank](https://meta.discourse.org/u/alank)
#### Post date: [19 Agosto , 2019 11:30 UTC](https://meta.discourse.org/t/seed-or-api-calls-to-create-test-users/126025/5 "2019-08-19T11:30:59Z")

</div>

Temos vários serviços necessários em nosso ambiente de desenvolvimento e preferimos iniciar tudo (junto com o Discourse e todos os seus módulos), bem como definir/controlar a rede entre todos os serviços com um único comando `docker-compose up`, além de desligar tudo novamente com `down`. Isso evita o passo adicional de adicionar o launcher a uma nova instalação do nosso desenvolvimento.

---

<div class="post-metadata">

### Author: ![alank](https://avatars.discourse-cdn.com/v4/letter/a/c89c15/32.png) [@alank](https://meta.discourse.org/u/alank)
#### Post date: [19 Agosto , 2019 11:46 UTC](https://meta.discourse.org/t/seed-or-api-calls-to-create-test-users/126025/6 "2019-08-19T11:46:18Z")

</div>

OK, resolvido. Para quem está usando uma instalação do Discourse via bitnami com docker-compose (Docker) para desenvolvimento, aqui estão os passos que segui (com base nas orientações apontadas por @fzngagan):

`> docker exec -it <nome_do_seu_container> /bin/bash`

Dentro do container…

`> export RAILS_ENV=production`

_Não tenho certeza qual será o impacto disso no registro de logs. Talvez devesse ter tentado `=dev` ou `development`… então, algo para vocês relatarem, mas estou com pressa, desculpem_

`> bundle exec rake admin:create`

_Responda às perguntas; a senha deve seguir as regras do Discourse, caso contrário o script recomeça do início_

Nota: Não é necessário usar o ./Launcher, conforme mencionado no link citado por @fzngagan acima.

É uma pena que isso não esteja disponível via API se o Discourse estiver configurado como ambiente Dev ou Test, pois isso simplificaria muito os testes e o desenvolvimento de serviços de API que desejam utilizá-lo. No entanto, por enquanto, vou me contentar com a linha de comando na instância do Docker.

---

<div class="post-metadata">

### Author: ![alank](https://avatars.discourse-cdn.com/v4/letter/a/c89c15/32.png) [@alank](https://meta.discourse.org/u/alank)
#### Post date: [19 Agosto , 2019 11:50 UTC](https://meta.discourse.org/t/seed-or-api-calls-to-create-test-users/126025/7 "2019-08-19T11:50:36Z")

</div>

Observação adicional: `> export RAILS_ENV=production` (definindo para `production`) parece não ter impacto nas informações de log do Discourse. No entanto, eu não parei/iniciei meu docker-compose após essa alteração, então pode ser necessário excluir a variável de ambiente ou defini-la como `development`, `dev` ou algo assim.
