fix(dbt): resolve assessor bugs and test fixture issues#358
Conversation
- Fix #353: Remove "description" from placeholder_texts and switch to exact match to prevent false negatives on legitimate descriptions - Fix #355: Replace 55 static flat_structure fixture files with dynamic tmp_path generation; fix all fixture-based tests by copying fixture content into tmp_path with .git directory (Repository validation) - Fix #356: Simplify _find_yaml_files to always search both .yml and .yaml extensions instead of fragile pattern.replace() - Fix #354: Verified scoring engine correctly excludes not_applicable assessors from weight normalization (no code change needed) Fixes #353, fixes #354, fixes #355, fixes #356 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (58)
Warning
|
📈 Test Coverage Report
Coverage calculated from unit tests only |
AgentReady Code Review — PR #358fix(dbt): resolve assessor bugs and test fixture issues Overall AssessmentThis is a solid follow-up cleanup PR. The core bugs are real and the fixes are correct. The Bug Fixes —
|
| Area | Status |
|---|---|
| Bug fix: YAML discovery (#356) | Approved |
| Bug fix: placeholder false positive (#353) | Approved with note on exact-match scope |
Test fixture .git errors (#354, #355) |
Approved |
| Static fixture cleanup | Approved |
| Regression test coverage | Approved |
| Security | No issues |
Recommendation: Approve — consider either documenting the exact-match placeholder behavior as intentional policy or filing a follow-up to revisit whether partial-phrase placeholders ("todo: ...") should still be caught.
🤖 Generated with Claude Code
|
🎉 This PR is included in version 2.31.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Summary
Fixes 4 follow-up issues from the dbt assessor PR (#357/#334): a placeholder detection bug, fragile YAML file matching, 22 broken test fixtures, and 55 unnecessary static files.
Also fixes a pre-existing issue where 22 of 48 dbt assessor tests were erroring in CI due to missing
.gitdirectories in fixture folders.Fixes #353, fixes #354, fixes #355, fixes #356
Changes
Bug Fixes
dbt.py:307-324): Removed"description"fromplaceholder_textsset and switched from substring to exact match. Descriptions containing common words like "description" are no longer falsely rejected.dbt.py:33-44): Simplified_find_yaml_files()to always search both.ymland.yamlexplicitly, removing the fragilepattern.replace("yml", "yaml")logic.Test Fixes
test_assessors_dbt.py:30-55): Added_repo_from_fixture()that copies fixture content intotmp_pathwith a.gitdirectory, fixingRepositoryvalidation. All 22 previously-erroring tests now pass.test_assessors_dbt.py:96-115): Replaced 55 static SQL fixture files with dynamictmp_pathgeneration.test_assessors_dbt.py:347): Addedtest_assess_description_word_not_flagged_as_placeholderfor Bug: DbtModelDocumentationAssessor false-negative on descriptions containing 'description' #353.Verification (no code change)
scorer.py:131correctly excludesnot_applicablefindings from weight normalization. Non-dbt projects are unaffected.Test Plan
🤖 Generated with Claude Code