tests/test_connector_base.py
Rama main · réplica de lectura del repositorio original.
"""Connector base-class invariants."""
import pytest
from dm.connect.base import Source
from dm.connect.file import FileConnector
from dm.connect.postgres import PostgresConnector
from dm.connect.sqlserver import SqlServerConnector
def test_connector_accepts_matching_source_types():
assert PostgresConnector(Source(name="pg", source_type="postgres")).source.source_type == "postgres"
assert SqlServerConnector(Source(name="u8", source_type="sqlserver")).source.source_type == "sqlserver"
assert FileConnector(Source(name="drop", source_type="file")).source.source_type == "file"
@pytest.mark.parametrize(
("connector_cls", "source_type"),
[
(PostgresConnector, "sqlserver"),
(SqlServerConnector, "file"),
(FileConnector, "postgres"),
],
)
def test_connector_rejects_mismatched_source_types(connector_cls, source_type):
with pytest.raises(ValueError, match="不匹配"):
connector_cls(Source(name="wrong", source_type=source_type))
def test_connector_rejects_non_source_objects():
with pytest.raises(TypeError, match="Source"):
FileConnector({"source_type": "file"})