diff --git a/dagster_sqlmesh/test_translator.py b/dagster_sqlmesh/test_translator.py new file mode 100644 index 0000000..f4f01f2 --- /dev/null +++ b/dagster_sqlmesh/test_translator.py @@ -0,0 +1,8 @@ +from dagster_sqlmesh.translator import SQLMeshDagsterTranslator + + +def test_get_asset_key_str_sanitizes_hyphens(): + translator = SQLMeshDagsterTranslator() + result = translator.get_asset_key_str("my-catalog.my-schema.my-model") + assert result == "sqlmesh__my_catalog_my_schema_my_model" + assert "-" not in result \ No newline at end of file diff --git a/dagster_sqlmesh/translator.py b/dagster_sqlmesh/translator.py index 7b3d879..25620e4 100644 --- a/dagster_sqlmesh/translator.py +++ b/dagster_sqlmesh/translator.py @@ -163,8 +163,8 @@ def get_asset_key_str(self, fqn: str) -> str: """ table = exp.to_table(fqn) asset_key_name = [table.catalog, table.db, table.name] - - return "sqlmesh__" + "_".join(asset_key_name) + + return ("sqlmesh__" + "_".join(asset_key_name)).replace("-", "_") def get_tags(self, context: Context, model: Model) -> dict[str, str]: """Get Dagster asset tags for a SQLMesh model.