From c878026ca9e744f07e3cf8dd54d999985ec2fbbf Mon Sep 17 00:00:00 2001 From: kevin Date: Mon, 1 Jan 2024 15:44:24 -0600 Subject: [PATCH] added unit test for uniqueness, fixed quoting bug --- .../uniqueness_colnames_with_spaces.sql | 32 +++++++++++++++++++ .../get_test_suggestions.sql | 0 .../merge_dbt_configs.sql | 0 .../generate_uniqueness_tests.sql | 6 +++- 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 integration_tests/tests/generate_uniqueness_tests/uniqueness_colnames_with_spaces.sql rename macros/{test_selection => test_aggregation}/get_test_suggestions.sql (100%) rename macros/{helpers => test_aggregation}/merge_dbt_configs.sql (100%) diff --git a/integration_tests/tests/generate_uniqueness_tests/uniqueness_colnames_with_spaces.sql b/integration_tests/tests/generate_uniqueness_tests/uniqueness_colnames_with_spaces.sql new file mode 100644 index 0000000..71e9850 --- /dev/null +++ b/integration_tests/tests/generate_uniqueness_tests/uniqueness_colnames_with_spaces.sql @@ -0,0 +1,32 @@ + + +{% set actual_yaml = toyaml(fromjson(tojson( + testgen.get_uniqueness_test_suggestions( + ref('colnames_with_spaces'), + compound_key_length = 1 + ) + ))) +%} + +{% set expected_yaml %} +models: +- name: colnames_with_spaces + columns: + - name: First Name + description: Uniqueness test generated by dbt-testgen + tests: + - unique + - not_null + - name: Age (Years) + description: Uniqueness test generated by dbt-testgen + tests: + - unique + - not_null + - name: Current City + description: Uniqueness test generated by dbt-testgen + tests: + - unique + - not_null +{% endset %} + +{{ assert_equal (actual_yaml | trim, expected_yaml | trim) }} \ No newline at end of file diff --git a/macros/test_selection/get_test_suggestions.sql b/macros/test_aggregation/get_test_suggestions.sql similarity index 100% rename from macros/test_selection/get_test_suggestions.sql rename to macros/test_aggregation/get_test_suggestions.sql diff --git a/macros/helpers/merge_dbt_configs.sql b/macros/test_aggregation/merge_dbt_configs.sql similarity index 100% rename from macros/helpers/merge_dbt_configs.sql rename to macros/test_aggregation/merge_dbt_configs.sql diff --git a/macros/test_generation/generate_uniqueness_tests.sql b/macros/test_generation/generate_uniqueness_tests.sql index 93aeeec..d2a6098 100644 --- a/macros/test_generation/generate_uniqueness_tests.sql +++ b/macros/test_generation/generate_uniqueness_tests.sql @@ -82,11 +82,15 @@ {% set count_distinct_exprs = [] %} {% for column_combo in column_combinations %} + {% set column_combo_quoted = [] %} + {% for col in column_combo %} + {% do column_combo_quoted.append(adapter.quote(col))%} + {% endfor %} {% do count_distinct_exprs.append( "SELECT " ~ loop.index ~ " AS ordering, count(1) AS cardinality from ( SELECT 1 FROM " ~ table_relation ~ " - GROUP BY " ~ column_combo|join(", ") ~ " + GROUP BY " ~ column_combo_quoted|join(", ") ~ " ) t" ) %} {% endfor %}