示例#1
0
def test_get_db(mocker):

    db_name = "test_db"
    coll_name = "test_coll"
    mongo_client = mongomock.MongoClient()
    conn = MongoConnection(db_name, coll_name)
    mocker.patch.object(mongo_client, 'get_database', return_value=True)
    mocker.patch.object(conn, 'raise_exception')
    conn.client = mongo_client
    conn.get_db(db_name)
    conn.client.get_database.assert_called_with(db_name)
    assert conn.client.get_database.call_count == 2
    conn.raise_exception.assert_not_called()
示例#2
0
def test_find_document_by_id(mocker):
    db_name = "test_db"
    coll_name = "test_coll"
    query = {'query', 'query_value'}

    mongo_client = mongomock.MongoClient()
    conn = MongoConnection(db_name, coll_name)
    conn.collection = mongo_client.collection

    mocker.patch.object(conn.collection, 'find_one', return_value=False)

    conn.find_document_by_id(query)

    conn.collection.find_one.assert_called_once_with(query)
示例#3
0
def test_create_document(mocker):

    db_name = "test_db"
    coll_name = "test_coll"
    document = {'document', 'document_value'}

    mongo_client = mongomock.MongoClient()
    conn = MongoConnection(db_name, coll_name)
    conn.collection = mongo_client.collection

    mocker.patch.object(conn.collection, 'insert_one', return_value=False)

    conn.create_document(document)

    conn.collection.insert_one.assert_called_once_with(document)
示例#4
0
def test_get_db_false(mocker):

    db_name = "test_db"
    coll_name = "test_coll"
    mongo_client = mongomock.MongoClient()
    conn = MongoConnection(db_name, coll_name)
    conn.client = mongo_client
    message = 'Database test_db does not exist. Please check your configuration file parameters and try again.'

    mocker.patch.object(mongo_client, 'get_database', return_value=False)
    mocker.patch.object(conn, 'raise_exception')

    conn.get_db(db_name)

    conn.client.get_database.assert_called_once_with(db_name)
    conn.raise_exception.assert_called_once_with(message)
示例#5
0
def test_update_document(mocker):

    db_name = "test_db"
    coll_name = "test_coll"
    query = {'query': 'query_value'}
    document = {'document', 'document_value'}

    mongo_client = mongomock.MongoClient()
    conn = MongoConnection(db_name, coll_name)
    conn.collection = mongo_client.collection

    mocker.patch.object(conn.collection, 'update', return_value=False)

    conn.update_document(query, document)

    conn.collection.update.assert_called_once_with(query, document)
示例#6
0
def test_get_collection_exists(mocker):

    db_name = "test_db"
    coll_name = "test_coll"
    mongo_client = mongomock.MongoClient()
    conn = MongoConnection(db_name, coll_name)
    conn.db = mongo_client.db

    mocker.patch.object(mongo_client.db, 'get_collection', return_value=True)
    mocker.patch.object(conn.db, 'create_collection')
    mocker.patch.object(conn, 'raise_exception')

    conn.get_collection(coll_name)

    conn.db.get_collection.assert_called_with(coll_name)
    assert conn.db.get_collection.call_count == 2
    conn.db.create_collection.assert_not_called()
    conn.raise_exception.assert_not_called()
示例#7
0
class DLManager():
    def __init__(self, database, collection):
        self.connector = MongoConnection(database=database,
                                         collection=collection)

    def raise_exception(self, msg):
        """

        :param msg:
        :return:
        """
        raise Exception(msg)

    def update(self, query, document):
        """
        :param query:
        :param document:
        :return:
        """

        self.connector.update_document(query, document)

    def create(self, document):
        """
               :param document:
               :param options:
               :return:
               """
        logger.info("creating document", extra={'document': document})

        self.connector.create_document(document)

    def get_document(self, field, value):
        """

        :param model_name:
        :return:
        """
        query = {field: value}
        model = self.connector.find_document_by_id(query)
        return model

    def get_all_documents(self):
        """

        :return:
        """

        documents = [doc for doc in self.connector.get_docs_collection()]
        return documents
示例#8
0
def test_get_collection_creating(mocker):

    db_name = "test_db"
    coll_name = "test_coll"
    mongo_client = mongomock.MongoClient()
    conn = MongoConnection(db_name, coll_name)
    conn.db = mongo_client.db
    conn.mongo_db_model_info_collection = coll_name

    mocker.patch.object(mongo_client.db, 'get_collection', return_value=False)
    mocker.patch.object(conn.db, 'create_collection')
    mocker.patch.object(conn, 'raise_exception')

    conn.get_collection(coll_name)

    conn.db.get_collection.assert_called_with(coll_name)
    assert conn.db.get_collection.call_count == 2
    conn.db.create_collection.assert_called_once_with(coll_name)
    conn.raise_exception.assert_not_called()
示例#9
0
def test_get_collection_except(mocker):

    db_name = "test_db"
    coll_name = "test_coll"
    message = 'Collection does not exist in test_db database.' \
              'Please check your configuration file parameters and try again.'
    mongo_client = mongomock.MongoClient()
    conn = MongoConnection(db_name, coll_name)
    conn.db = mongo_client.db
    conn.mongo_db_model_info_collection = "different_collection"

    mocker.patch.object(mongo_client.db, 'get_collection', return_value=False)
    mocker.patch.object(conn.db, 'create_collection')
    mocker.patch.object(conn, 'raise_exception')

    conn.get_collection(coll_name)

    conn.db.get_collection.assert_called_once_with(coll_name)
    conn.db.create_collection.assert_not_called()
    conn.raise_exception.assert_called_once_with(message)
示例#10
0
 def __init__(self, database, collection):
     self.connector = MongoConnection(database=database,
                                      collection=collection)