[openstreetmap/openstreetmap-website] Docker not set up correctly to run tests (Issue #4102)

Moritz Schott notifications at github.com
Wed Jul 19 20:56:09 UTC 2023


### URL

_No response_

### How to reproduce the issue?

The [Docker](https://github.com/openstreetmap/openstreetmap-website/blob/master/DOCKER.md) setup suggest that after migration, tests should be run (`docker-compose run --rm web bundle exec rails test:all`). Yet, the test-database is not set up wherefore the tests fail (see logs below).

My suggestion would be to move the `Test` chapter to the bottom of the documentation and include the full workflow of how to set up the test-db.


### Screenshot(s) or anything else?


```
$ docker compose run --rm web bundle exec rails test:all

[+] Creating 1/0
 ✔ Container openstreetmap-website-db-1  Running                                                                                                                                                      0.0s 
warning: parser/current is loading parser/ruby30, which recognizes 3.0.6-compliant syntax, but you are running 3.0.2.
Please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
Coverage report generated for Unit Tests to /app/coverage. 132 / 8545 LOC (1.54%) covered.
Lcov style coverage report generated for Unit Tests to coverage/lcov.info
Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected
/var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/postgresql_adapter.rb:81:in `rescue in new_client': We could not find your database: osm_test. Which can be found in the database configuration file located at config/database.yml. (ActiveRecord::NoDatabaseError)

To resolve this issue:

- Did you create the database for this app, or delete it? You may need to create your database.
- Has the database name changed? Check your database.yml config has the correct database name.

To create your database, run:

        bin/rails db:create
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/postgresql_adapter.rb:77:in `new_client'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in `public_send'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in `new_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:700:in `checkout_new_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:679:in `try_to_checkout_new_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:640:in `acquire_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:341:in `checkout'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:181:in `connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_handler.rb:211:in `retrieve_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_handling.rb:313:in `retrieve_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_handling.rb:280:in `connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/internal_metadata.rb:17:in `enabled?'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/tasks/database_tasks.rb:399:in `schema_up_to_date?'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:635:in `block in load_schema_if_pending!'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:634:in `all?'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:634:in `load_schema_if_pending!'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:655:in `block in maintain_test_schema!'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:909:in `suppress_messages'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:660:in `method_missing'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:655:in `maintain_test_schema!'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/test_help.rb:17:in `<top (required)>'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/zeitwerk-2.6.8/lib/zeitwerk/kernel.rb:38:in `require'
	from /app/test/test_helper.rb:33:in `<main>'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /app/test/abilities/abilities_test.rb:3:in `<main>'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/test_unit/runner.rb:47:in `block in load_tests'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/test_unit/runner.rb:47:in `each'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/test_unit/runner.rb:47:in `load_tests'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/test_unit/runner.rb:40:in `run'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/commands/test/test_command.rb:33:in `perform'
	from /var/lib/gems/3.0.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
	from /var/lib/gems/3.0.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
	from /var/lib/gems/3.0.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/command/base.rb:87:in `perform'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/command.rb:48:in `invoke'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/commands.rb:18:in `<main>'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from bin/rails:4:in `<main>'
/var/lib/gems/3.0.0/gems/pg-1.5.3/lib/pg/connection.rb:696:in `async_connect_or_reset': connection to server at "172.19.0.2", port 5432 failed: FATAL:  database "osm_test" does not exist (PG::ConnectionBad)
	from /var/lib/gems/3.0.0/gems/pg-1.5.3/lib/pg/connection.rb:824:in `connect_to_hosts'
	from /var/lib/gems/3.0.0/gems/pg-1.5.3/lib/pg/connection.rb:759:in `new'
	from /var/lib/gems/3.0.0/gems/pg-1.5.3/lib/pg.rb:63:in `connect'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/postgresql_adapter.rb:78:in `new_client'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in `public_send'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in `new_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:700:in `checkout_new_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:679:in `try_to_checkout_new_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:640:in `acquire_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:341:in `checkout'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:181:in `connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_adapters/abstract/connection_handler.rb:211:in `retrieve_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_handling.rb:313:in `retrieve_connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/connection_handling.rb:280:in `connection'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/internal_metadata.rb:17:in `enabled?'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/tasks/database_tasks.rb:399:in `schema_up_to_date?'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:635:in `block in load_schema_if_pending!'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:634:in `all?'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:634:in `load_schema_if_pending!'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:655:in `block in maintain_test_schema!'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:909:in `suppress_messages'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:660:in `method_missing'
	from /var/lib/gems/3.0.0/gems/activerecord-7.0.6/lib/active_record/migration.rb:655:in `maintain_test_schema!'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/test_help.rb:17:in `<top (required)>'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/zeitwerk-2.6.8/lib/zeitwerk/kernel.rb:38:in `require'
	from /app/test/test_helper.rb:33:in `<main>'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /app/test/abilities/abilities_test.rb:3:in `<main>'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/test_unit/runner.rb:47:in `block in load_tests'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/test_unit/runner.rb:47:in `each'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/test_unit/runner.rb:47:in `load_tests'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/test_unit/runner.rb:40:in `run'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/commands/test/test_command.rb:33:in `perform'
	from /var/lib/gems/3.0.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
	from /var/lib/gems/3.0.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
	from /var/lib/gems/3.0.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/command/base.rb:87:in `perform'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/command.rb:48:in `invoke'
	from /var/lib/gems/3.0.0/gems/railties-7.0.6/lib/rails/commands.rb:18:in `<main>'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /var/lib/gems/3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from bin/rails:4:in `<main>'
```

-- 
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/issues/4102
You are receiving this because you are subscribed to this thread.

Message ID: <openstreetmap/openstreetmap-website/issues/4102 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/rails-dev/attachments/20230719/96449623/attachment-0001.htm>


More information about the rails-dev mailing list