Skip to content

Commit

Permalink
Add optional conversions module
Browse files Browse the repository at this point in the history
  • Loading branch information
agnessnowplow committed Dec 12, 2023
1 parent d736544 commit 581ad45
Show file tree
Hide file tree
Showing 9 changed files with 284 additions and 74 deletions.
9 changes: 9 additions & 0 deletions dbt_project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ vars:
snowplow__session_lookback_days: 730
snowplow__session_stitching: true
snowplow__view_stitching: false
snowplow__conversion_stitching: false
snowplow__session_timestamp: collector_tstamp
snowplow__start_date: '2020-01-01'
# snowplow__total_all_conversions: false
Expand Down Expand Up @@ -90,10 +91,12 @@ vars:
snowplow__session_passthroughs: []
snowplow__user_first_passthroughs: []
snowplow__user_last_passthroughs: []
snowplow__conversion_passthroughs: []
# enable custom modules:
snowplow__enable_consent: false
snowplow__enable_cwv: false
snowplow__enable_app_errors: false
snowplow__enable_conversions: false

# WAREHOUSE SPECIFIC

Expand Down Expand Up @@ -167,6 +170,12 @@ models:
scratch:
+schema: "scratch"
+tags: "scratch"
conversions:
+schema: "derived"
+tags: ["snowplow_unified_incremental", "derived", "conversions"]
scratch:
+schema: "scratch"
+tags: "scratch"
core_web_vitals:
+schema: "derived"
+tags: ["snowplow_unified_incremental", "derived", "core_web_vitals"]
Expand Down
16 changes: 4 additions & 12 deletions integration_tests/.scripts/integration_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,50 +24,42 @@ fi
for db in ${DATABASES[@]}; do

echo "Snowplow unified integration tests: Seeding data"

eval "dbt seed --full-refresh --target $db" || exit 1;

echo "Snowplow unified integration tests: App errors module"
echo "Snowplow unified integration tests: Conversions"
eval "dbt run --full-refresh --select +snowplow_unified_conversions snowplow_unified_integration_tests.source --vars '{snowplow__allow_refresh: true, snowplow__backfill_limit_days: 220, snowplow__enable_cwv: false, snowplow__enable_conversions: true}' --target $db" || exit 1;

echo "Snowplow unified integration tests: App errors module"
eval "dbt run --full-refresh --select +snowplow_unified_app_errors snowplow_unified_integration_tests.source --vars '{snowplow__allow_refresh: true, snowplow__backfill_limit_days: 220, snowplow__enable_cwv: false, snowplow__enable_app_errors: true}' --target $db" || exit 1;

echo "Snowplow unified integration tests: Late enabled contexts"

eval "dbt run --full-refresh --select +test_late_enabled_contexts snowplow_unified_integration_tests.source --vars '{snowplow__allow_refresh: true, snowplow__backfill_limit_days: 220, snowplow__enable_cwv: false, snowplow__enable_mobile_context: false, snowplow__enable_geolocation_context: false, snowplow__enable_application_context: false, snowplow__enable_screen_context: false, snowplow__enable_app_errors: false, snowplow__enable_deep_link_context: false, snowplow__enable_cwv: false, snowplow__enable_iab: false, snowplow__enable_ua: false, snowplow__enable_browser_context: false, snowplow__enable_consent: false}' --target $db" || exit 1;

eval "dbt run --select +test_late_enabled_contexts run --vars '{snowplow__allow_refresh: true, snowplow__backfill_limit_days: 250, snowplow__enable_cwv: false}' --target $db"

echo "Snowplow unified integration tests: Late enabled contexts test passed"

echo "Snowplow unified integration tests: Execute models (all contexts except for cwv) - run 1/4"

eval "dbt run --full-refresh --vars '{snowplow__allow_refresh: true, snowplow__backfill_limit_days: 243, snowplow__enable_cwv: false}' --target $db" || exit 1;

for i in {2..4}
do
echo "Snowplow unified integration tests: Execute models (all contexts except for cwv) - run $i/4"

eval "dbt run --vars '{snowplow__enable_cwv: false}' --target $db" || exit 1;
done

echo "Snowplow unified integration tests: Test models"

eval "dbt test --exclude snowplow_unified_web_vital_measurements snowplow_unified_web_vital_measurements_actual snowplow_unified_web_vital_events_this_run test_name:not_null --store-failures --target $db" || exit 1;

echo "Snowplow unified integration tests: All non-CWV tests passed"

echo "Snowplow unified integration tests - Core Web Vitals: Execute models"

eval "dbt run --select +snowplow_unified_web_vital_measurements_actual snowplow_unified_web_vital_measurements_expected_stg source --full-refresh --vars '{snowplow__allow_refresh: true, snowplow__start_date: '2023-03-01', snowplow__backfill_limit_days: 50, snowplow__cwv_days_to_measure: 999, snowplow__enable_mobile: false, snowplow__enable_mobile_context: false, snowplow__enable_geolocation_context: false, snowplow__enable_application_context: false, snowplow__enable_screen_context: false, snowplow__enable_app_errors: false, snowplow__enable_deep_link_context: false, snowplow__enable_ua: false, snowplow__enable_browser_context: false, snowplow__enable_consent: false}' --target $db" || exit 1;

eval "dbt test --select snowplow_unified_web_vital_measurements_actual --store-failures --target $db" || exit 1;

echo "Snowplow unified integration tests: Execute web (all web contexts except for cwv)"

eval "dbt run --full-refresh --vars '{snowplow__allow_refresh: true, snowplow__backfill_limit_days: 9999, snowplow__enable_mobile: false, snowplow__enable_mobile_context: false, snowplow__enable_geolocation_context: false, snowplow__enable_application_context: false, snowplow__enable_screen_context: false, snowplow__enable_app_errors: false, snowplow__enable_deep_link_context: false, snowplow__enable_cwv: false}' --select +snowplow_unified_users snowplow_unified_events_stg --target $db" || exit 1;

echo "Snowplow unified integration tests: Execute mobile (all mobile contexts)"

eval "dbt run --full-refresh --vars '{snowplow__allow_refresh: true, snowplow__backfill_limit_days: 9999, snowplow__enable_web: false, snowplow__enable_iab: false, snowplow__enable_ua: false, snowplow__enable_browser_context: false, snowplow__enable_consent: false, snowplow__enable_cwv: false}' --select +snowplow_unified_users snowplow_unified_events_stg --target $db" || exit 1;

echo "Snowplow unified integration tests: All CWV tests passed"
Expand Down
6 changes: 6 additions & 0 deletions macros/config_check.sql
Original file line number Diff line number Diff line change
Expand Up @@ -68,5 +68,11 @@ You may obtain a copy of the Snowplow Personal and Academic License Version 1.0
) }}
{% endif %}
{% endif %}

{% if not var('snowplow__conversion_events') and var('snowplow__enable_conversions') %}
{{ exceptions.raise_compiler_error(
"Snowplow Error: var('snowplow__conversion_events') is not configured but the conversions optional module is enabled. Please configure this variable before proceeding."
) }}
{% endif %}

{% endmacro %}
Loading

0 comments on commit 581ad45

Please sign in to comment.