def test_store_and_retrieve_simple_config(): adapter = SQLiteAdapter(MEMORY_DBNAME) store_val = {"val1": True, "val2": None, "val3": 1.4} adapter.store_config("myconf", store_val) read_val = adapter.read_config("myconf") assert read_val == store_val assert read_val is not store_val
def test_on_refresh_and_retrieve(mock_response): """just confirm that the aliasing of these functions does not change anything""" adapter = SQLiteAdapter(MEMORY_DBNAME) adapter.on_refresh(mock_response) data = adapter.read_as_dict() assert data == mock_response.by_resource_server
def test_constructor(success, use_file, kwargs, db_filename): if success: if use_file: assert SQLiteAdapter(db_filename, **kwargs) else: assert SQLiteAdapter(**kwargs) else: with pytest.raises(TypeError): if use_file: SQLiteAdapter(db_filename, **kwargs) else: SQLiteAdapter(**kwargs)
def test_remove_config(): adapter = SQLiteAdapter(MEMORY_DBNAME) store_val = {"val1": True, "val2": None, "val3": 1.4} adapter.store_config("myconf", store_val) adapter.store_config("myconf2", store_val) removed = adapter.remove_config("myconf") assert removed read_val = adapter.read_config("myconf") assert read_val is None read_val = adapter.read_config("myconf2") assert read_val == store_val removed = adapter.remove_config("myconf") assert not removed
def token_storage_adapter(): if not hasattr(token_storage_adapter, "_instance"): # namespace is equal to the current environment token_storage_adapter._instance = SQLiteAdapter( os.path.expanduser("~/.globus_searchable_files.db"), namespace="DEFAULT") return token_storage_adapter._instance
def test_multiple_adapters_store_and_retrieve(mock_response, db_filename): adapter1 = SQLiteAdapter(db_filename) adapter2 = SQLiteAdapter(db_filename) adapter1.store(mock_response) data = adapter2.read_as_dict() assert data == mock_response.by_resource_server
def test_multiple_adapters_store_and_retrieve_different_namespaces( mock_response, db_filename): adapter1 = SQLiteAdapter(db_filename, namespace="foo") adapter2 = SQLiteAdapter(db_filename, namespace="bar") adapter1.store(mock_response) data = adapter2.read_as_dict() assert data == {}
def token_storage_adapter(): fname = os.path.expanduser("~/.globus_search.db") # if the file exists and world or group permissions are set, fix if os.path.exists(fname): stat = os.stat(fname) if (stat.st_mode & 0o077) != 0: os.chmod(fname, 0o600) if not hasattr(token_storage_adapter, "_instance"): # namespace is equal to the current environment token_storage_adapter._instance = SQLiteAdapter( fname, namespace=GLOBUS_ENV or "DEFAULT" ) return token_storage_adapter._instance
def test_token_storage(mock_login_token_response): """Put memory-backed sqlite token storage in place for the testsuite to use.""" mockstore = SQLiteAdapter(":memory:") mockstore.store_config( "auth_client_data", {"client_id": "fakeClientIDString", "client_secret": "fakeClientSecret"}, ) mockstore.store(mock_login_token_response) return mockstore
def test_remove_tokens(mock_response): adapter = SQLiteAdapter(MEMORY_DBNAME) adapter.store(mock_response) removed = adapter.remove_tokens_for_resource_server("resource_server_1") assert removed data = adapter.read_as_dict() assert data == { "resource_server_2": mock_response.by_resource_server["resource_server_2"] } removed = adapter.remove_tokens_for_resource_server("resource_server_1") assert not removed
def test_store_and_retrieve(mock_response): adapter = SQLiteAdapter(MEMORY_DBNAME) adapter.store(mock_response) data = adapter.read_as_dict() assert data == mock_response.by_resource_server
def test_load_missing_token_data(): adapter = SQLiteAdapter(MEMORY_DBNAME) assert adapter.read_as_dict() == {}
def test_load_missing_config_data(): adapter = SQLiteAdapter(MEMORY_DBNAME) assert adapter.read_config("foo") is None