Codeception / Codeception/module-mongodb

Authentication failure on MongoDB

Aperta
#5 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
PHP
Stelle
2
Fork
11
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

#### What are you trying to achieve?
I'm trying to use the MongoDB driver module in my tests (using an authentication database locally), but the following exception is generated:

MongoDb: Failed to list collections of the DB: auth failed

#### What do you get instead?

> Provide console output if related. Use `-vvv` mode for more details.

```bash
[Codeception\Exception\ModuleException]
MongoDb: Failed to list collections of the DB: auth failed

Exception trace:
() at /vagrant/api/vendor/codeception/codeception/src/Codeception/Module/MongoDb.php:206
Codeception\Module\MongoDb->cleanup() at /vagrant/api/vendor/codeception/codeception/src/Codeception/Module/MongoDb.php:106
Codeception\Module\MongoDb->_initialize() at /vagrant/api/vendor/codeception/codeception/src/Codeception/SuiteManager.php:80
Codeception\SuiteManager->initialize() at /vagrant/api/vendor/codeception/codeception/src/Codeception/Codecept.php:182
Codeception\Codecept->runSuite() at /vagrant/api/vendor/codeception/codeception/src/Codeception/Codecept.php:153
Codeception\Codecept->run() at /vagrant/api/vendor/codeception/codeception/src/Codeception/Command/Run.php:366
Codeception\Command\Run->runSuites() at /vagrant/api/vendor/codeception/codeception/src/Codeception/Command/Run.php:293
Codeception\Command\Run->execute() at /vagrant/api/vendor/symfony/console/Command/Command.php:265
Symfony\Component\Console\Command\Command->run() at /vagrant/api/vendor/symfony/console/Application.php:826
Symfony\Component\Console\Application->doRunCommand() at /vagrant/api/vendor/symfony/console/Application.php:189
Symfony\Component\Console\Application->doRun() at /vagrant/api/vendor/symfony/console/Application.php:120
Symfony\Component\Console\Application->run() at /vagrant/api/vendor/codeception/codeception/src/Codeception/Application.php:103
Codeception\Application->run() at /vagrant/api/vendor/codeception/codeception/codecept:36
```

### Details

* Codeception version: 2.2.10
* PHP Version: 7.0.17
* Operating System: Ubuntu 16.04.2 LTS (vagrant box)
* Installation type: Composer
* Suite configuration:

```yml
class_name: UnitTester
modules:
enabled: [Asserts, \Helper\Unit, Laravel5, MongoDb]
config:
Laravel5:
environment_file: .env.testing
```

I could fix this issue, by adding an option `'database' => 'admin'` to https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Lib/Driver/MongoDb.php#L114 `$options` array.
Problem is, that the module won't take into account any additional options, such as authenticationDatabase.

This also affects the mongorestore functionality, which doesn't have support for the `--authenticationDatabase ` option.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Start with Codeception/Lib/Driver/MongoDb.php around the options array near line 114 and the MongoDb module cleanup path reported at line 206. Reproduce the authenticated local setup, then verify that authenticationDatabase and related options are honored by both normal collection cleanup and mongorestore.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
mongodb, php
Ambito
databases, testing
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.