"""DAX-021 data-access driver registration tests.""" from __future__ import annotations from pathlib import Path from app.integrations.driver_base import CloudDriver, DataAccessDriver from app.integrations.drivers.bigquery_data_access import BigQueryDataAccessDriver from app.integrations.registry import get_driver_class, providers_for_kind def test_bigquery_data_access_driver_resolves_from_dedicated_kind() -> None: cls = get_driver_class("data_access", "bigquery") assert cls is BigQueryDataAccessDriver assert issubclass(cls, DataAccessDriver) assert not issubclass(cls, CloudDriver) assert list(providers_for_kind("data_access")) == ["bigquery"] def test_bigquery_data_access_driver_has_no_cloud_grant_surface() -> None: driver = BigQueryDataAccessDriver(integration_id="dummy", config={}) for forbidden_method in ( "list_scopes", "grant_access", "revoke_access", "list_scope_grants", ): assert not hasattr(driver, forbidden_method) def test_bigquery_data_access_driver_source_has_no_cloud_or_broad_scan_path() -> None: source = ( Path(__file__).parents[2] / "app" / "integrations" / "drivers" / "bigquery_data_access.py" ).read_text() forbidden_tokens = ( "providers.gcp", "gcp_cloud", "CloudDriver", "grant_access", "revoke_access", "list_scopes", "list_scope_grants", "list_datasets", "query(", "lifecycle_service", ) for token in forbidden_tokens: assert token not in source assert "get_table_iam" in source assert "set_table_iam" in source