Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_drop_index():
arctic_lib = create_autospec(ArcticLibraryBinding, instance=True)
collection = create_autospec(Collection, instance=True)
arctic_lib.get_top_level_collection.return_value = collection
bsons = BSONStore(arctic_lib)
bsons.drop_index(sentinel.name)
assert collection.drop_index.call_count == 1
assert collection.drop_index.call_args_list == [call(sentinel.name)]
def test_replace_one():
arctic_lib = create_autospec(ArcticLibraryBinding, instance=True)
collection = create_autospec(Collection, instance=True)
arctic_lib.get_top_level_collection.return_value = collection
bsons = BSONStore(arctic_lib)
bsons.replace_one(sentinel.filter, sentinel.replacement)
assert arctic_lib.check_quota.call_count == 1
assert collection.replace_one.call_count == 1
assert collection.replace_one.call_args_list == [call(sentinel.filter, sentinel.replacement)]
def test_find():
arctic_lib = create_autospec(ArcticLibraryBinding, instance=True)
collection = create_autospec(Collection, instance=True)
collection.find.return_value = (doc for doc in [sentinel.document])
arctic_lib.get_top_level_collection.return_value = collection
bsons = BSONStore(arctic_lib)
assert list(bsons.find(sentinel.filter)) == [sentinel.document]
assert collection.find.call_count == 1
assert collection.find.call_args_list == [call(sentinel.filter)]
def test_index_information():
arctic_lib = create_autospec(ArcticLibraryBinding, instance=True)
collection = create_autospec(Collection, instance=True)
arctic_lib.get_top_level_collection.return_value = collection
bsons = BSONStore(arctic_lib)
bsons.index_information()
assert collection.index_information.call_count == 1
def test_insert_one():
arctic_lib = create_autospec(ArcticLibraryBinding, instance=True)
collection = create_autospec(Collection, instance=True)
arctic_lib.get_top_level_collection.return_value = collection
bsons = BSONStore(arctic_lib)
bsons.insert_one(sentinel.document)
assert arctic_lib.check_quota.call_count == 1
assert collection.insert_one.call_count == 1
assert collection.insert_one.call_args_list == [call(sentinel.document)]
def test_find_one():
arctic_lib = create_autospec(ArcticLibraryBinding, instance=True)
collection = create_autospec(Collection, instance=True)
collection.find_one.return_value = sentinel.document
arctic_lib.get_top_level_collection.return_value = collection
ms = BSONStore(arctic_lib)
assert ms.find_one(sentinel.filter) == sentinel.document
assert collection.find_one.call_count == 1
assert collection.find_one.call_args_list == [call(sentinel.filter)]
def test_find_one_and_replace():
arctic_lib = create_autospec(ArcticLibraryBinding, instance=True)
collection = create_autospec(Collection, instance=True)
arctic_lib.get_top_level_collection.return_value = collection
bsons = BSONStore(arctic_lib)
bsons.find_one_and_replace(sentinel.filter, sentinel.replacement)
assert arctic_lib.check_quota.call_count == 1
assert collection.find_one_and_replace.call_count == 1
assert collection.find_one_and_replace.call_args_list == [call(sentinel.filter, sentinel.replacement)]
def test_update_many():
arctic_lib = create_autospec(ArcticLibraryBinding, instance=True)
collection = create_autospec(Collection, instance=True)
arctic_lib.get_top_level_collection.return_value = collection
bsons = BSONStore(arctic_lib)
bsons.update_many(sentinel.filter, sentinel.replacements)
assert arctic_lib.check_quota.call_count == 1
assert collection.update_many.call_count == 1
assert collection.update_many.call_args_list == [call(sentinel.filter, sentinel.replacements)]
def test_count():
arctic_lib = create_autospec(ArcticLibraryBinding, instance=True)
collection = create_autospec(Collection, instance=True, count=Mock(), count_documents=Mock())
arctic_lib.get_top_level_collection.return_value = collection
bsons = BSONStore(arctic_lib)
bsons.count(sentinel.filter)
assert collection.count.call_count + collection.count_documents.call_count == 1
assert collection.count.call_args_list == [call(filter=sentinel.filter)] or collection.count_documents.call_args_list == [call(filter=sentinel.filter)]
import pandas as pd
import bson
import pymongo
from .._util import indent
from ..decorators import mongo_retry
from ..exceptions import NoDataFoundException
from .bson_store import BSONStore
import six
logger = logging.getLogger(__name__)
METADATA_STORE_TYPE = 'MetadataStore'
class MetadataStore(BSONStore):
"""
Metadata Store. This stores metadata with timestamps to allow temporal queries.
Entries are stored in the following format:
'symbol': symbol name
'metadata': metadata to be persisted
'start_time': when entry becomes effective
'end_time': (Optional) when entry expires. If not set, it is still in effect
For each symbol end_time of a entry should match start_time of the next one except for the current entry.
"""
@classmethod
def initialize_library(cls, arctic_lib, hashed=True, **kwargs):
MetadataStore(arctic_lib)._ensure_index()
BSONStore.initialize_library(arctic_lib, hashed, **kwargs)