Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Backport 1.8.latest] Fix setting
silence
of warn_error_options
v…
…ia `dbt_project.yaml` flags (#10361) * Fix setting `silence` of `warn_error_options` via `dbt_project.yaml` flags (#10359) * Fix `test_can_silence` tests in `test_warn_error_options.py` to ensure silencing We're fixing an issue wherein `silence` specifications in the `dbt_project.yaml` weren't being respected. This was odd since we had tests specifically for this. It turns out the tests were broken. Essentially the warning was instead being raised as an error due to `include: 'all'`. Then because it was being raised as an error, the event wasn't going through the logger. We were only asserting in these tests that the silenced event wasn't going through the logger (which it wasn't) so everything "appeared" to be working. Unfortunately everything wasn't actually working. This is now highlighted because `test_warn_error_options::TestWarnErrorOptionsFromProject:test_can_silence` is now failing with this commit. * Fix setting `warn_error_options` via `dbt_project.yaml` flags. Back when I did the work for #10058 (specifically c52d653) I thought that the `warn_error_options` would automatically be converted from the yaml to the `WarnErrorOptions` object as we were building the `ProjectFlags` object, which holds `warn_error_options`, via `ProjectFlags.from_dict`. And I thought this was validated by the `test_can_silence` test added in c52d653. However, there were two problems: 1. The definition of `warn_error_options` on `PrjectFlags` is a dict, not a `WarnErrorOptions` object 2. The `test_can_silence` test was broken, and not testing what I thought The quick fix (this commit) is to ensure `silence` is passed to `WarnErrorOptions` instantiation in `dbt.cli.flags.convert_config`. The better fix would be to make the `warn_error_options` of `ProjectFlags` a `WarnErrorOptions` object instead of a dict. However, to do this we first need to update dbt-common's `WarnErrorOptions` definition to default `include` to an empty list. Doing so would allow us to get rid of `convert_config` entirely. (cherry picked from commit 11ee2b9) --------- Co-authored-by: Quigley Malcolm <[email protected]> Co-authored-by: Quigley Malcolm <[email protected]>
- Loading branch information