示例#1
0
def test_write():
    test_obj = PersistentLRUCache(directory=directory)
    test_obj.write("some_key", "42")
    test_obj.write("42", "some_key")
    assert test_obj.get_value("some_key") == "42"
    assert test_obj.get_value("42") == "some_key"
    assert test_obj.is_dirty("some_key")
示例#2
0
def test_persistence():
    test_obj = PersistentLRUCache(directory=directory, maxsize_in_MB=0)
    test_obj.write("keyX", "42")
    assert test_obj.get_value("keyX") == "42"
    test_obj.entries.close()
    test_obj = PersistentLRUCache(directory=directory)
    assert test_obj.get_value("keyX") == "42"
示例#3
0
def test_reorder():
    test_obj = PersistentLRUCache(directory=directory)
    test_obj.write("/xxx", "")
    test_obj.write("/yyy", "")
    test_obj.get_value("/xxx")
    test_obj.delete("/xxx")
    test_obj.delete("/yyy")
示例#4
0
def test_refresh():
    test_obj = PersistentLRUCache(directory=directory)
    test_obj.refresh("some_key", "43", time.time())
    test_obj.refresh("some_key","42", time.time())
    assert test_obj.get_value("some_key") == "42"
    test_obj.refresh("some_key","43", time.time()-1000)
    assert test_obj.get_value("some_key") == "42", "Refresh should not have worked since the modified time of the 'disk' entry is older than the cache entry."
    assert not test_obj.is_dirty("some_key")
示例#5
0
def test_resize_zerosize():
    test_obj = PersistentLRUCache(directory=directory, expiration_time=0.00001, maxsize_in_MB=0)
    test_obj.set_resize_intervall(0)
    test_obj.refresh("some_key", "43", time.time())
    time.sleep(0.001)
    assert "some_key" in test_obj.get_keys()
    test_obj.refresh("some_other_key", "42", time.time())
    assert "some_other_key" in test_obj.get_keys()
    assert not "some_key" in test_obj.get_keys() #deleted due to internal resize
    assert test_obj.get_value("some_other_key") == "42"
示例#6
0
def test_resize():
    test_obj = PersistentLRUCache(directory=directory, expiration_time=0.00001,maxsize_in_MB=30)
    test_obj.set_resize_intervall(0)
    for i in range(10,62):
        test_obj.refresh(str(i), "a"*2000000, time.time())
        time.sleep(0.001)
        assert test_obj.get_size_of_cached_data() < 30000003
        for j in range(10,i-14+1):
            assert not str(j) in test_obj.get_keys()
        for j in range(10,i+1)[-14:]:
            assert test_obj.get_value(str(j)) == "a"*2000000
示例#7
0
def test_get_value():
    test_obj = PersistentLRUCache(directory=directory)
    test_obj.refresh("some_key", "43", time.time())
    assert test_obj.get_value("some_key") == "43"
    test_obj.write("some_key", "42")
    assert test_obj.get_value("some_key") == "42"