def test_request_docs_mutable_iterator(): """To test the weak reference work in docs""" r = Request() r.request_type = 'index' for d in random_docs(10): r.docs.append(d) for idx, d in enumerate(r.docs): assert isinstance(d, Document) d.text = f'look I changed it! {idx}' # iterate it again should see the change doc_pointers = [] for idx, d in enumerate(r.docs): assert isinstance(d, Document) assert d.text == f'look I changed it! {idx}' doc_pointers.append(d) # pb-lize it should see the change rpb = r.proto for idx, d in enumerate(rpb.index.docs): assert isinstance(d, DocumentProto) assert d.text == f'look I changed it! {idx}' # change again by following the pointers for d in doc_pointers: d.text = 'now i change it back' # iterate it again should see the change for idx, d in enumerate(rpb.index.docs): assert isinstance(d, DocumentProto) assert d.text == 'now i change it back'
def test_add_doc_to_type(typ, pb_typ): r = Request() r.request_type = typ for _ in range(10): r.docs.append(Document()) r.groundtruths.append(Document()) assert len(r.docs) == 10 assert len(r.groundtruths) == 10
def chunks(document_factory): req = Request() req.request_type = 'index' req.docs.extend([ document_factory.create(1, 'test 1'), document_factory.create(2, 'test 1'), document_factory.create(3, 'test 3'), ]) return req.proto.index.docs
def test_empty_request_type(typ, pb_typ): r = Request() assert r.request_type is None with pytest.raises(ValueError): print(r.body) r.request_type = typ assert r._request_type == typ assert isinstance(r.body, pb_typ)
def matches(document_factory): req = Request() req.request_type = 'index' req.docs.extend([ document_factory.create(1, 'test 1'), document_factory.create(2, 'test 1'), document_factory.create(3, 'test 3') ]) return req.as_pb_object.index.docs
def eval_request(): req = Request() req.request_type = 'search' # doc: 1 # doc: 2 # doc: 3 # doc: 4 # doc: 5 - will be missing from KV indexer for idx in range(5): dp = Document() dp.id = f'0{str(idx + 1)}' * 8 req.docs.append(dp) return req
def test_request_docs_chunks_mutable_iterator(): """Test if weak reference work in nested docs""" r = Request() r.request_type = 'index' for d in random_docs(10): r.docs.append(d) for d in r.docs: assert isinstance(d, Document) for idx, c in enumerate(d.chunks): assert isinstance(d, Document) c.text = f'look I changed it! {idx}' # iterate it again should see the change doc_pointers = [] for d in r.docs: assert isinstance(d, Document) for idx, c in enumerate(d.chunks): assert c.text == f'look I changed it! {idx}' doc_pointers.append(c) # pb-lize it should see the change rpb = r.as_pb_object for d in rpb.index.docs: assert isinstance(d, DocumentProto) for idx, c in enumerate(d.chunks): assert isinstance(c, DocumentProto) assert c.text == f'look I changed it! {idx}' # change again by following the pointers for d in doc_pointers: d.text = 'now i change it back' # iterate it again should see the change for d in rpb.index.docs: assert isinstance(d, DocumentProto) for c in d.chunks: assert c.text == 'now i change it back'