Ejemplo n.º 1
0
def test_memmap_save_reload(tmpdir):
    docs = list(random_docs(100))
    dam = DocumentArrayMemmap(tmpdir, buffer_pool_size=100)
    dam.extend(docs)

    dam1 = DocumentArrayMemmap(tmpdir)

    for doc in docs:
        doc.content = 'new'

    for doc in dam:
        # from memory
        assert doc.content == 'new'
        # from disk
        assert dam._get_doc_by_key(doc.id).content == 'hello world'

    # dam1 from disk (empty memory buffer + dam not persisted)
    for doc in dam1:
        assert doc.content == 'hello world'

    dam.flush()
    dam1.reload()

    # dam from disk
    for doc in dam:
        assert dam._get_doc_by_key(doc.id).content == 'new'

    # dam1 up-to-date
    for doc in dam1:
        assert doc.content == 'new'
Ejemplo n.º 2
0
def test_persist(tmpdir):
    dam = DocumentArrayMemmap(tmpdir)
    docs = list(random_docs(100))
    for doc in docs:
        doc.scores['score'] = 50
        doc.evaluations['eval'] = 100

    dam.extend(docs)

    dam2 = DocumentArrayMemmap(tmpdir)
    assert len(dam2) == 100

    assert dam == dam2

    for d1, d2 in zip(dam, dam2):
        assert d1.proto == d2.proto

    assert '1' in dam

    del dam['1']
    assert len(dam2) == 100
    dam2.reload()
    assert len(dam2) == 99
    for doc2 in dam2:
        assert doc2.scores['score'].value == 50
        assert doc2.evaluations['eval'].value == 100

    dam.clear()
    assert len(dam2) == 99
    dam2.reload()
    assert len(dam2) == 0