mirror of
https://github.com/datahub-project/datahub.git
synced 2025-07-07 09:11:47 +00:00
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
from unittest.mock import MagicMock, patch
|
|
|
|
import pytest
|
|
|
|
from datahub.ingestion.source.sql.mssql.source import SQLServerConfig, SQLServerSource
|
|
|
|
|
|
@pytest.fixture
|
|
def mssql_source():
|
|
config = SQLServerConfig(
|
|
host_port="localhost:1433",
|
|
username="test",
|
|
password="test",
|
|
database="test_db",
|
|
temporary_tables_pattern=["^temp_"],
|
|
include_descriptions=False, # Disable description loading to avoid DB connections
|
|
)
|
|
|
|
# Mock the parent class's __init__ to avoid DB connections
|
|
with patch("datahub.ingestion.source.sql.sql_common.SQLAlchemySource.__init__"):
|
|
source = SQLServerSource(config, MagicMock())
|
|
source.discovered_datasets = {"test_db.dbo.regular_table"}
|
|
return source
|
|
|
|
|
|
def test_is_temp_table(mssql_source):
|
|
# Test tables matching temporary table patterns
|
|
assert mssql_source.is_temp_table("test_db.dbo.temp_table") is True
|
|
|
|
# Test tables starting with # (handled by startswith check in is_temp_table)
|
|
assert mssql_source.is_temp_table("test_db.dbo.#some_table") is True
|
|
|
|
# Test tables that are not in discovered_datasets
|
|
assert mssql_source.is_temp_table("test_db.dbo.unknown_table") is True
|
|
|
|
# Test regular tables that should return False
|
|
assert mssql_source.is_temp_table("test_db.dbo.regular_table") is False
|
|
|
|
# Test invalid table name format
|
|
assert mssql_source.is_temp_table("invalid_table_name") is False
|