| apps / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / ai / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / ai / api.py |
handle_ai_errors |
|
3 |
0 |
0 |
|
100% |
| apps / ai / api.py |
handle_ai_errors.wrapper |
|
6 |
6 |
0 |
|
0% |
| apps / ai / api.py |
get_ai_status |
|
14 |
14 |
0 |
|
0% |
| apps / ai / api.py |
test_api_key |
|
4 |
4 |
0 |
|
0% |
| apps / ai / api.py |
save_api_key |
|
5 |
5 |
0 |
|
0% |
| apps / ai / api.py |
list_prompts |
|
2 |
2 |
0 |
|
0% |
| apps / ai / api.py |
get_prompt |
|
5 |
5 |
0 |
|
0% |
| apps / ai / api.py |
update_prompt |
|
25 |
25 |
0 |
|
0% |
| apps / ai / api.py |
list_models |
|
7 |
7 |
0 |
|
0% |
| apps / ai / api.py |
remix_suggestions |
|
10 |
10 |
0 |
|
0% |
| apps / ai / api.py |
create_remix_endpoint |
|
14 |
14 |
0 |
|
0% |
| apps / ai / api.py |
scale_recipe_endpoint |
|
20 |
20 |
0 |
|
0% |
| apps / ai / api.py |
tips_endpoint |
|
12 |
12 |
0 |
|
0% |
| apps / ai / api.py |
timer_name_endpoint |
|
6 |
6 |
0 |
|
0% |
| apps / ai / api.py |
discover_endpoint |
|
5 |
5 |
0 |
|
0% |
| apps / ai / api.py |
repair_selector_endpoint |
|
9 |
9 |
0 |
|
0% |
| apps / ai / api.py |
sources_needing_attention_endpoint |
|
2 |
2 |
0 |
|
0% |
| apps / ai / api.py |
(no function) |
|
169 |
0 |
0 |
|
100% |
| apps / ai / fixtures.py |
get_fixture |
|
4 |
4 |
0 |
|
0% |
| apps / ai / fixtures.py |
(no function) |
|
45 |
45 |
0 |
|
0% |
| apps / ai / models.py |
AIDiscoverySuggestion.__str__ |
|
1 |
1 |
0 |
|
0% |
| apps / ai / models.py |
AIPrompt.__str__ |
|
1 |
1 |
0 |
|
0% |
| apps / ai / models.py |
AIPrompt.format_user_prompt |
|
1 |
1 |
0 |
|
0% |
| apps / ai / models.py |
AIPrompt.get_prompt |
|
1 |
1 |
0 |
|
0% |
| apps / ai / models.py |
(no function) |
|
35 |
0 |
0 |
|
100% |
| apps / ai / services / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / ai / services / cache.py |
_make_cache_key |
|
4 |
4 |
0 |
|
0% |
| apps / ai / services / cache.py |
cache_ai_response |
|
3 |
0 |
0 |
|
100% |
| apps / ai / services / cache.py |
cache_ai_response.decorator |
|
2 |
0 |
0 |
|
100% |
| apps / ai / services / cache.py |
cache_ai_response.decorator.wrapper |
|
15 |
15 |
0 |
|
0% |
| apps / ai / services / cache.py |
invalidate_ai_cache |
|
2 |
2 |
0 |
|
0% |
| apps / ai / services / cache.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| apps / ai / services / discover.py |
get_discover_suggestions |
|
19 |
19 |
0 |
|
0% |
| apps / ai / services / discover.py |
_format_suggestions |
|
8 |
8 |
0 |
|
0% |
| apps / ai / services / discover.py |
_generate_seasonal_suggestions |
|
23 |
23 |
0 |
|
0% |
| apps / ai / services / discover.py |
_generate_recommended_suggestions |
|
24 |
24 |
0 |
|
0% |
| apps / ai / services / discover.py |
_generate_new_suggestions |
|
24 |
24 |
0 |
|
0% |
| apps / ai / services / discover.py |
_get_season |
|
8 |
8 |
0 |
|
0% |
| apps / ai / services / discover.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| apps / ai / services / openrouter.py |
OpenRouterService.__init__ |
|
6 |
1 |
0 |
|
83% |
| apps / ai / services / openrouter.py |
OpenRouterService._parse_json_response |
|
16 |
16 |
0 |
|
0% |
| apps / ai / services / openrouter.py |
OpenRouterService.complete |
|
17 |
17 |
0 |
|
0% |
| apps / ai / services / openrouter.py |
OpenRouterService.complete_async |
|
17 |
17 |
0 |
|
0% |
| apps / ai / services / openrouter.py |
OpenRouterService.is_available |
|
2 |
2 |
0 |
|
0% |
| apps / ai / services / openrouter.py |
OpenRouterService.get_available_models |
|
12 |
12 |
0 |
|
0% |
| apps / ai / services / openrouter.py |
OpenRouterService.test_connection |
|
10 |
10 |
0 |
|
0% |
| apps / ai / services / openrouter.py |
OpenRouterService.validate_key_cached |
|
18 |
18 |
0 |
|
0% |
| apps / ai / services / openrouter.py |
OpenRouterService.invalidate_key_cache |
|
1 |
1 |
0 |
|
0% |
| apps / ai / services / openrouter.py |
(no function) |
|
29 |
0 |
0 |
|
100% |
| apps / ai / services / ranking.py |
is_ranking_available |
|
5 |
5 |
0 |
|
0% |
| apps / ai / services / ranking.py |
_filter_valid |
|
1 |
0 |
0 |
|
100% |
| apps / ai / services / ranking.py |
_sort_by_image |
|
2 |
2 |
0 |
|
0% |
| apps / ai / services / ranking.py |
rank_results |
|
32 |
29 |
0 |
|
9% |
| apps / ai / services / ranking.py |
_apply_ranking |
|
12 |
12 |
0 |
|
0% |
| apps / ai / services / ranking.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| apps / ai / services / remix.py |
get_remix_suggestions |
|
9 |
9 |
0 |
|
0% |
| apps / ai / services / remix.py |
create_remix |
|
29 |
29 |
0 |
|
0% |
| apps / ai / services / remix.py |
estimate_nutrition |
|
15 |
15 |
0 |
|
0% |
| apps / ai / services / remix.py |
_parse_time |
|
13 |
13 |
0 |
|
0% |
| apps / ai / services / remix.py |
_parse_servings |
|
7 |
7 |
0 |
|
0% |
| apps / ai / services / remix.py |
_generate_tips_background |
|
13 |
13 |
0 |
|
0% |
| apps / ai / services / remix.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| apps / ai / services / scaling.py |
_parse_time |
|
12 |
12 |
0 |
|
0% |
| apps / ai / services / scaling.py |
_format_time |
|
9 |
9 |
0 |
|
0% |
| apps / ai / services / scaling.py |
scale_recipe |
|
33 |
33 |
0 |
|
0% |
| apps / ai / services / scaling.py |
calculate_nutrition |
|
20 |
20 |
0 |
|
0% |
| apps / ai / services / scaling.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| apps / ai / services / selector.py |
repair_selector |
|
21 |
21 |
0 |
|
0% |
| apps / ai / services / selector.py |
get_sources_needing_attention |
|
1 |
1 |
0 |
|
0% |
| apps / ai / services / selector.py |
repair_all_broken_selectors |
|
21 |
21 |
0 |
|
0% |
| apps / ai / services / selector.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| apps / ai / services / timer.py |
generate_timer_name |
|
18 |
18 |
0 |
|
0% |
| apps / ai / services / timer.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| apps / ai / services / tips.py |
generate_tips |
|
18 |
18 |
0 |
|
0% |
| apps / ai / services / tips.py |
clear_tips |
|
7 |
7 |
0 |
|
0% |
| apps / ai / services / tips.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| apps / ai / services / validator.py |
ValidationError.__init__ |
|
2 |
2 |
0 |
|
0% |
| apps / ai / services / validator.py |
AIResponseValidator.validate |
|
9 |
9 |
0 |
|
0% |
| apps / ai / services / validator.py |
AIResponseValidator._format_error |
|
21 |
21 |
0 |
|
0% |
| apps / ai / services / validator.py |
AIResponseValidator.get_schema |
|
1 |
1 |
0 |
|
0% |
| apps / ai / services / validator.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| apps / core / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / core / api.py |
health_check |
|
7 |
2 |
0 |
|
71% |
| apps / core / api.py |
get_reset_preview |
|
1 |
0 |
0 |
|
100% |
| apps / core / api.py |
reset_database |
|
35 |
6 |
0 |
|
83% |
| apps / core / api.py |
(no function) |
|
44 |
0 |
0 |
|
100% |
| apps / core / apps.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| apps / core / encryption.py |
_get_encryption_key |
|
3 |
3 |
0 |
|
0% |
| apps / core / encryption.py |
encrypt_value |
|
8 |
8 |
0 |
|
0% |
| apps / core / encryption.py |
decrypt_value |
|
14 |
12 |
0 |
|
14% |
| apps / core / encryption.py |
is_encrypted |
|
1 |
1 |
0 |
|
0% |
| apps / core / encryption.py |
(no function) |
|
14 |
4 |
0 |
|
71% |
| apps / core / middleware.py |
DeviceDetectionMiddleware.__init__ |
|
1 |
0 |
0 |
|
100% |
| apps / core / middleware.py |
DeviceDetectionMiddleware.__call__ |
|
2 |
0 |
0 |
|
100% |
| apps / core / middleware.py |
DeviceDetectionMiddleware._is_legacy_device |
|
18 |
0 |
0 |
|
100% |
| apps / core / middleware.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| apps / core / models.py |
AppSettings.save |
|
4 |
1 |
0 |
|
75% |
| apps / core / models.py |
AppSettings.get |
|
2 |
0 |
0 |
|
100% |
| apps / core / models.py |
AppSettings.openrouter_api_key |
|
1 |
0 |
0 |
|
100% |
| apps / core / models.py |
AppSettings.openrouter_api_key |
|
3 |
3 |
0 |
|
0% |
| apps / core / models.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| apps / legacy / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / legacy / apps.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| apps / legacy / templatetags / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / legacy / templatetags / legacy_tags.py |
format_time |
|
10 |
6 |
0 |
|
40% |
| apps / legacy / templatetags / legacy_tags.py |
in_list |
|
1 |
0 |
0 |
|
100% |
| apps / legacy / templatetags / legacy_tags.py |
format_nutrition_key |
|
7 |
2 |
0 |
|
71% |
| apps / legacy / templatetags / legacy_tags.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| apps / legacy / urls.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
require_profile |
|
3 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
require_profile.wrapper |
|
9 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
_is_ai_available |
|
5 |
2 |
0 |
|
60% |
| apps / legacy / views.py |
profile_selector |
|
2 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
home |
|
10 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
search |
|
4 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
recipe_detail |
|
22 |
2 |
0 |
|
91% |
| apps / legacy / views.py |
play_mode |
|
7 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
all_recipes |
|
4 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
favorites |
|
3 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
collections |
|
3 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
collection_detail |
|
5 |
0 |
0 |
|
100% |
| apps / legacy / views.py |
settings |
|
10 |
1 |
0 |
|
90% |
| apps / legacy / views.py |
(no function) |
|
28 |
0 |
0 |
|
100% |
| apps / profiles / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / profiles / api.py |
list_profiles |
|
7 |
2 |
0 |
|
71% |
| apps / profiles / api.py |
create_profile |
|
2 |
0 |
0 |
|
100% |
| apps / profiles / api.py |
get_profile |
|
1 |
0 |
0 |
|
100% |
| apps / profiles / api.py |
update_profile |
|
5 |
0 |
0 |
|
100% |
| apps / profiles / api.py |
get_deletion_preview |
|
15 |
15 |
0 |
|
0% |
| apps / profiles / api.py |
delete_profile |
|
18 |
9 |
0 |
|
50% |
| apps / profiles / api.py |
select_profile |
|
3 |
0 |
0 |
|
100% |
| apps / profiles / api.py |
(no function) |
|
70 |
0 |
0 |
|
100% |
| apps / profiles / apps.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| apps / profiles / models.py |
Profile.__str__ |
|
1 |
1 |
0 |
|
0% |
| apps / profiles / models.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| apps / profiles / utils.py |
get_current_profile |
|
7 |
2 |
0 |
|
71% |
| apps / profiles / utils.py |
get_current_profile_or_none |
|
7 |
2 |
0 |
|
71% |
| apps / profiles / utils.py |
aget_current_profile_or_none |
|
3 |
0 |
0 |
|
100% |
| apps / profiles / utils.py |
aget_current_profile_or_none._get_profile |
|
7 |
4 |
0 |
|
43% |
| apps / profiles / utils.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| apps / recipes / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / recipes / api.py |
RecipeOut.resolve_image |
|
3 |
1 |
0 |
|
67% |
| apps / recipes / api.py |
RecipeOut.resolve_scraped_at |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api.py |
RecipeOut.resolve_updated_at |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api.py |
RecipeOut.resolve_remixed_from_id |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api.py |
RecipeOut.resolve_linked_recipes |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api.py |
RecipeListOut.resolve_image |
|
3 |
1 |
0 |
|
67% |
| apps / recipes / api.py |
RecipeListOut.resolve_scraped_at |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api.py |
list_recipes |
|
9 |
0 |
0 |
|
100% |
| apps / recipes / api.py |
scrape_recipe |
|
15 |
0 |
0 |
|
100% |
| apps / recipes / api.py |
search_recipes |
|
19 |
0 |
0 |
|
100% |
| apps / recipes / api.py |
search_recipes.cache_in_background |
|
9 |
4 |
0 |
|
56% |
| apps / recipes / api.py |
cache_health |
|
6 |
6 |
0 |
|
0% |
| apps / recipes / api.py |
get_recipe |
|
17 |
7 |
0 |
|
59% |
| apps / recipes / api.py |
delete_recipe |
|
6 |
1 |
0 |
|
83% |
| apps / recipes / api.py |
(no function) |
|
109 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
FavoriteOut.resolve_created_at |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
list_favorites |
|
2 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
add_favorite |
|
7 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
remove_favorite |
|
4 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
CollectionItemOut.resolve_added_at |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
CollectionOut.resolve_recipe_count |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
CollectionOut.resolve_created_at |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
CollectionOut.resolve_updated_at |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
CollectionDetailOut.resolve_recipes |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
CollectionDetailOut.resolve_created_at |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
CollectionDetailOut.resolve_updated_at |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
list_collections |
|
2 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
create_collection |
|
6 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
get_collection |
|
3 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
update_collection |
|
9 |
2 |
0 |
|
78% |
| apps / recipes / api_user.py |
delete_collection |
|
4 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
add_recipe_to_collection |
|
10 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
remove_recipe_from_collection |
|
5 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
HistoryOut.resolve_viewed_at |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
list_history |
|
2 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
record_view |
|
5 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
clear_history |
|
3 |
0 |
0 |
|
100% |
| apps / recipes / api_user.py |
(no function) |
|
90 |
0 |
0 |
|
100% |
| apps / recipes / management / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / recipes / management / commands / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / recipes / management / commands / cleanup_search_images.py |
Command.add_arguments |
|
2 |
2 |
0 |
|
0% |
| apps / recipes / management / commands / cleanup_search_images.py |
Command.handle |
|
29 |
29 |
0 |
|
0% |
| apps / recipes / management / commands / cleanup_search_images.py |
(no function) |
|
10 |
10 |
0 |
|
0% |
| apps / recipes / models.py |
Recipe.__str__ |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / models.py |
SearchSource.__str__ |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / models.py |
RecipeFavorite.__str__ |
|
1 |
1 |
0 |
|
0% |
| apps / recipes / models.py |
RecipeCollection.__str__ |
|
1 |
1 |
0 |
|
0% |
| apps / recipes / models.py |
RecipeCollectionItem.__str__ |
|
1 |
1 |
0 |
|
0% |
| apps / recipes / models.py |
RecipeViewHistory.__str__ |
|
1 |
1 |
0 |
|
0% |
| apps / recipes / models.py |
CachedSearchImage.__str__ |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / models.py |
ServingAdjustment.__str__ |
|
1 |
1 |
0 |
|
0% |
| apps / recipes / models.py |
(no function) |
|
119 |
0 |
0 |
|
100% |
| apps / recipes / services / __init__.py |
(no function) |
|
2 |
0 |
0 |
|
100% |
| apps / recipes / services / fingerprint.py |
get_random_profile |
|
2 |
2 |
0 |
|
0% |
| apps / recipes / services / fingerprint.py |
get_random_delay |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / services / fingerprint.py |
get_fallback_profiles |
|
4 |
4 |
0 |
|
0% |
| apps / recipes / services / fingerprint.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| apps / recipes / services / image_cache.py |
SearchImageCache.cache_images |
|
6 |
0 |
0 |
|
100% |
| apps / recipes / services / image_cache.py |
SearchImageCache._download_and_save |
|
30 |
12 |
0 |
|
60% |
| apps / recipes / services / image_cache.py |
SearchImageCache._fetch_image |
|
14 |
0 |
0 |
|
100% |
| apps / recipes / services / image_cache.py |
SearchImageCache.get_cached_urls_batch |
|
9 |
0 |
0 |
|
100% |
| apps / recipes / services / image_cache.py |
SearchImageCache._generate_filename |
|
8 |
0 |
0 |
|
100% |
| apps / recipes / services / image_cache.py |
SearchImageCache._convert_to_jpeg |
|
16 |
0 |
0 |
|
100% |
| apps / recipes / services / image_cache.py |
SearchImageCache._is_image_url |
|
3 |
0 |
0 |
|
100% |
| apps / recipes / services / image_cache.py |
(no function) |
|
22 |
0 |
0 |
|
100% |
| apps / recipes / services / scraper.py |
RecipeScraper.__init__ |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / services / scraper.py |
RecipeScraper.scrape_url |
|
26 |
6 |
0 |
|
77% |
| apps / recipes / services / scraper.py |
RecipeScraper._generate_tips_background |
|
13 |
4 |
0 |
|
69% |
| apps / recipes / services / scraper.py |
RecipeScraper._fetch_html |
|
12 |
1 |
0 |
|
92% |
| apps / recipes / services / scraper.py |
RecipeScraper._parse_recipe |
|
10 |
0 |
0 |
|
100% |
| apps / recipes / services / scraper.py |
RecipeScraper._safe_get |
|
8 |
0 |
0 |
|
100% |
| apps / recipes / services / scraper.py |
RecipeScraper._safe_get_ingredient_groups |
|
7 |
2 |
0 |
|
71% |
| apps / recipes / services / scraper.py |
RecipeScraper._parse_time |
|
9 |
0 |
0 |
|
100% |
| apps / recipes / services / scraper.py |
RecipeScraper._parse_servings |
|
6 |
1 |
0 |
|
83% |
| apps / recipes / services / scraper.py |
RecipeScraper._parse_rating |
|
6 |
0 |
0 |
|
100% |
| apps / recipes / services / scraper.py |
RecipeScraper._parse_rating_count |
|
6 |
2 |
0 |
|
67% |
| apps / recipes / services / scraper.py |
RecipeScraper._download_image |
|
16 |
1 |
0 |
|
94% |
| apps / recipes / services / scraper.py |
RecipeScraper._convert_webp_to_jpeg |
|
17 |
12 |
0 |
|
29% |
| apps / recipes / services / scraper.py |
RecipeScraper._is_image_url |
|
3 |
0 |
0 |
|
100% |
| apps / recipes / services / scraper.py |
RecipeScraper._generate_image_filename |
|
2 |
0 |
0 |
|
100% |
| apps / recipes / services / scraper.py |
(no function) |
|
39 |
0 |
0 |
|
100% |
| apps / recipes / services / search.py |
RecipeSearch.__init__ |
|
1 |
0 |
0 |
|
100% |
| apps / recipes / services / search.py |
RecipeSearch.search |
|
35 |
0 |
0 |
|
100% |
| apps / recipes / services / search.py |
RecipeSearch._apply_ai_ranking |
|
7 |
3 |
0 |
|
57% |
| apps / recipes / services / search.py |
RecipeSearch._search_source |
|
10 |
1 |
0 |
|
90% |
| apps / recipes / services / search.py |
RecipeSearch._parse_search_results |
|
12 |
0 |
0 |
|
100% |
| apps / recipes / services / search.py |
RecipeSearch._find_link |
|
9 |
1 |
0 |
|
89% |
| apps / recipes / services / search.py |
RecipeSearch._extract_title |
|
9 |
4 |
0 |
|
56% |
| apps / recipes / services / search.py |
RecipeSearch._extract_rating |
|
10 |
2 |
0 |
|
80% |
| apps / recipes / services / search.py |
RecipeSearch._extract_image |
|
7 |
1 |
0 |
|
86% |
| apps / recipes / services / search.py |
RecipeSearch._extract_description |
|
4 |
0 |
0 |
|
100% |
| apps / recipes / services / search.py |
RecipeSearch._extract_result_from_element |
|
14 |
3 |
0 |
|
79% |
| apps / recipes / services / search.py |
RecipeSearch._fallback_parse |
|
22 |
9 |
0 |
|
59% |
| apps / recipes / services / search.py |
RecipeSearch._looks_like_recipe_url |
|
20 |
7 |
0 |
|
65% |
| apps / recipes / services / search.py |
RecipeSearch._record_failure |
|
4 |
0 |
0 |
|
100% |
| apps / recipes / services / search.py |
RecipeSearch._record_failure.update |
|
4 |
0 |
0 |
|
100% |
| apps / recipes / services / search.py |
RecipeSearch._record_success |
|
4 |
0 |
0 |
|
100% |
| apps / recipes / services / search.py |
RecipeSearch._record_success.update |
|
4 |
0 |
0 |
|
100% |
| apps / recipes / services / search.py |
(no function) |
|
39 |
0 |
0 |
|
100% |
| apps / recipes / sources_api.py |
SourceOut.resolve_last_validated_at |
|
3 |
3 |
0 |
|
0% |
| apps / recipes / sources_api.py |
list_sources |
|
2 |
2 |
0 |
|
0% |
| apps / recipes / sources_api.py |
enabled_count |
|
3 |
3 |
0 |
|
0% |
| apps / recipes / sources_api.py |
get_source |
|
5 |
5 |
0 |
|
0% |
| apps / recipes / sources_api.py |
toggle_source |
|
7 |
7 |
0 |
|
0% |
| apps / recipes / sources_api.py |
bulk_toggle_sources |
|
2 |
2 |
0 |
|
0% |
| apps / recipes / sources_api.py |
update_selector |
|
7 |
7 |
0 |
|
0% |
| apps / recipes / sources_api.py |
test_source |
|
28 |
28 |
0 |
|
0% |
| apps / recipes / sources_api.py |
test_all_sources |
|
31 |
31 |
0 |
|
0% |
| apps / recipes / sources_api.py |
(no function) |
|
57 |
0 |
0 |
|
100% |
| apps / recipes / utils.py |
decimal_to_fraction |
|
29 |
29 |
0 |
|
0% |
| apps / recipes / utils.py |
tidy_ingredient |
|
20 |
20 |
0 |
|
0% |
| apps / recipes / utils.py |
tidy_quantities |
|
1 |
1 |
0 |
|
0% |
| apps / recipes / utils.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| cookie / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| cookie / settings.py |
get_secret_key |
|
7 |
3 |
0 |
|
57% |
| cookie / settings.py |
(no function) |
|
37 |
2 |
0 |
|
95% |
| cookie / urls.py |
health |
|
1 |
0 |
0 |
|
100% |
| cookie / urls.py |
(no function) |
|
20 |
0 |
0 |
|
100% |
| cookie / wsgi.py |
(no function) |
|
4 |
4 |
0 |
|
0% |