コード例 #1
0
ファイル: test_mongodb.py プロジェクト: tesserae/tesserae-v5
def test_insert(request, test_data, depopulate):
    conf = request.config
    conn = TessMongoConnection(conf.getoption('db_host'),
                               conf.getoption('db_port'),
                               conf.getoption('db_user'),
                               password=conf.getoption('db_passwd',
                                                       default=None),
                               db=conf.getoption('db_name', default=None))

    for key, val in test_data.items():
        entity = entity_map[key]
        ents = [entity(**entry) for entry in val]

        # Insert the result for the first time. Should return the standard
        # pymongo.collection.insert_many result.
        result = conn.insert(ents)

        assert isinstance(result, pymongo.results.InsertManyResult)
        for i in range(len(result.inserted_ids)):
            assert ents[i].id == result.inserted_ids[i]

        # Attempt to insert the same entities a second time. Should return an
        # empty list.
        result = conn.insert(ents)
        assert result == []

        # Clean up
        conn.connection[key].delete_many(
            {'_id': {
                '$in': [e.id for e in ents]
            }})
コード例 #2
0
ファイル: test_mongodb.py プロジェクト: jdbelm/tesserae-v5
    def test_delete(self, request, populate, entity_map):
        conf = request.config
        conn = TessMongoConnection(conf.getoption('db_host'),
                                   conf.getoption('db_port'),
                                   conf.getoption('db_user'),
                                   password=conf.getoption('db_passwd',
                                                           default=None),
                                   db=conf.getoption('db_name', default=None))

        for entity_type in populate:
            if len(populate[entity_type]) == 0:
                continue
            end = \
                len(populate[entity_type]) if len(populate[entity_type]) < 100 \
                else 100
            for query_ent in populate[entity_type][:end]:
                entity = entity_map[entity_type].json_decode(query_ent)
                res = conn.delete(entity)
                found = conn.find(entity_type,
                                  **entity.json_encode(exclude=['_id']))
                assert res.deleted_count == 1
                assert len(found) == 0
                conn.insert(entity)
コード例 #3
0
ファイル: test_mongodb.py プロジェクト: jdbelm/tesserae-v5
 def test_insert(self, request, populate, entity_map):
     conf = request.config
     conn = TessMongoConnection(conf.getoption('db_host'),
                                conf.getoption('db_port'),
                                conf.getoption('db_user'),
                                password=conf.getoption('db_passwd',
                                                        default=None),
                                db=conf.getoption('db_name', default=None))
     for entity_type in populate:
         if len(populate[entity_type]) == 0:
             continue
         end = \
             len(populate[entity_type]) if len(populate[entity_type]) < 100 \
             else 100
         entities = [
             entity_map[entity_type].json_decode(e)
             for e in populate[entity_type][:end]
         ]
         conn.delete(entities)
         for entity in entities:
             res = conn.insert(entity)
             assert len(res.inserted_ids) == 1