Repository navigation
Conversation
CKAN declares ckan.plugins as a list option since 2.10, so
tk.config.get("ckan.plugins") returns a list. should_skip called .split()
on it, the AttributeError was caught by the broad except and reported as
"skip", so DRUF formula processing was silently disabled on every job
even with ckanext-scheming enabled.
Read the option through toolkit.aslist, which accepts both the list and
the legacy string form. Regression test covers both forms and the
no-scheming case.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
The failing unit and integration checks here die on |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 7 |
| Duplication | 0 |
AI Reviewer: first review requested successfully. AI can make mistakes. Always validate suggestions.
TIP This summary will be updated as you push new changes.
There was a problem hiding this comment.
Pull Request Overview
✅ No blocking issues noticed
No blocking findings were identified. The required list-valued, legacy string-valued, and scheming-absent plugin configurations are covered by regression tests.
Test suggestions
- Scheming is detected in a list-valued ckan.plugins configuration.
- Scheming is detected in a legacy string-valued ckan.plugins configuration.
- Formula processing is skipped when the plugin list lacks scheming.
TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback
Fixes #354
Proposed fixes:
FormulaStage.should_skipreadckan.pluginswith.split(). CKAN declares that option as a list since 2.10, sotk.config.get("ckan.plugins")returns a list, theAttributeErrorwas swallowed by the broadexcept Exception, and the stage loggedUnable to check ckan.plugins configuration: 'list' object has no attribute 'split'and skipped DRUF formula processing on every job, even with ckanext-scheming enabled.The stage now reads the option through
toolkit.aslist, which accepts both the list and the legacy string form. A regression test covers the list form with scheming, the string form with scheming, and a list without scheming.pytest tests/test_issue_354_plugins_list.pybefore the fixpytest tests/test_issue_354_plugins_list.pyafter the fixpytest tests --ignore=tests/integration --ignore=tests/js(with--ckan-ini)flake8 --extend-ignore=E501on the test fileexcept Exceptionis unchanged. Narrowing it so a real config failure is not reported as "scheming not enabled" is a separate decision; this PR only fixes the cause the except was hiding.formula.pyare left alone (unusedOptionalimport, a continuation indent on thescheming_pluginslist); they are not on the changed lines.prefect_enabled = false; the sameshould_skipruns on the Prefect path.🤖 Generated with Claude Code