def test_mongo_init_withuser():
    set_cwd(tempfile.mkdtemp())
    cuckoo_create(
        cfg={
            "reporting": {
                "mongodb": {
                    "enabled": True,
                    "username": "******",
                    "password": "******",
                },
            },
        })
    m = Mongo()
    m.init()
    assert m.enabled is True
    assert m.hostname == "127.0.0.1"
    assert m.port == 27017
    assert m.database == "cuckoo"
    assert m.username == "foo"
    assert m.password == "bar"
def test_mongo_init_nouser():
    set_cwd(tempfile.mkdtemp())
    cuckoo_create(
        cfg={
            "reporting": {
                "mongodb": {
                    "enabled": True,
                    "host": "1.2.3.4",
                    "port": 4242,
                    "db": "foobar",
                },
            },
        })
    m = Mongo()
    m.init()
    assert m.enabled is True
    assert m.hostname == "1.2.3.4"
    assert m.port == 4242
    assert m.database == "foobar"
    assert m.username is None
    assert m.password is None
def test_mongo_connect_notenabled(p):
    set_cwd(tempfile.mkdtemp())
    cuckoo_create()
    m = Mongo()
    m.init()
    m.connect()
    p.MongoClient.assert_not_called()
def test_mongo_connect_success_withuser(p, q):
    set_cwd(tempfile.mkdtemp())
    cuckoo_create(
        cfg={
            "reporting": {
                "mongodb": {
                    "enabled": True,
                    "username": "******",
                    "password": "******",
                },
            },
        })
    m = Mongo()
    m.init()
    m.connect()
    db = p.MongoClient.return_value.__getitem__.return_value
    db.authenticate.assert_called_once_with("foo", "bar")
def test_mongo_connect_success_nouser(p, q):
    set_cwd(tempfile.mkdtemp())
    cuckoo_create(cfg={
        "reporting": {
            "mongodb": {
                "enabled": True,
            },
        },
    })
    m = Mongo()
    m.init()
    m.connect()
    p.MongoClient.assert_called_once_with("127.0.0.1", 27017)
    client = p.MongoClient.return_value
    client.__getitem__.assert_called_once_with("cuckoo")
    db = client.__getitem__.return_value
    db.authenticate.assert_not_called()
    q.GridFS.assert_called_once_with(db)
    assert m.db == db
    assert m.grid == q.GridFS.return_value