Skip to content

Authentication failure on MongoDB #5

@soderluk

Description

@soderluk

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.

[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:
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 <database> option.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions