def test_arctic_auth(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True), \ patch('arctic.arctic.mongo_retry', autospec=True), \ patch('arctic._cache.Cache._is_not_expired', return_value=True), \ patch('arctic.arctic.get_auth', autospec=True) as ga: ga.return_value = Credential('db', 'admin_user', 'admin_pass') store = Arctic('cluster') # do something to trigger lazy arctic init store.list_libraries() ga.assert_called_once_with('cluster', 'arctic', 'admin') store._adminDB.authenticate.assert_called_once_with( 'admin_user', 'admin_pass') ga.reset_mock() # Get a 'missing' library with pytest.raises(LibraryNotFoundException): with patch('arctic.arctic.ArcticLibraryBinding.get_library_type', return_value=None, autospec=True): ga.return_value = Credential('db', 'user', 'pass') store._conn['arctic_jblackburn'].name = 'arctic_jblackburn' store['jblackburn.library'] # Creating the library will have attempted to auth against it ga.assert_called_once_with('cluster', 'arctic', 'arctic_jblackburn') store._conn['arctic_jblackburn'].authenticate.assert_called_once_with( 'user', 'pass')
def test_arctic_auth_custom_app_name(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True), \ patch('arctic.arctic.mongo_retry', autospec=True), \ patch('arctic.arctic.get_auth', autospec=True) as ga: ga.return_value = Credential('db', 'admin_user', 'admin_pass') store = Arctic('cluster', app_name=sentinel.app_name) # do something to trigger lazy arctic init store.list_libraries() assert ga.call_args_list == [ call('cluster', sentinel.app_name, 'admin') ] ga.reset_mock() # Get a 'missing' library with pytest.raises(LibraryNotFoundException): with patch('arctic.arctic.ArcticLibraryBinding.get_library_type', return_value=None, autospec=True): ga.return_value = Credential('db', 'user', 'pass') store._conn['arctic_jblackburn'].name = 'arctic_jblackburn' store['jblackburn.library'] # Creating the library will have attempted to auth against it assert ga.call_args_list == [ call('cluster', sentinel.app_name, 'arctic_jblackburn') ]
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_arctic_lazy_init(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True) as mc, \ patch('arctic.arctic.mongo_retry', side_effect=lambda x: x, autospec=True), \ patch('arctic.arctic.get_auth', autospec=True) as ga: store = Arctic('cluster') assert not mc.called # do something to trigger lazy arctic init store.list_libraries() assert mc.called
def test_reset(): c = MagicMock() with patch('pymongo.MongoClient', return_value=c, autospec=True) as mc: store = Arctic('hostname') # do something to trigger lazy arctic init store.list_libraries() store.reset() # Doesn't matter how many times we call it: store.reset() c.close.assert_called_once()
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_arctic_connect_hostname(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True) as mc, \ patch('arctic.arctic.mongo_retry', autospec=True) as ar, \ patch('arctic.arctic.get_mongodb_uri', autospec=True) as gmu: store = Arctic('hostname', socketTimeoutMS=sentinel.socket_timeout, connectTimeoutMS=sentinel.connect_timeout, serverSelectionTimeoutMS=sentinel.select_timeout) # do something to trigger lazy arctic init store.list_libraries() ar(mc).assert_called_once_with(host=gmu('hostname'), maxPoolSize=4, socketTimeoutMS=sentinel.socket_timeout, connectTimeoutMS=sentinel.connect_timeout, serverSelectionTimeoutMS=sentinel.select_timeout)
def test_arctic_connect_hostname(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True) as mc, \ patch('arctic.arctic.mongo_retry', autospec=True) as ar, \ patch('arctic.arctic.get_mongodb_uri', autospec=True) as gmu: store = Arctic('hostname', socketTimeoutMS=sentinel.socket_timeout, connectTimeoutMS=sentinel.connect_timeout, serverSelectionTimeoutMS=sentinel.select_timeout) # do something to trigger lazy arctic init store.list_libraries() mc.assert_called_once_with(host=gmu('hostname'), maxPoolSize=4, socketTimeoutMS=sentinel.socket_timeout, connectTimeoutMS=sentinel.connect_timeout, serverSelectionTimeoutMS=sentinel.select_timeout)
def test_arctic_connect_with_environment_name(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True) as mc, \ patch('arctic.arctic.mongo_retry', autospec=True) as ar, \ patch('arctic.arctic.get_auth', autospec=True), \ patch('arctic.arctic.get_mongodb_uri') as gmfe: store = Arctic('live', socketTimeoutMS=sentinel.socket_timeout, connectTimeoutMS=sentinel.connect_timeout, serverSelectionTimeoutMS=sentinel.select_timeout) # do something to trigger lazy arctic init store.list_libraries() assert gmfe.call_args_list == [call('live')] assert mc.call_args_list == [call(host=gmfe.return_value, maxPoolSize=4, socketTimeoutMS=sentinel.socket_timeout, connectTimeoutMS=sentinel.connect_timeout, serverSelectionTimeoutMS=sentinel.select_timeout)]
def test_arctic_connect_with_environment_name(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True) as mc, \ patch('arctic.arctic.mongo_retry', autospec=True) as ar, \ patch('arctic.arctic.get_auth', autospec=True), \ patch('arctic.arctic.get_mongodb_uri') as gmfe: store = Arctic('live', socketTimeoutMS=sentinel.socket_timeout, connectTimeoutMS=sentinel.connect_timeout, serverSelectionTimeoutMS=sentinel.select_timeout) # do something to trigger lazy arctic init store.list_libraries() assert gmfe.call_args_list == [call('live')] assert ar(mc).call_args_list == [call(host=gmfe.return_value, maxPoolSize=4, socketTimeoutMS=sentinel.socket_timeout, connectTimeoutMS=sentinel.connect_timeout, serverSelectionTimeoutMS=sentinel.select_timeout)]
def test_arctic_lazy_init_ssl_true(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True) as mc, \ patch('arctic.arctic.mongo_retry', side_effect=lambda x: x, autospec=True), \ patch('arctic.arctic.get_auth', autospec=True) as ga: store = Arctic('cluster', ssl=True) assert not mc.called # do something to trigger lazy arctic init store.list_libraries() assert mc.called assert len(mc.mock_calls) == 1 assert mc.mock_calls[0] == call(connectTimeoutMS=2000, host='cluster', maxPoolSize=4, serverSelectionTimeoutMS=30000, socketTimeoutMS=600000, ssl=True)
def test_arctic_auth_custom_app_name(): with patch("pymongo.MongoClient", return_value=MagicMock(), autospec=True), patch( "arctic.arctic.mongo_retry", autospec=True ), patch("arctic.arctic.get_auth", autospec=True) as ga: ga.return_value = Credential("db", "admin_user", "admin_pass") store = Arctic("cluster", app_name=sentinel.app_name) # do something to trigger lazy arctic init store.list_libraries() assert ga.call_args_list == [call("cluster", sentinel.app_name, "admin")] ga.reset_mock() # Get a 'missing' library with pytest.raises(LibraryNotFoundException): with patch("arctic.arctic.ArcticLibraryBinding.get_library_type", return_value=None, autospec=True): ga.return_value = Credential("db", "user", "pass") store._conn["arctic_jblackburn"].name = "arctic_jblackburn" store["jblackburn.library"] # Creating the library will have attempted to auth against it assert ga.call_args_list == [call("cluster", sentinel.app_name, "arctic_jblackburn")]
def test_arctic_auth_custom_app_name(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True), \ patch('arctic.arctic.mongo_retry', autospec=True), \ patch('arctic.arctic.get_auth', autospec=True) as ga: ga.return_value = Credential('db', 'admin_user', 'admin_pass') store = Arctic('cluster', app_name=sentinel.app_name) # do something to trigger lazy arctic init store.list_libraries() assert ga.call_args_list == [call('cluster', sentinel.app_name, 'admin')] ga.reset_mock() # Get a 'missing' library with pytest.raises(LibraryNotFoundException): with patch('arctic.arctic.ArcticLibraryBinding.get_library_type', return_value=None, autospec=True): ga.return_value = Credential('db', 'user', 'pass') store._conn['arctic_jblackburn'].name = 'arctic_jblackburn' store['jblackburn.library'] # Creating the library will have attempted to auth against it assert ga.call_args_list == [call('cluster', sentinel.app_name, 'arctic_jblackburn')]
def test_arctic_connect_with_environment_name(): with patch("pymongo.MongoClient", return_value=MagicMock(), autospec=True) as mc, patch( "arctic.arctic.mongo_retry", autospec=True ) as ar, patch("arctic.arctic.get_auth", autospec=True), patch("arctic.arctic.get_mongodb_uri") as gmfe: store = Arctic( "live", socketTimeoutMS=sentinel.socket_timeout, connectTimeoutMS=sentinel.connect_timeout, serverSelectionTimeoutMS=sentinel.select_timeout, ) # do something to trigger lazy arctic init store.list_libraries() assert gmfe.call_args_list == [call("live")] assert ar(mc).call_args_list == [ call( host=gmfe.return_value, maxPoolSize=4, socketTimeoutMS=sentinel.socket_timeout, connectTimeoutMS=sentinel.connect_timeout, serverSelectionTimeoutMS=sentinel.select_timeout, ) ]
def test_arctic_auth(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True), \ patch('arctic.arctic.mongo_retry', autospec=True), \ patch('arctic.arctic.get_auth', autospec=True) as ga: ga.return_value = Credential('db', 'admin_user', 'admin_pass') store = Arctic('cluster') # do something to trigger lazy arctic init store.list_libraries() ga.assert_called_once_with('cluster', 'arctic', 'admin') store._adminDB.authenticate.assert_called_once_with('admin_user', 'admin_pass') ga.reset_mock() # Get a 'missing' library with pytest.raises(LibraryNotFoundException): with patch('arctic.arctic.ArcticLibraryBinding.get_library_type', return_value=None, autospec=True): ga.return_value = Credential('db', 'user', 'pass') store._conn['arctic_jblackburn'].name = 'arctic_jblackburn' store._conn['arctic_jblackburn'].command.return_value = mock_conn_info store['jblackburn.library'] # Creating the library will have attempted to auth against it ga.assert_called_once_with('cluster', 'arctic', 'arctic_jblackburn') store._conn['arctic_jblackburn'].authenticate.assert_called_once_with('user', 'pass')
def test_arctic_auth_admin_reauth(): with patch('pymongo.MongoClient', return_value=MagicMock(), autospec=True), \ patch('arctic.arctic.mongo_retry', autospec=True), \ patch('arctic.arctic.get_auth', autospec=True) as ga: ga.return_value = Credential('db', 'admin_user', 'admin_pass') store = Arctic('cluster') # do something to trigger lazy arctic init store.list_libraries() assert ga.call_args_list == [call('cluster', 'arctic', 'admin')] ga.reset_mock() # Get a 'missing' library with pytest.raises(LibraryNotFoundException): with patch('arctic.arctic.ArcticLibraryBinding.get_library_type', return_value=None, autospec=True), \ patch('arctic.arctic.logger') as logger: ga.return_value = Credential('db', 'user', 'pass') store._conn['arctic_jblackburn'].name = 'arctic_jblackburn' store._conn['arctic_jblackburn'].command.return_value = mock_conn_info_empty store['jblackburn.library'] assert store._conn['arctic_jblackburn'].command.call_args_list == [call({'connectionStatus': 1})] assert ga.call_args_list == [call('cluster', 'arctic', 'arctic_jblackburn'), call('cluster', 'arctic', store._adminDB.name)]
def test_connect_to_Arctic_connection(mongodb, mongo_host): arctic = Arctic(mongodb) assert arctic.list_libraries() == [] assert arctic.mongo_host == mongo_host
def test_connect_to_Arctic_string(mongo_host): arctic = Arctic(mongo_host=mongo_host) assert arctic.list_libraries() == [] assert arctic.mongo_host == mongo_host