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_blocks_medical_domains
Medical domains should be blocked.
apps/archive_extension/tests.py:248
Method
test_blocks_password_managers
Password manager domains should be blocked.
apps/archive_extension/tests.py:268
Method
test_both_unparseable_returns_first
(self)
apps/webfeed/tests.py:264
Method
test_briefing_generation_preference_is_bootstrapped_on_reload
(self)
apps/reader/tests.py:32
Method
test_cache_key_consistency__feed_validation
Test that invalid feed IDs don't affect cache key generation. This verifies the fix where we now use validated feed_ids consistently
apps/reader/test_river_stories.py:997
Method
test_cache_key_consistency__helper_method
Test that the get_river_cache_keys() helper method generates consistent cache keys regardless of feed list order. This is a
apps/reader/test_river_stories.py:925
Method
test_cache_key_consistency__large_feed_lists_do_not_collide
Large river feed lists that only differ after the first few ids must not share the same cache key.
apps/reader/test_river_stories.py:962
Method
test_cache_key_consistency__redis_pool
Test that feed_stories() and truncate_river() use the same Redis pool. This verifies the fix where we changed truncate_river() to us
apps/reader/test_river_stories.py:1035
Method
test_caches_token_with_ttl
(self, mock_post)
apps/rss_feeds/test_reddit_fetcher.py:271
Method
test_caps_at_max_comments
(self)
apps/rss_feeds/test_reddit_fetcher.py:374
Method
test_categories_excludes_deleted
Categories should not count deleted archives.
apps/archive_extension/tests.py:1142
Method
test_categories_requires_auth
Categories endpoint should require authentication.
apps/archive_extension/tests.py:1114
Method
test_categories_returns_breakdown
Categories should return category counts.
apps/archive_extension/tests.py:1120
Method
test_channel_feed_derives_uploads_playlist_without_channels_list
A UC channel id with a cached feed title needs no channels.list call.
apps/rss_feeds/test_rss_feeds.py:968
Method
test_channel_feed_resolves_channel_when_no_cached_title
Without a stored feed title, fall back to the channels.list lookup.
apps/rss_feeds/test_rss_feeds.py:987
Method
test_classifier_matches_feed
(self)
apps/briefing/tests.py:888
Method
test_classifier_matches_multiple
(self)
apps/briefing/tests.py:902
Method
test_classifier_weights_all_positive
(self)
apps/briefing/tests.py:1381
Method
test_classifier_weights_title_highest
(self)
apps/briefing/tests.py:1376
Method
test_cohort_dry_run_selects_only_grandfathered
(self)
apps/profile/test_profile.py:913
Method
test_collapses_newlines
(self)
newsblur_mcp/tests/test_transforms.py:30
Method
test_collect_statistics_sites_loaded_uses_latest_minute
last_1_min_time_taken should reflect the latest complete minute, not the oldest.
apps/statistics/tests.py:62
Method
test_comments_429_flags_rate_limited
(self, mock_get)
apps/rss_feeds/test_reddit_fetcher.py:401
Method
test_compact_user_subscription_folders
(self)
apps/reader/test_reader.py:218
Method
test_compact_user_subscription_folders2
(self)
apps/reader/test_reader.py:229
Method
test_compute_story_score_parity_across_scopes
compute_story_score returns identical results whether the caller passes flat classifier lists or ScopedClassifiers indexes.
apps/analyzer/tests.py:1676
Method
test_compute_story_score_positive_beats_regular_negative
Positive (+1) still beats regular negative (-1).
apps/analyzer/tests.py:1504
Method
test_compute_story_score_super_downvote_beats_positive
Super downvote (-2) beats any positive classifier (+1).
apps/analyzer/tests.py:1452
Method
test_compute_story_score_text_beats_title
(self)
apps/analyzer/tests.py:370
Method
test_compute_story_score_uses_author_regex_for_pro
compute_story_score should include author_regex score for Pro users
apps/analyzer/tests.py:1102
Method
test_compute_story_score_with_negative_author
(self)
apps/analyzer/tests.py:340
Method
test_compute_story_score_with_text
(self)
apps/analyzer/tests.py:310
Method
test_compute_story_score_with_title
(self)
apps/analyzer/tests.py:280
Method
test_concurrent_trial_to_premium_only_emails_once
Two Stripe webhooks fire activate_premium in parallel for the same trial→paid conversion. Only one should send the new-premium email and
apps/profile/test_profile.py:407
Method
test_connection_error_returns_empty
ES connection error should return empty list.
apps/search/tests.py:415
Method
test_contains_match_is_robust_to_reorder
(self)
apps/webfeed/tests.py:165
Method
test_content_compression_empty
Empty content should be handled gracefully.
apps/archive_extension/tests.py:444
Method
test_content_compression_roundtrip
Content should survive compression/decompression roundtrip.
apps/archive_extension/tests.py:431
Method
test_content_compression_unicode
Unicode content should survive compression.
apps/archive_extension/tests.py:453
Method
test_conversation_isolation
Conversations should be isolated per user.
apps/archive_assistant/tests.py:188
Method
test_conversations_requires_authentication
Conversations list should require authentication.
apps/archive_assistant/tests.py:157
Method
test_create_account
(self)
apps/profile/test_profile.py:23
Method
test_create_and_retrieve
(self)
apps/briefing/tests.py:1418
Method
test_create_classifier_author
(self)
apps/analyzer/tests.py:83
Method
test_create_classifier_author_exact
Test creating an exact author classifier (is_regex=False)
apps/analyzer/tests.py:897
Method
test_create_classifier_author_regex
Test creating a regex author classifier (is_regex=True)
apps/analyzer/tests.py:912
Method
test_create_classifier_tag
(self)
apps/analyzer/tests.py:95
Method
test_create_classifier_text
(self)
apps/analyzer/tests.py:69
Method
test_create_classifier_title
(self)
apps/analyzer/tests.py:55
Method
test_create_classifier_url_exact
Test creating an exact URL classifier (is_regex=False)
apps/analyzer/tests.py:596
Method
test_create_classifier_url_regex
Test creating a regex URL classifier (is_regex=True)
apps/analyzer/tests.py:613
Method
test_create_conversation
Should be able to create a new conversation.
apps/archive_assistant/tests.py:176
Method
test_creates_new_feed
(self, mock_redis_cls)
apps/briefing/tests.py:1484
Method
test_creates_new_story_and_briefing
(self, mock_redis_cls, mock_notif, mock_queue)
apps/briefing/tests.py:1523
Method
test_creates_subscription
(self, mock_redis_cls)
apps/briefing/tests.py:1502
Method
test_css_background_image_double_quoted
(self)
apps/webfeed/tests.py:189
Method
test_css_background_image_single_quoted
(self)
apps/webfeed/tests.py:185
Method
test_css_background_image_unquoted
(self)
apps/webfeed/tests.py:181
Method
test_custom_section_es_phrase_match
Custom section should use ES phrase search when available.
apps/briefing/tests.py:1257
Method
test_custom_section_es_reassigns_existing
ES match already in top N should get its category reassigned to custom_X.
apps/briefing/tests.py:1335
Method
test_custom_section_es_unavailable_fallback
Custom section should fall back to keyword matching when ES not indexed.
apps/briefing/tests.py:1298
Method
test_daily_briefing_email_subject_uses_story_title_without_feed_prefix
(self)
apps/notifications/tests.py:74
Method
test_daily_briefing_preference_defaults_true_in_reader_bootstrap
(self)
apps/reader/tests.py:26
Method
test_daily_totals
Daily totals return subscription counts per day.
apps/statistics/tests.py:242
Method
test_data_uri
(self)
apps/webfeed/tests.py:199
Method
test_date_stories_not_falsely_matched
Stories sharing only a date should not cluster.
apps/clustering/tests.py:539
Method
test_default_blocked_domains_count
Verify we have a reasonable number of default blocked domains.
apps/archive_extension/tests.py:321
Method
test_default_blocked_patterns_count
Verify we have blocked patterns for common sensitive pages.
apps/archive_extension/tests.py:325
Method
test_default_sections_values
(self)
apps/briefing/tests.py:1400
Method
test_default_values
(self)
apps/briefing/tests.py:1475
Method
test_defaults_to_new
(self)
apps/rss_feeds/test_reddit_fetcher.py:331
Method
test_delete_feed
(self)
apps/reader/test_reader.py:59
Method
test_delete_feed__multiple_folders
(self)
apps/reader/test_reader.py:118
Method
test_delete_feed_substring_folder
Deleting a feed from 'Tech' should not affect 'Deep Tech'.
apps/reader/test_reader.py:288
Method
test_delete_last_tag_on_story
Story remains saved with empty user_tags list.
apps/reader/tests.py:352
Method
test_delete_multiple_archives
Delete should handle multiple archives.
apps/archive_extension/tests.py:1299
Method
test_delete_nonexistent_archive
Delete should handle nonexistent archive gracefully.
apps/archive_extension/tests.py:1312
Method
test_delete_other_users_archive
Delete should not delete other user's archives.
apps/archive_extension/tests.py:1323
Method
test_delete_requires_auth
Delete endpoint should require authentication.
apps/archive_extension/tests.py:1272
Method
test_delete_single_archive
Delete should soft-delete a single archive.
apps/archive_extension/tests.py:1281
Method
test_delete_tag_empty_name_fails
Validation: can't delete empty tag name.
apps/reader/tests.py:343
Method
test_delete_tag_removes_count
MStarredStoryCounts entry deleted.
apps/reader/tests.py:319
Method
test_delete_tag_removes_from_all_stories
Tag removed from user_tags list.
apps/reader/tests.py:287
Method
test_delete_tag_requires_auth
Ensure endpoint requires login.
apps/reader/tests.py:333
Method
test_delete_tag_stories_remain_saved
Stories still exist as starred, just without the tag.
apps/reader/tests.py:306
Method
test_detailed_metrics
Detailed metrics include weighted score and raw counts.
apps/statistics/tests.py:218
Method
test_direct_image_post
(self)
apps/rss_feeds/test_reddit_fetcher.py:449
Method
test_does_not_store_when_shorter
Should not store when extension content is shorter.
apps/archive_extension/tests.py:410
Method
test_domain_extraction_various_formats
Domain extraction should handle various URL formats.
apps/archive_extension/tests.py:484
Method
test_domains_includes_last_visit
Domains should include last_visit timestamp.
apps/archive_extension/tests.py:1196
Method
test_domains_requires_auth
Domains endpoint should require authentication.
apps/archive_extension/tests.py:1164
Method
test_domains_respects_limit
Domains should respect limit parameter.
apps/archive_extension/tests.py:1186
Method
test_domains_returns_top_domains
Domains should return domain list with counts.
apps/archive_extension/tests.py:1170
Method
test_double_s_preserved
(self)
apps/clustering/tests.py:51
Method
test_dry_run_makes_no_writes_or_switch
(self, mock_switch)
apps/profile/test_profile.py:972
Method
test_duplicate_feeds
(self)
apps/feed_import/test_feed_import.py:173
Method
test_embed_briefing_icons_adds_newsblur_and_original_links
(self)
apps/briefing/tests.py:755
Method
test_embed_none_html
(self)
apps/briefing/tests.py:679
Method
test_empty
(self)
apps/clustering/tests.py:23
Method
test_empty_feed_ids_returns_empty
Empty feed_ids should return empty list without calling ES.
apps/search/tests.py:392
← previous
next →
4,901–5,000 of 5,735, ranked by callers