88 lines
2.5 KiB
Python
88 lines
2.5 KiB
Python
# coding: utf-8
|
|
import os
|
|
import sys
|
|
|
|
import pytest # noqa
|
|
|
|
from ray.autoscaler.v2.instance_manager.storage import (
|
|
InMemoryStorage,
|
|
StoreStatus,
|
|
VersionedValue,
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize("storage", [InMemoryStorage()])
|
|
def test_storage(storage):
|
|
assert storage.get_version() == 0
|
|
assert storage.get_all(table="test_table") == ({}, 0)
|
|
assert storage.get(table="test_table", keys=[]) == ({}, 0)
|
|
assert storage.get(table="test_table", keys=["key1"]) == ({}, 0)
|
|
|
|
assert storage.batch_update(
|
|
table="test_table", mutation={"key1": "value1"}
|
|
) == StoreStatus(
|
|
True,
|
|
1,
|
|
)
|
|
|
|
assert storage.get_version() == 1
|
|
|
|
assert storage.get_all(table="test_table") == (
|
|
{"key1": VersionedValue("value1", 1)},
|
|
1,
|
|
)
|
|
assert storage.get(table="test_table", keys=[]) == (
|
|
{"key1": VersionedValue("value1", 1)},
|
|
1,
|
|
)
|
|
|
|
assert storage.batch_update(
|
|
table="test_table", mutation={"key1": "value2"}, expected_version=0
|
|
) == StoreStatus(False, 1)
|
|
|
|
assert storage.batch_update(
|
|
table="test_table", mutation={"key1": "value2"}, expected_version=1
|
|
) == StoreStatus(True, 2)
|
|
|
|
assert storage.get_all(table="test_table") == (
|
|
{"key1": VersionedValue("value2", 2)},
|
|
2,
|
|
)
|
|
|
|
assert storage.batch_update(
|
|
table="test_table",
|
|
mutation={"key2": "value3", "key3": "value4"},
|
|
deletion=["key1"],
|
|
expected_version=2,
|
|
) == StoreStatus(True, 3)
|
|
|
|
assert storage.get_all(table="test_table") == (
|
|
{"key2": VersionedValue("value3", 3), "key3": VersionedValue("value4", 3)},
|
|
3,
|
|
)
|
|
|
|
assert storage.get(table="test_table", keys=["key2", "key1"]) == (
|
|
{"key2": VersionedValue("value3", 3)},
|
|
3,
|
|
)
|
|
|
|
assert storage.update(
|
|
table="test_table", key="key2", value="value5"
|
|
) == StoreStatus(True, 4)
|
|
assert storage.update(
|
|
table="test_table", key="key2", value="value5", insert_only=True
|
|
) == StoreStatus(False, 4)
|
|
assert storage.update(
|
|
table="test_table", key="key2", value="value5", expected_entry_version=3
|
|
) == StoreStatus(False, 4)
|
|
assert storage.update(
|
|
table="test_table", key="key2", value="value6", expected_entry_version=4
|
|
) == StoreStatus(True, 5)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
if os.environ.get("PARALLEL_CI"):
|
|
sys.exit(pytest.main(["-n", "auto", "--boxed", "-vs", __file__]))
|
|
else:
|
|
sys.exit(pytest.main(["-sv", __file__]))
|