Tests: feeds that move, WordPress.com, Patreon and the catalogue #401

Closed
opened 2026-11-06 19:51:43 -08:00 by rays · 1 comment
Owner

Untested with both suites together: catalogue.rs's follow_move (a permanent redirect updating the feed's address, 12 lines), list, url_stem, add/rm from the CLI; feed's wordpress.rs wpcom_posts (the WordPress.com browser check answered through its API, #317, 58%) and patreon.rs patreon_shows (70%); scan.rs's download_one and reject. A feed that moves for good is common, and a wrong move loses a subscription's history.

Tests to add:

  • a 301 or 308 chain to a new address: the catalogue keeps the new one (feed_moved), subscriptions follow, and a temporary 302 changes nothing (fetch.rs has the redirect server)
  • a moved address that another feed already has merges rather than duplicating
  • a WordPress.com 403 challenge page is answered from the REST API's posts
  • a Patreon creator's page lists its shows; one show's feed is read with its own credentials
  • ipx add and ipx rm change the catalogue and subscriptions as the API does

Seen with the coverage of both suites merged line by line (cargo: sh scripts/coverage.sh, browser: sh scripts/coverage.sh api; reports in target/coverage/cargo, api and page; #390, #394), as of 2026-11-07. A test added here shows in Grafana's Coverage row at the next run.

Untested with both suites together: catalogue.rs's `follow_move` (a permanent redirect updating the feed's address, 12 lines), `list`, `url_stem`, `add`/`rm` from the CLI; feed's wordpress.rs `wpcom_posts` (the WordPress.com browser check answered through its API, #317, 58%) and patreon.rs `patreon_shows` (70%); scan.rs's `download_one` and `reject`. A feed that moves for good is common, and a wrong move loses a subscription's history. Tests to add: - a 301 or 308 chain to a new address: the catalogue keeps the new one (`feed_moved`), subscriptions follow, and a temporary 302 changes nothing (fetch.rs has the redirect server) - a moved address that another feed already has merges rather than duplicating - a WordPress.com 403 challenge page is answered from the REST API's posts - a Patreon creator's page lists its shows; one show's feed is read with its own credentials - `ipx add` and `ipx rm` change the catalogue and subscriptions as the API does Seen with the coverage of both suites merged line by line (cargo: `sh scripts/coverage.sh`, browser: `sh scripts/coverage.sh api`; reports in target/coverage/cargo, api and page; #390, #394), as of 2026-11-07. A test added here shows in Grafana's Coverage row at the next run.
rays added the enhancement label 2026-11-06 19:51:43 -08:00
Author
Owner

Tests added in c00d538. catalogue.rs: follow_move keeps the id and subscriptions, stores the new address in memory and the database, and leaves a feed whose new address another feed has, or one from an OPML; ipx add (title-named id, folder, keywords, refusing a duplicate, a second add with --list or a category changing only those) and ipx rm (catalogue and database). ipx-feed: a WordPress.com browser check through fetch() comes back as the REST API's posts; patreon_shows reads the campaign from the creator feed and asks the API, each show keeping the creator's credentials; a 404 is an error. Both APIs' base addresses go through api_base, a stand-in in tests. The 301/308-chain vs 302 rule was already tested in fetch.rs. Not done: scan.rs's download_one and reject.

Tests added in c00d538. catalogue.rs: follow_move keeps the id and subscriptions, stores the new address in memory and the database, and leaves a feed whose new address another feed has, or one from an OPML; ipx add (title-named id, folder, keywords, refusing a duplicate, a second add with --list or a category changing only those) and ipx rm (catalogue and database). ipx-feed: a WordPress.com browser check through fetch() comes back as the REST API's posts; patreon_shows reads the campaign from the creator feed and asks the API, each show keeping the creator's credentials; a 404 is an error. Both APIs' base addresses go through api_base, a stand-in in tests. The 301/308-chain vs 302 rule was already tested in fetch.rs. Not done: scan.rs's download_one and reject.
rays closed this issue 2026-11-06 20:29:09 -08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rays/ipx#401