-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[BACKPORT 1.4.latest] Improved event log msg stringification (#7342)
* Add tests for logging jinja2.Undefined objects [CT-2259](#7108) identifies an issue wherein dbt-core 1.0-1.3 raise errors if a jinja2.Undefined object is attempted to be logged. This generally happened in the form of `{{ log(undefined_variable, info=True) }}`. This commit adding this test exists for two reasons 1. Ensure we don't have a regression in this going forward 2. Exist as a commit to be used for backport fixes for dbt-core 1.0-1.3 * Add tests for checking `DBT_ENV_SECRET_`s don't break logging [CT-1783](#6568) describes a bug in dbt-core 1.0-1.3 wherein when a `DBT_ENV_SECRET_` all `{{ log("logging stuff", info=True) }}` invocations break. This commit adds a test for this for two reasons: 1. Ensure we don't regress to this behavior going forward 2. Act as a base commit for making the backport fixes to dbt-core 1.0-1.3 * Log warning when event serialization fails in `msg_to_dict` This commit updates the `msg_to_dict` exception handling path to fire a warning level event instead of raising an exception. * Add changie info for changes * Add test to check exception handling of `msg_to_dict` * Ensure all events with self.msg stringify self.msg --------- Co-authored-by: leahwicz <[email protected]>
- Loading branch information
Showing
5 changed files
with
53 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
kind: Fixes | ||
body: Improved failed event serialization handling and associated tests | ||
time: 2023-03-31T09:54:28.701963-07:00 | ||
custom: | ||
Author: QMalcolm | ||
Issue: 7113 7108 6568 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import os | ||
|
||
from dbt.context.base import BaseContext | ||
from jinja2.runtime import Undefined | ||
|
||
|
||
class TestBaseContext: | ||
def test_log_jinja_undefined(self): | ||
# regression test for CT-2259 | ||
try: | ||
os.environ["DBT_ENV_SECRET_LOG_TEST"] = "cats_are_cool" | ||
BaseContext.log(msg=Undefined(), info=True) | ||
except Exception as e: | ||
assert False, f"Logging an jinja2.Undefined object raises an exception: {e}" | ||
|
||
def test_log_with_dbt_env_secret(self): | ||
# regression test for CT-1783 | ||
try: | ||
os.environ["DBT_ENV_SECRET_LOG_TEST"] = "cats_are_cool" | ||
BaseContext.log({"fact1": "I like cats"}, info=True) | ||
except Exception as e: | ||
assert False, f"Logging while a `DBT_ENV_SECRET` was set raised an exception: {e}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters