def test_mongodbindexer(): num_docs = 5 docs = list(random_docs(num_docs=num_docs, chunks_per_doc=3)) keys: Iterator[int] = iter([doc.id for doc in docs]) values = [doc.SerializeToString() for doc in docs] query_index = random.randint(0, num_docs - 1) # adding type annotations to remove further warnings query_key: int = docs[query_index].id query_text = docs[query_index].text # add with MongoDBIndexer() as mongo_indexer: mongo_indexer.add(keys=keys, values=values) with MongoDBIndexer() as mongo_query: result = mongo_query.query(key=query_key) assert result['_id'] == query_key d = Document() d.ParseFromString(result['values']) assert d.text == query_text # update new_docs = list(random_docs(num_docs=num_docs, chunks_per_doc=3)) # what we insert new_values = [doc.SerializeToString() for doc in new_docs] # what we assert new_texts = [doc.text for doc in new_docs] with MongoDBIndexer() as mongo_indexer: mongo_indexer.update(keys=keys, values=new_values) with MongoDBIndexer() as mongo_query: for key, new_value in zip(keys, new_texts): result = mongo_query.query(key) assert result['_id'] == key new_doc = Document() new_doc.ParseFromString(result['values']) assert new_value == new_doc.text # delete with MongoDBIndexer() as mongo_query: mongo_query.delete(keys) with MongoDBIndexer() as mongo_query: for key in keys: result = mongo_query.query(key) assert result is None
def test_mongodbindexer(): num_docs = 5 docs = list(_random_docs(num_docs=num_docs, chunks_per_doc=3)) keys: Iterable[str] = [doc.id for doc in docs] values = [doc.SerializeToString() for doc in docs] query_index = random.randint(0, num_docs - 1) # adding type annotations to remove further warnings query_key: str = docs[query_index].id query_text = docs[query_index].text # add with MongoDBIndexer() as mongo_indexer: mongo_indexer.add(keys=keys, values=values) with MongoDBIndexer() as mongo_query: results = mongo_query.query(keys=[query_key]) result = results[0] assert result['_id'] == query_key d = Document() d.ParseFromString(result['values']) assert d.text == query_text # documents to be updated new_docs = list(_random_docs(num_docs=num_docs, chunks_per_doc=3)) # documents for insertion new_values = [doc.SerializeToString() for doc in new_docs] # documents for assertion new_texts = [doc.text for doc in new_docs] with MongoDBIndexer() as mongo_indexer: mongo_indexer.update(keys=keys, values=new_values) with MongoDBIndexer() as mongo_query: results = mongo_query.query(keys) for key, new_value, result in zip(keys, new_texts, results): assert result['_id'] == key new_doc = Document() new_doc.ParseFromString(result['values']) assert new_value == new_doc.text # delete with MongoDBIndexer() as mongo_query: mongo_query.delete(keys) with MongoDBIndexer() as mongo_query: assert mongo_query.query(keys) == [None] * len(keys)