Skip to content

Commit c923f72

Browse files
committed
Cover emitted text and active write capability gates
1 parent f1c56df commit c923f72

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

‎tests/test_sql_profiles.py‎

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -645,3 +645,43 @@ def test_dolt_operational_write_flag_requires_claimed_driver() -> None:
645645
assert capabilities.dolt_operational_write_enabled(
646646
{"driver_eligible": True}, declaration_matched=False,
647647
) is False
648+
649+
def test_mysql_preflight_matches_emitted_text_limit() -> None:
650+
assert MYSQL.max_text_value_bytes == 65_535
651+
variables = [{
652+
"ordinal": 1,
653+
"source_name": "value",
654+
"physical_name": "value",
655+
"storage_kind": "string",
656+
"string_width": 65_536,
657+
}]
658+
659+
with pytest.raises(UnsupportedOperationError) as error:
660+
preflight(MYSQL, variables)
661+
662+
assert error.value.details["reason"] == "declared_string_width_limit"
663+
assert error.value.details["maximum"] == 65_535
664+
665+
666+
@pytest.mark.parametrize(
667+
("claimed_supported", "driver_eligible"),
668+
[(False, True), (True, False)],
669+
)
670+
def test_active_non_dolt_write_flag_requires_version_and_driver(
671+
monkeypatch, claimed_supported, driver_eligible,
672+
) -> None:
673+
active = {
674+
"profile": "postgresql",
675+
"claimed_supported": claimed_supported,
676+
"driver_eligible": driver_eligible,
677+
"observed": {},
678+
}
679+
monkeypatch.setattr(
680+
capabilities, "active_connection", lambda _url, **_kwargs: active,
681+
)
682+
683+
declaration = capabilities.profile_declarations(
684+
"postgresql+psycopg://user@host/database",
685+
)["postgresql"]
686+
687+
assert declaration["operational_write_enabled"] is False

0 commit comments

Comments
 (0)