import re from absl import logging from forecasting_toolkit.datastore.connectors.snowflake import ( get_snowflake_creds, snowflake_connector_factory, alchemy_connector_factory ) """ UTILS """ def _is_version_number(s): "Check and returns true if its a version number" return re.search("^[0-9][.0-9]*[0-9]$", s) is not None """ TESTS Description: Tests various connectors """ def test_snowflake_connection(): """ tests connection to snowflake """ logging.debug("Fetching creds") _creds = get_snowflake_creds() # test connection with snowflake_connector_factory(_creds) as cs: try: cs.execute("SELECT current_version()") one_row = cs.fetchone() # make sure its just one row assert len(one_row) == 1 # make sure it is a version number assert _is_version_number(one_row[0]) logging.info(f"Your snowflake version - {one_row[0]} PASSED!") except Exception as e: logging.error(f"Something went wrong - {str(e)}") def test_sql_alchemy_connector_factory(): """ tests sql alcheme connector factory""" with alchemy_connector_factory() as conn: try: results = conn.execute("SELECT current_version()") one_row = results[0] # make sure its just one row assert len(one_row) == 1 # make sure it is a version number assert _is_version_number(one_row[0]) logging.info(f"Your snowflake version - {one_row[0]} PASSED!") except Exception as e: logging.error(f"Something went wrong - {str(e)}") def test_sql_alchemy_connector_factory_with_kwargs(): """ tests sql alcheme connector factory""" kwargs = { "database": "DEV_ENGINEERING", "schema": "AADAMU_DEBUT_FORECASTING_DBT", "warehouse": "DEV_OWS_WAREHOUSE" } with alchemy_connector_factory(**kwargs) as conn: try: results = conn.execute("SELECT current_version()") one_row = results[0] # make sure its just one row assert len(one_row) == 1 # make sure it is a version number assert _is_version_number(one_row[0]) logging.info(f"Your snowflake version - {one_row[0]} PASSED!") except Exception as e: logging.error(f"Something went wrong - {str(e)}")