Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/samuelclay/NewsBlur
/ functions
Functions
5,735 in github.com/samuelclay/NewsBlur
⨍
Functions
5,735
◇
Types & classes
765
↳
Endpoints
185
Method
test_stats_requires_auth
Stats endpoint should require authentication.
apps/archive_extension/tests.py:1214
Method
test_stats_returns_correct_totals
Stats should return correct total counts.
apps/archive_extension/tests.py:1220
Method
test_stats_today_and_week_counts
Stats should correctly count today and this week.
apps/archive_extension/tests.py:1231
Method
test_stats_total_domains
Stats should count unique domains.
apps/archive_extension/tests.py:1252
Method
test_stemming_applied
(self)
apps/clustering/tests.py:71
Method
test_stopwords_excluded
(self)
apps/clustering/tests.py:65
Method
test_stores_when_no_existing_story
Should store content when no matching story exists.
apps/archive_extension/tests.py:390
Method
test_stores_when_significantly_longer
Should store when extension content is >10% longer.
apps/archive_extension/tests.py:397
Method
test_story_hashes__unread_keeps_dirty_zero_count_feeds
Dirty feeds still need unread reconstruction even when cached unread counts are zero. This protects against over-filtering: we want
apps/reader/test_river_stories.py:1822
Method
test_story_hashes__unread_skips_clean_zero_unread_feeds
The unread helper sometimes receives an all-subs list from higher-level callers. In that case it should only consider feeds that can
apps/reader/test_river_stories.py:1758
Method
test_story_notification_subject_includes_feed_title
(self)
apps/notifications/tests.py:67
Method
test_story_public_comments_denies_other_relative_user
(self)
apps/social/tests.py:73
Method
test_strip_keeps_non_matching
(self)
apps/briefing/tests.py:738
Method
test_strip_preserves_hyphen_and_underscore
The strip regex should preserve hyphens and underscores.
apps/search/tests.py:90
Method
test_strip_preserves_quotes
The strip regex should preserve double quotes.
apps/search/tests.py:71
Method
test_strip_removes_special_chars
The strip regex should still remove other special characters.
apps/search/tests.py:81
Method
test_strip_with_phrase_and_special_chars
Strip should remove special chars but keep quotes for phrases.
apps/search/tests.py:99
Method
test_stripe_email_renders
(self)
apps/profile/test_profile.py:844
Method
test_stripe_subscription_with_none_plan_no_crash
Stripe subscriptions with plan=None should not raise AttributeError.
apps/profile/test_profile.py:462
Method
test_stripe_subscription_with_none_plan_uses_items_fallback
Stripe subscriptions with plan=None should fall back to items.data[0].plan.
apps/profile/test_profile.py:485
Method
test_stripe_switch_default_still_always_invoice
The user-facing upgrade view depends on the always_invoice default; don't regress it.
apps/profile/test_profile.py:786
Method
test_stripe_switch_noop_when_already_36
(self, mock_history, mock_customer, mock_list, mock_modify)
apps/profile/test_profile.py:802
Method
test_stripe_switch_uses_no_proration_and_36_price
( self, mock_history, mock_customer, mock_list, mock_modify )
apps/profile/test_profile.py:767
Method
test_strips_code_fences
(self)
apps/webfeed/tests.py:208
Method
test_strips_existing_quotes_from_phrase
User input with quotes should have them stripped before re-wrapping.
apps/search/tests.py:398
Method
test_strips_fbclid
Facebook click ID should be removed.
apps/archive_extension/tests.py:101
Method
test_strips_feed_title_words
Feed title words should be removed from significant words.
apps/clustering/tests.py:277
Method
test_strips_gclid
Google click ID should be removed.
apps/archive_extension/tests.py:107
Method
test_strips_html_from_content
(self, sample_story)
newsblur_mcp/tests/test_transforms.py:58
Method
test_strips_msclkid
Microsoft click ID should be removed.
apps/archive_extension/tests.py:113
Method
test_strips_scripts
(self)
newsblur_mcp/tests/test_transforms.py:18
Method
test_strips_styles
(self)
newsblur_mcp/tests/test_transforms.py:21
Method
test_strips_utm_parameters
UTM tracking parameters should be removed.
apps/archive_extension/tests.py:95
Method
test_subreddit_feed_is_not_comments
(self)
apps/rss_feeds/test_reddit_fetcher.py:320
Method
test_subreddit_hot_default
(self)
apps/rss_feeds/test_reddit_fetcher.py:81
Method
test_subreddit_new
(self)
apps/rss_feeds/test_reddit_fetcher.py:84
Method
test_subreddit_top_without_slash
(self)
apps/rss_feeds/test_reddit_fetcher.py:87
Method
test_subscription_increments_count
Each subscription call increments the feed's count.
apps/statistics/tests.py:166
Method
test_suggested_questions_are_strings
All suggested questions should be strings.
apps/archive_assistant/tests.py:133
Method
test_suggested_questions_not_empty
Should return at least some suggested questions.
apps/archive_assistant/tests.py:128
Method
test_suggestions_requires_authentication
Suggestions endpoint should require authentication.
apps/archive_assistant/tests.py:162
Method
test_summary_all_unconfigured_returns_none
(self, mock_get_provider)
apps/briefing/tests.py:586
Method
test_summary_category_remapping
Regression test: disabled section categories should become top_stories in LLM data.
apps/briefing/tests.py:639
Method
test_summary_empty_stories_returns_none
(self)
apps/briefing/tests.py:541
Method
test_summary_llm_exception_returns_none
(self, mock_get_provider, mock_cost)
apps/briefing/tests.py:610
Method
test_summary_provider_fallback
(self, mock_get_provider, mock_cost)
apps/briefing/tests.py:553
Method
test_summary_returns_html_and_metadata
(self, mock_get_provider, mock_cost)
apps/briefing/tests.py:484
Method
test_summary_strips_code_fences
(self, mock_get_provider, mock_cost)
apps/briefing/tests.py:514
Method
test_sync_verify
If the hub returns a 204 response, the subscription is verified and active.
apps/push/test_push.py:88
Method
test_system_prompt_mentions_archives
System prompt should mention archives.
apps/archive_assistant/tests.py:111
Method
test_system_prompt_mentions_tools
System prompt should mention using tools.
apps/archive_assistant/tests.py:115
Method
test_system_prompt_not_empty
System prompt should not be empty.
apps/archive_assistant/tests.py:107
Method
test_system_prompt_steers_to_contains_matching
(self)
apps/webfeed/tests.py:271
Method
test_task_defaults_allow_skip_resync_false
SchedulePremiumSetup task should default allow_skip_resync to False.
apps/rss_feeds/test_rss_feeds.py:619
Method
test_task_passes_allow_skip_resync_true
SchedulePremiumSetup task should pass allow_skip_resync to setup_feeds_for_premium_subscribers.
apps/rss_feeds/test_rss_feeds.py:612
Method
test_text_classifiers_premium_tiers
(self)
apps/analyzer/tests.py:455
Method
test_text_self_post_has_no_media
(self)
apps/rss_feeds/test_reddit_fetcher.py:475
Method
test_three_quotes_last_escaped
With odd number of quotes, last one should be escaped.
apps/search/tests.py:43
Method
test_thumbnail_fallback
(self)
apps/rss_feeds/test_reddit_fetcher.py:466
Method
test_tier1_finds_no_clusters
Tier 1 (title) must reject every pair — proves any cluster we see in production came from Tier 2 semantic matching, not title fuzzy.
apps/clustering/tests.py:343
Method
test_tier2_merge_rejects_tightened_threshold
With the tightened intersection>=4 and overlap>=0.45 thresholds, merge_clusters should NOT union these stories even if ES MLT hands th
apps/clustering/tests.py:349
Method
test_tier_from_score
(self)
apps/clustering/tests.py:410
Method
test_time_display_mapping
(self)
apps/briefing/tests.py:1872
Method
test_title_mode_uses_title_namespace
(self)
apps/clustering/tests.py:393
Method
test_title_words_for_apple_stories
Verify the word intersection counts that drive the threshold decision.
apps/clustering/tests.py:194
Method
test_tools_have_required_fields
All tools should have name, description, and input_schema.
apps/archive_assistant/tests.py:20
Method
test_trending_endpoint_accepts_filter_params
(self)
apps/discover/tests.py:103
Method
test_trending_feeds_sorted_by_read_time
Stories aggregate into feeds, sorted by total read time descending.
apps/statistics/tests.py:92
Method
test_trending_sites_endpoint
Test that trending sites endpoint returns valid response.
apps/discover/tests.py:16
Method
test_trending_sorted_by_subscriptions
Feeds are sorted by subscription count descending.
apps/statistics/tests.py:175
Method
test_trending_stories__training_applies_to_well_read_and_long_reads
Widely Read and Long Reads should include story classifier scores.
apps/reader/test_river_stories.py:216
Method
test_trending_stories_indexed
Stories are indexed in sRTi and retrievable via get_trending_stories.
apps/statistics/tests.py:117
Method
test_trial_to_archive_clears_trial_flag
(self)
apps/profile/test_profile.py:285
Method
test_trial_to_premium_clears_trial_flag
The bug: trial users have is_premium=True, the old dedupe skipped them. After the fix, activate_premium must clear is_premium_trial, send the
apps/profile/test_profile.py:264
Method
test_trial_to_pro_clears_trial_flag
(self)
apps/profile/test_profile.py:298
Method
test_unbalanced_quote_at_start_escaped
Unbalanced quote at start should be escaped.
apps/search/tests.py:37
Method
test_unbalanced_quote_handled
Unbalanced quotes should not cause errors.
apps/search/tests.py:252
Method
test_unbalanced_single_quote_escaped
Single unbalanced quote should be escaped.
apps/search/tests.py:31
Method
test_unescapes_reddit_amp_entities
(self)
apps/rss_feeds/test_reddit_fetcher.py:481
Method
test_unfetchable_url_is_not_feed
(self)
apps/webfeed/tests.py:433
Method
test_unknown_mode_falls_back_to_related
Unrecognized/missing modes should default to the merged namespace so the feature degrades gracefully when the preference is absent.
apps/clustering/tests.py:403
Method
test_update
(self)
apps/push/test_push.py:279
Method
test_update_blocklist_adds_domains
Update blocklist should add custom domains.
apps/archive_extension/tests.py:1379
Method
test_update_blocklist_adds_patterns
Update blocklist should add custom patterns.
apps/archive_extension/tests.py:1390
Method
test_update_blocklist_allowed_domains
Update blocklist should set allowed domains.
apps/archive_extension/tests.py:1401
Method
test_update_with_changed_hub
(self)
apps/push/test_push.py:352
Method
test_update_with_changed_hub_and_self
(self)
apps/push/test_push.py:424
Method
test_update_with_changed_self
(self)
apps/push/test_push.py:388
Method
test_updates_prefs_feed_id
(self, mock_redis_cls)
apps/briefing/tests.py:1510
Method
test_url_hashing_consistency
Same URL should produce same hash.
apps/archive_extension/tests.py:463
Method
test_url_hashing_different_urls
Different URLs should produce different hashes.
apps/archive_extension/tests.py:478
Method
test_url_hashing_normalization
Normalized URLs should produce same hash.
apps/archive_extension/tests.py:470
Method
test_user_allowed_domains_override_defaults
User's allowed domains should override default blocklist.
apps/archive_extension/tests.py:329
Method
test_user_briefing_acquires_per_user_lock
(self, mock_redis_cls)
apps/briefing/tests.py:2132
Method
test_user_briefing_appends_debug_footer
( self, mock_redis_cls, mock_feed, mock_select, mock_summary,
apps/briefing/tests.py:2227
Method
test_user_briefing_filters_curated_sections
Regression test: disabled section keys should be remapped to top_stories in curated_sections.
apps/briefing/tests.py:2162
Method
test_user_briefing_full_pipeline
( self, mock_redis_cls, mock_feed, mock_select, mock_summary,
apps/briefing/tests.py:2029
Method
test_user_briefing_on_demand_deletes_lock
( self, mock_redis_cls, mock_feed, mock_select, mock_summary,
apps/briefing/tests.py:2275
Method
test_user_briefing_on_demand_publishes_events
( self, mock_redis_cls, mock_feed, mock_select, mock_summary,
apps/briefing/tests.py:2362
Method
test_user_briefing_scheduled_keeps_lock
( self, mock_redis_cls, mock_feed, mock_select, mock_summary,
apps/briefing/tests.py:2319
← previous
next →
5,501–5,600 of 5,735, ranked by callers