Here are the examples of the python api mock.sentinel.symbol taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
13 Examples
3
Example 1
Project: arctic Source File: test_version_store.py
def test_read_metadata_no_asof():
# When we do a read, with naive as_of, that as_of is treated in London Time.
vs = create_autospec(VersionStore, instance=True,
_versions=Mock(), _allow_secondary=False)
VersionStore._read_metadata(vs, sentinel.symbol)
versions = vs._versions.with_options.return_value
assert versions.find_one.call_args_list == [call({'symbol': sentinel.symbol},
sort=[('version', pymongo.DESCENDING)])]
3
Example 2
Project: arctic Source File: test_version_store.py
def test_read_reports_random_errors():
self = create_autospec(VersionStore, _versions=Mock(), _arctic_lib=Mock(),
_allow_secondary=True)
self._collection = create_autospec(Collection)
self._do_read.__name__ = 'name' # feh: mongo_retry decorator cares about this
self._do_read.side_effect = Exception('bad')
with pytest.raises(Exception) as e:
with patch('arctic.store.version_store.log_exception') as le:
VersionStore.read(self, sentinel.symbol, sentinel.as_of, sentinel.from_version)
assert 'bad' in str(e)
assert le.call_count == 1
3
Example 3
Project: arctic Source File: test_version_store_audit.py
def test_ArcticTransaction_simple():
vs = Mock(spec=VersionStore)
ts1 = pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]})
vs.read.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=1, metadata=None, data=ts1)
vs.write.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=2,
metadata=None, data=None)
vs.list_versions.return_value = [{'version': 2}, {'version': 1}]
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log) as cwb:
cwb.write(sentinel.symbol, pd.DataFrame(index=[3, 4], data={'a': [1.0, 2.0]}), metadata=sentinel.meta)
assert not vs._delete_version.called
assert vs.write.call_args_list == [call(sentinel.symbol, ANY, prune_previous_version=True, metadata=sentinel.meta)]
assert vs.list_versions.call_args_list == [call(sentinel.symbol)]
assert vs._write_audit.call_args_list == [call(sentinel.user, sentinel.log, ANY)]
3
Example 4
Project: arctic Source File: test_version_store_audit.py
def test_ArticTransaction_no_audit():
vs = Mock(spec=VersionStore)
ts1 = pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]})
vs.read.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=1, metadata=None, data=ts1)
vs.write.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=2,
metadata=None, data=None)
vs.list_versions.return_value = [{'version': 2}, {'version': 1}]
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log, audit=False) as cwb:
cwb.write(sentinel.symbol, pd.DataFrame(index=[3, 4], data={'a': [1.0, 2.0]}), metadata=sentinel.meta)
assert vs.write.call_count == 1
assert vs._write_audit.call_count == 0
3
Example 5
Project: arctic Source File: test_version_store_audit.py
def test_ArcticTransaction_writes_if_base_data_corrupted():
vs = Mock(spec=VersionStore)
ts1 = pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]})
vs.read.side_effect = OperationFailure('some failure')
vs.write.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=2,
metadata=None, data=None)
vs.read_metadata.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=1,
metadata=None, data=None)
vs.list_versions.return_value = [{'version': 2}, {'version': 1}]
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log) as cwb:
cwb.write(sentinel.symbol, ts1, metadata={1: 2})
vs.write.assert_called_once_with(sentinel.symbol, ANY, prune_previous_version=True, metadata={1: 2})
assert vs.list_versions.call_args_list == [call(sentinel.symbol)]
3
Example 6
Project: arctic Source File: test_version_store_audit.py
def test_ArcticTransaction_writes_no_data_found():
vs = Mock(spec=VersionStore)
ts1 = pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]})
vs.read.side_effect = NoDataFoundException('no data')
vs.write.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=1,
metadata=None, data=None)
vs.list_versions.side_effect = [[],
[{'version': 1}],
]
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log) as cwb:
cwb.write(sentinel.symbol, ts1, metadata={1: 2})
assert vs.write.call_args_list == [call(sentinel.symbol, ANY, prune_previous_version=True, metadata={1: 2})]
assert vs.list_versions.call_args_list == [call(sentinel.symbol, latest_only=True),
call(sentinel.symbol)]
3
Example 7
Project: arctic Source File: test_version_store_audit.py
def test_ArcticTransaction_writes_no_data_found_deleted():
vs = Mock(spec=VersionStore)
ts1 = pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]})
vs.read.side_effect = NoDataFoundException('no data')
vs.write.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=3,
metadata=None, data=None)
vs.list_versions.side_effect = [[{'version': 2}, {'version': 1}],
[{'version': 3}, {'version': 2}],
]
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log) as cwb:
cwb.write(sentinel.symbol, ts1, metadata={1: 2})
assert vs.write.call_args_list == [call(sentinel.symbol, ANY, prune_previous_version=True, metadata={1: 2})]
assert vs.list_versions.call_args_list == [call(sentinel.symbol, latest_only=True),
call(sentinel.symbol)]
3
Example 8
Project: arctic Source File: test_version_store_audit.py
def test_ArcticTransaction_does_nothing_when_data_not_modified():
vs = Mock(spec=VersionStore)
ts1 = pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]})
vs.read.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=1, metadata=None, data=ts1)
vs.write.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=2, metadata=None, data=None)
vs.list_versions.side_effect = [{'version': 2}, {'version': 1}]
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log) as cwb:
cwb.write(sentinel.symbol, pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]}))
assert not vs._delete_version.called
assert not vs.write.called
3
Example 9
Project: arctic Source File: test_version_store_audit.py
def test_ArcticTransaction_does_nothing_when_data_is_None():
vs = Mock(spec=VersionStore)
ts1 = pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]})
vs.read.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=1, metadata=None, data=ts1)
vs.write.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=2,
metadata=None, data=None)
vs.list_versions.return_value = [{'version': 1}, {'version': 2}]
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log) as cwb:
pass
assert not vs._delete_version.called
assert not vs.write.called
3
Example 10
Project: arctic Source File: test_version_store_audit.py
def test_ArcticTransaction_guards_against_inconsistent_ts():
vs = Mock(spec=VersionStore)
ts1 = pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]})
vs.read.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=1, metadata=None, data=ts1)
vs.write.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=2, metadata=None, data=None)
vs.list_versions.side_effect = [{'version': 2}, {'version': 1}]
ts1 = pd.DataFrame(index=[1, 2], data={'a': [2.0, 3.0]})
with pytest.raises(ConcurrentModificationException):
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log, modify_timeseries=ts1) as cwb:
pass
3
Example 11
def test_read():
self = create_autospec(TopLevelTickStore)
tsl = TickStoreLibrary(create_autospec(TickStore), create_autospec(DateRange))
self._get_libraries.return_value = [tsl, tsl]
dr = create_autospec(DateRange)
with patch('pandas.concat') as concat:
res = TopLevelTickStore.read(self, sentinel.symbol, dr,
columns=sentinel.include_columns,
include_images=sentinel.include_images)
assert concat.call_args_list == [call([tsl.library.read.return_value,
tsl.library.read.return_value])]
assert res == concat.return_value
assert tsl.library.read.call_args_list == [call(sentinel.symbol, tsl.date_range.intersection.return_value,
sentinel.include_columns, include_images=sentinel.include_images),
call(sentinel.symbol, tsl.date_range.intersection.return_value,
sentinel.include_columns, include_images=sentinel.include_images)]
0
Example 12
Project: arctic Source File: test_version_store_audit.py
def test_ArcticTransaction_writes_if_metadata_changed():
vs = Mock(spec=VersionStore)
ts1 = pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]})
vs.read.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=1, metadata=None, data=ts1)
vs.write.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=2, metadata=None, data=None)
vs.list_versions.return_value = [{'version': 2},
{'version': 1}]
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log) as cwb:
assert cwb._do_write is False
cwb.write(sentinel.symbol, ts1, metadata={1: 2})
assert cwb._do_write is True
assert not vs._delete_version.called
vs.write.assert_called_once_with(sentinel.symbol, ANY, prune_previous_version=True, metadata={1: 2})
vs.list_versions.assert_called_once_with(sentinel.symbol)
# Won't write on exit with same data and metadata
vs.read.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=2, metadata={1: 2}, data=ts1)
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log) as cwb:
assert cwb._do_write is False
cwb.write(sentinel.symbol, ts1, metadata={1: 2})
assert cwb._do_write is False
0
Example 13
Project: arctic Source File: test_version_store_audit.py
Function: test_arctictransaction_detects_concurrent_writes
Function: test_arctictransaction_detects_concurrent_writes
def test_ArcticTransaction_detects_concurrent_writes():
vs = Mock(spec=VersionStore)
ts1 = pd.DataFrame(index=[1, 2], data={'a':[1.0, 2.0]})
vs.read.return_value = VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=1, metadata=None, data=ts1)
vs.write.side_effect = [VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=2, metadata=None, data=None),
VersionedItem(symbol=sentinel.symbol, library=sentinel.library, version=3, metadata=None, data=None)]
#note that we return some extra version 5, it is possible that we have a write coming in after our own write that gets picked up
vs.list_versions.side_effect = [[{'version': 5}, {'version': 2}, {'version': 1}, ],
[{'version': 5}, {'version': 3}, {'version': 2}, {'version': 1}, ]]
from threading import Event, Thread
e1 = Event()
e2 = Event()
def losing_writer():
#will attempt to write version 2, should find that version 2 is there and it ends up writing version 3
with pytest.raises(ArcticTransaction):
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log) as cwb:
cwb.write(sentinel.symbol, pd.DataFrame([1.0, 2.0], [3, 4]))
e1.wait()
def winning_writer():
#will attempt to write version 2 as well
with ArcticTransaction(vs, sentinel.symbol, sentinel.user, sentinel.log) as cwb:
cwb.write(sentinel.symbol, pd.DataFrame([1.0, 2.0], [5, 6]))
e2.wait()
t1 = Thread(target=losing_writer)
t2 = Thread(target=winning_writer)
t1.start()
t2.start()
# both read the same timeseries and are locked doing some 'work'
e2.set()
# t2 should now be able to finish
t2.join()
e1.set()
t1.join()
# we're expecting the losing_writer to undo its write once it realises that it wrote v3 instead of v2
vs._delete_version.assert_called_once_with(sentinel.symbol, 3)