From 27821ef911e53570e2a5dbc6e0a397975b9d363c Mon Sep 17 00:00:00 2001 From: alex-float-on <159055527+alex-float-on@users.noreply.github.com> Date: Thu, 14 Mar 2024 18:55:37 -0400 Subject: [PATCH] Handle uppercase references from Metabase GUI derived queries (#242) * lowercase normal question exposures in from and join * handle edge case where source_table is None * change table name to uppercase in fixtures to verify changes * fix indentation --- dbtmetabase/_exposures.py | 7 +++++-- tests/fixtures/api/table.json | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dbtmetabase/_exposures.py b/dbtmetabase/_exposures.py index 35b95e9..7b3783b 100644 --- a/dbtmetabase/_exposures.py +++ b/dbtmetabase/_exposures.py @@ -215,8 +215,10 @@ def __extract_card_exposures( elif query_source in ctx.table_names: # Normal question source_table = ctx.table_names.get(query_source) - _logger.info("Extracted model '%s' from card", source_table) - depends.add(source_table) + if source_table: + source_table = source_table.lower() + _logger.info("Extracted model '%s' from card", source_table) + depends.add(source_table) # Find models exposed through joins for join in query.get("query", {}).get("joins", []): @@ -237,6 +239,7 @@ def __extract_card_exposures( # Joined model parsed joined_table = ctx.table_names.get(join_source) if joined_table: + joined_table = joined_table.lower() _logger.info("Extracted model '%s' from join", joined_table) depends.add(joined_table) diff --git a/tests/fixtures/api/table.json b/tests/fixtures/api/table.json index bf5ccd0..0f0a721 100644 --- a/tests/fixtures/api/table.json +++ b/tests/fixtures/api/table.json @@ -52,7 +52,7 @@ "points_of_interest": null }, "show_in_getting_started": false, - "name": "customers", + "name": "CUSTOMERS", "caveats": null, "updated_at": "2021-07-21T07:30:35.159586Z", "entity_name": null,