def test_initialize_library_with_list_coll_names(): self = create_autospec(Arctic) self._conn = create_autospec(MongoClient) self._cache = create_autospec(Cache) lib = create_autospec(ArcticLibraryBinding) lib.database_name = sentinel.db_name lib.get_quota.return_value = None self._conn.__getitem__.return_value.list_collection_names.return_value = [ x for x in range(5001) ] lib_type = Mock() with patch.dict('arctic.arctic.LIBRARY_TYPES', {sentinel.lib_type: lib_type}), \ patch('arctic.arctic.ArcticLibraryBinding', return_value=lib, autospec=True) as ML: Arctic.initialize_library(self, sentinel.lib_name, sentinel.lib_type, thing=sentinel.thing, check_library_count=False) assert ML.call_args_list == [call(self, sentinel.lib_name)] assert ML.return_value.set_library_type.call_args_list == [ call(sentinel.lib_type) ] assert ML.return_value.set_quota.call_args_list == [ call(10 * 1024 * 1024 * 1024) ] assert lib_type.initialize_library.call_args_list == [ call(ML.return_value, thing=sentinel.thing) ]
def test_reset_Arctic(mongo_host, library_name): arctic = Arctic(mongo_host=mongo_host) arctic.list_libraries() arctic.initialize_library(library_name, VERSION_STORE) arctic[library_name] c = arctic._conn arctic.reset() assert len(c.nodes) == 0
def test_reset_Arctic(mongo_host, library_name): arctic = Arctic(mongo_host=mongo_host) arctic.list_libraries() arctic.initialize_library(library_name, VERSION_STORE) c = arctic._conn assert arctic[library_name]._arctic_lib._curr_conn is c arctic.reset() assert c is not arctic._conn assert len(c.nodes) == 0 assert arctic[library_name]._arctic_lib._curr_conn is arctic._conn
def test_initialize_library(): self = create_autospec(Arctic) self._conn = create_autospec(MongoClient) lib = create_autospec(ArcticLibraryBinding) lib.database_name = sentinel.db_name lib.get_quota.return_value = None lib_type = Mock() with patch.dict('arctic.arctic.LIBRARY_TYPES', {sentinel.lib_type: lib_type}), \ patch('arctic.arctic.ArcticLibraryBinding', return_value=lib, autospec=True) as ML: Arctic.initialize_library(self, sentinel.lib_name, sentinel.lib_type, thing=sentinel.thing) assert ML.call_args_list == [call(self, sentinel.lib_name)] assert ML.return_value.set_library_type.call_args_list == [call(sentinel.lib_type)] assert ML.return_value.set_quota.call_args_list == [call(10 * 1024 * 1024 * 1024)] assert lib_type.initialize_library.call_args_list == [call(ML.return_value, thing=sentinel.thing)]
def test_initialize_library(): self = create_autospec(Arctic) self._conn = create_autospec(MongoClient) lib = create_autospec(ArcticLibraryBinding) lib.database_name = sentinel.db_name lib.get_quota.return_value = None self._conn.__getitem__.return_value.collection_names.return_value = [x for x in six.moves.xrange(5001)] lib_type = Mock() with patch.dict('arctic.arctic.LIBRARY_TYPES', {sentinel.lib_type: lib_type}), \ patch('arctic.arctic.ArcticLibraryBinding', return_value=lib, autospec=True) as ML: Arctic.initialize_library(self, sentinel.lib_name, sentinel.lib_type, thing=sentinel.thing, check_library_count=False) assert ML.call_args_list == [call(self, sentinel.lib_name)] assert ML.return_value.set_library_type.call_args_list == [call(sentinel.lib_type)] assert ML.return_value.set_quota.call_args_list == [call(10 * 1024 * 1024 * 1024)] assert lib_type.initialize_library.call_args_list == [call(ML.return_value, thing=sentinel.thing)]
def test_initialize_library_too_many_ns(): self = create_autospec(Arctic) self._conn = create_autospec(MongoClient) lib = create_autospec(ArcticLibraryBinding) lib.database_name = sentinel.db_name self._conn.__getitem__.return_value.collection_names.return_value = [x for x in six.moves.xrange(5001)] lib_type = Mock() with pytest.raises(ArcticException) as e: with patch.dict('arctic.arctic.LIBRARY_TYPES', {sentinel.lib_type: lib_type}), \ patch('arctic.arctic.ArcticLibraryBinding', return_value=lib, autospec=True) as ML: Arctic.initialize_library(self, sentinel.lib_name, sentinel.lib_type, thing=sentinel.thing) assert self._conn.__getitem__.call_args_list == [call(sentinel.db_name), call(sentinel.db_name)] assert lib_type.initialize_library.call_count == 0 assert 'Too many namespaces 5001, not creating: sentinel.lib_name' in str(e)
def test_initialize_library_too_many_ns(): self = create_autospec(Arctic) self._conn = create_autospec(MongoClient) lib = create_autospec(ArcticLibraryBinding) lib.database_name = sentinel.db_name self._conn.__getitem__.return_value.collection_names.return_value = [x for x in xrange(3001)] lib_type = Mock() with pytest.raises(ArcticException) as e: with patch.dict('arctic.arctic.LIBRARY_TYPES', {sentinel.lib_type: lib_type}), \ patch('arctic.arctic.ArcticLibraryBinding', return_value=lib, autospec=True) as ML: Arctic.initialize_library(self, sentinel.lib_name, sentinel.lib_type, thing=sentinel.thing) assert self._conn.__getitem__.call_args_list == [call(sentinel.db_name), call(sentinel.db_name)] assert lib_type.initialize_library.call_count == 0 assert 'Too many namespaces 3001, not creating: sentinel.lib_name' in str(e)
def test_re_authenticate_on_arctic_reset(mongo_host, library_name): from collections import namedtuple Cred = namedtuple('Cred', 'user, password') with patch('arctic.arctic.authenticate') as auth_mock, \ patch('arctic.arctic.get_auth') as get_auth_mock: auth_mock.return_value = True get_auth_mock.return_value = Cred(user='******', password='******') arctic = Arctic(mongo_host=mongo_host) arctic.initialize_library(library_name, VERSION_STORE) vstore = arctic[library_name] vstore.list_symbols() auth_mock.reset_mock() arctic.reset() assert auth_mock.call_count > 0 auth_mock.reset_mock() vstore.list_symbols() assert auth_mock.call_count == 0