fix(rss): detect empty or HTML responses feedparser treats as non-bozo (#36)

Analysed against c2487eaf3 files changedby 1012839419a-alt
Open PR on GitHub

Change-risk score

8.5out of 10Typical
Repository health
6.1to6.0base against this head

This change sits in the middle third of this repository's own risk distribution, so it is about as risky as the work around it. It is riskier than 58% of this repository's own commits.

The largest health movement is in test_rss_channel_schema_drift.py, down 0.8. Nothing outside this PR depends on a contract it changed.

Files changed
3
in this diff
Contracts changed
0
removed or signature
Outside callers
0
not in this diff
Findings added
7
1 resolved

Blast radius on the repo map

Every file in the repository, grouped into its own directories and sized by lines. The ones this PR changes are lit, and everything that imports them is marked.

backendchromecompatdocsfrontendiiiopenspecscriptstestsapibrowser_act_packsschemasservicesskillsworkflowdify_gra…appcomponentslibchangesintegrationunitecommercelead-generationsocial-listeningintellige…(app)flowrecordsuiunlumen-uiflowworkflowapichannelscontrolpipeline
changed, health fellchanged, health rosechanged, health heldimports a changed fileuntouchedchanged by this PR

Drawing 1,488 of 1,631 files at a readable size, grouped by directory and sized by lines of code. 3 changed here reach 3 more by import. 143 are too small to see at this width, which is what the frame below is for.

Inside tests/unit/channels

test_api_channel.pytest_browser_act_channel.pytest_cli_cha…test_cli_cha…test_cli_cha…test_contrac…test_crawl4ai_c…test_doubao_res…test_douyin_det…test_opencli_channel.pytest_rss_chann…test_…test_rss_c…test_rss_channe…test_rss_fetch.…test_rss_fetch_…test_skill_chan…test_web_scraper_cha…

21 files, 2 changed by this PR and 0 that import one. This PR changes 3 files in total, spread across more than one top-level directory. Click any directory above to frame it instead.

Changed

What this PR added, and what it took away

Introduced findings are the ones inside the lines this PR added, not the file's existing ones. The resolved column is the only place in the product that lists them.

Introduced (7)
  • mediumdry violation
    tests/unit/channels/test_rss_channel_schema_drift.py:117

    28% of file duplicated; worst clone shares 11 lines with tests/unit/channels/test_rss_channel_schema_drift.py

  • mediumduplicated assertion block
    tests/unit/channels/test_rss_fetch.py:163

    assertion block at lines 163-164 is duplicated in tests/unit/channels/test_rss_fetch.py

  • mediumduplicated assertion block
    tests/unit/channels/test_rss_fetch.py:179

    assertion block at lines 179-180 is duplicated in tests/unit/channels/test_rss_fetch.py

  • mediumduplicated assertion block
    tests/unit/channels/test_rss_channel_schema_drift.py:120

    assertion block at lines 120-122 is duplicated in tests/unit/channels/test_rss_channel_schema_drift.py

  • mediumduplicated assertion block
    tests/unit/channels/test_rss_channel_schema_drift.py:132

    assertion block at lines 132-134 is duplicated in tests/unit/channels/test_rss_channel_schema_drift.py

  • mediumduplicated assertion block
    tests/unit/channels/test_rss_channel_schema_drift.py:144

    assertion block at lines 144-146 is duplicated in tests/unit/channels/test_rss_channel_schema_drift.py

  • lowdry violation
    tests/unit/channels/test_rss_fetch.py:157

    16% of file duplicated; worst clone shares 13 lines with tests/unit/channels/test_rss_fetch.py

Resolved (1)
  • function hotspot
    backend/channels/rss_channel.py

Who else knows this code

The primary author of each changed file by share of its recent commits, mined from git history. Advisory: it says who has context, not who must review.

  • tests/unit/channels/test_rss_channel_schema_drift.py2233admin 100% of 1 commits
  • tests/unit/channels/test_rss_fetch.pyCurry 90% of 7 commits
  • backend/channels/rss_channel.pyCurry 62% of 9 commits

Tests that cover this change

Test files that import a file this PR changes. Not a coverage measurement: it is the import graph, so it says which tests are worth running, not which lines they reach.

  • tests/unit/channels/test_rss_channel.py
  • tests/unit/channels/test_rss_channel_entries.py
  • tests/unit/channels/test_rss_channel_errors.py

2 changed files have no test importing them.

Get this on your own pull requests

This page came from an index of 2233admin/opencli-Razormind. No model calls, no configuration, and it refreshes on every push. Install the bot and every pull request gets one of these.