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] }})
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)
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