|
27 | 27 | ArcticDbNotYetImplemented,
|
28 | 28 | InternalException,
|
29 | 29 | UserInputException,
|
| 30 | + ArcticException, |
30 | 31 | )
|
31 | 32 | from arcticdb import QueryBuilder
|
32 | 33 | from arcticdb.flattener import Flattener
|
33 | 34 | from arcticdb.version_store import NativeVersionStore
|
34 | 35 | from arcticdb.version_store._store import VersionedItem
|
35 | 36 | from arcticdb_ext.exceptions import _ArcticLegacyCompatibilityException, StorageException
|
36 | 37 | from arcticdb_ext.storage import KeyType, NoDataFoundException
|
37 |
| -from arcticdb_ext.version_store import NoSuchVersionException, StreamDescriptorMismatch, ManualClockVersionStore |
| 38 | +from arcticdb_ext.version_store import ( |
| 39 | + NoSuchVersionException, |
| 40 | + StreamDescriptorMismatch, |
| 41 | + ManualClockVersionStore, |
| 42 | + DataError, |
| 43 | +) |
38 | 44 | from arcticdb.util.test import (
|
39 | 45 | sample_dataframe,
|
40 | 46 | sample_dataframe_only_strings,
|
@@ -2211,6 +2217,26 @@ def test_batch_read_meta_multiple_versions(object_version_store):
|
2211 | 2217 | assert results_dict["sym3"][0].metadata == {"meta3": 1}
|
2212 | 2218 | assert results_dict["sym2"][3].metadata == {"meta2": 4}
|
2213 | 2219 |
|
| 2220 | + # We can supply only an array of symbols, including repeating symbols |
| 2221 | + results_dict = lib.batch_read_metadata_multi(["sym1", "sym2", "sym1", "sym3", "sym2", "sym1", "sym1"]) |
| 2222 | + assert results_dict["sym1"][2].metadata == {"meta1": 3} |
| 2223 | + assert len(results_dict["sym1"]) == 1 |
| 2224 | + assert results_dict["sym2"][3].metadata == {"meta2": 4} |
| 2225 | + assert results_dict["sym3"][0].metadata == {"meta3": 1} |
| 2226 | + |
| 2227 | + # The lists are of different sizr |
| 2228 | + with pytest.raises(ArcticException): |
| 2229 | + results_dict = lib.batch_read_metadata_multi(["sym1", "sym2"], [0, 0, -2]) |
| 2230 | + |
| 2231 | + # With negative number we can go back from current versions |
| 2232 | + assert lib.batch_read_metadata_multi(["sym1", "sym1"], [-1, -2]) == lib.batch_read_metadata_multi( |
| 2233 | + ["sym1", "sym1"], [2, 1] |
| 2234 | + ) |
| 2235 | + |
| 2236 | + # Check DataError is thrown when requesting non-existing version |
| 2237 | + with pytest.raises(TypeError): # Not a good error though - issue 10070002655 |
| 2238 | + results_dict = lib.batch_read_metadata_multi(["sym1"], [10]) |
| 2239 | + |
2214 | 2240 |
|
2215 | 2241 | @pytest.mark.storage
|
2216 | 2242 | def test_list_symbols(basic_store):
|
|
0 commit comments