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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions