dbt-labs / dbt-labs/dbt

[Feature] Enable `dict` format for ephemeral model inputs in a unit test

Open
#11,263 2 comments 11 reactions 0 assignees View on GitHub
engine:v1 ephemeral help_wanted type:docs type:feature unit tests
Dominant language
Rust
Stars
13.8k
Forks
2.6k
Avg merge
21h 31m
Merged PRs (30d)
56

Description

### Is this your first time submitting a feature request?

- [x] I have read the [expectations for open source contributors](https://docs.getdbt.com/docs/contributing/oss-expectations)
- [x] I have searched the existing issues, and I could not find an existing issue for this feature
- [x] I am requesting a straightforward extension of existing dbt functionality, rather than a Big Idea better suited to a discussion

### Describe the feature

Allow ephemeral models to define unit tests using `dict` format. The rows for the unit tests could be written as YAML, easing both writability and readability.

### Describe alternatives you've considered

Follow-up from https://github.com/dbt-labs/dbt-core/issues/9686.

The `sql` format for unit tests allow us to define unit tests for ephemeral models, but are far less convenient than `dict` format:

- Unable to use anchors and references, which are especially useful for fields repeated in many/all unit tests
- Must supply data for all rows
- Linting/formatting is difficult

### Who will this benefit?

Everyone who unit tests ephemeral models. This might make ephemeral models more useful.

### Are you interested in contributing this feature?

If someone gives a rough pointer of where to contribute, I can do it

### Anything else?

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.