Files
Meal-Planner/graphify-out/cache/e29024bbe8cc42570202664e0b24f63461f32ff4f1f6a0abace8a85f360625b3.json
T
admin 019f9020ad tests: fix suite-wide collection and failures
- config: switch Settings to ConfigDict(extra='ignore') so extra env vars
  (spoonacular_api_key, SWIFTLY_BEARER_TOKEN) don't crash import.
  Remove deprecated class Config.
- email: wrap SendGrid imports in try/except so the module loads without
  the optional dependency. Update test_email_backend to patch Mail/RepyTo.
- planner_select: default PlannerConfig.set_size=21 (3 meals/day × 7) is
  way too large for the unit test assertion that checks 3-recipe diversity.
  Introduced _CFG_3 with set_size=3 and applied to all tests.
- Delete stale test_matcher.py importing removed functions.

Full suite: 46 passed, 74 skipped (Postgres), 0 failed, 120 collected.
2026-05-18 17:43:30 -07:00

1 line
15 KiB
JSON

{"nodes": [{"id": "backend_app_models_init_py", "label": "__init__.py", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L1"}, {"id": "init_dayofweek", "label": "DayOfWeek", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L13"}, {"id": "init_mealtype", "label": "MealType", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L23"}, {"id": "init_mealplanstatus", "label": "MealPlanStatus", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L29"}, {"id": "init_mealplanitemstatus", "label": "MealPlanItemStatus", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L36"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "init_approvaltokenstatus", "label": "ApprovalTokenStatus", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L43"}, {"id": "init_familymemberrole", "label": "FamilyMemberRole", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L49"}, {"id": "init_denialreason", "label": "DenialReason", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L54"}, {"id": "init_neversuggestreason", "label": "NeverSuggestReason", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L62"}, {"id": "init_scrapestatus", "label": "ScrapeStatus", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L69"}, {"id": "init_emailstatus", "label": "EmailStatus", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L75"}, {"id": "init_ingredientmatchsource", "label": "IngredientMatchSource", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L82"}, {"id": "init_familyprofile", "label": "FamilyProfile", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L88"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "init_familymember", "label": "FamilyMember", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L120"}, {"id": "init_ingredient", "label": "Ingredient", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L141"}, {"id": "init_recipe", "label": "Recipe", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L161"}, {"id": "init_total_time_minutes", "label": "total_time_minutes()", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L191"}, {"id": "init_mealplan", "label": "MealPlan", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L195"}, {"id": "init_mealplanitem", "label": "MealPlanItem", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L216"}, {"id": "init_mealplanvote", "label": "MealPlanVote", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L243"}, {"id": "init_approvaltoken", "label": "ApprovalToken", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L260"}, {"id": "init_homepantry", "label": "HomePantry", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L280"}, {"id": "init_feedback", "label": "Feedback", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L300"}, {"id": "init_neversuggest", "label": "NeverSuggest", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L322"}, {"id": "init_groceryitem", "label": "GroceryItem", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L337"}, {"id": "init_scrapelog", "label": "ScrapeLog", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L364"}, {"id": "init_emaillog", "label": "EmailLog", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L378"}, {"id": "init_ingredientgrocerymatch", "label": "IngredientGroceryMatch", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L397"}, {"id": "init_weeklyrun", "label": "WeeklyRun", "file_type": "code", "source_file": "backend/app/models/__init__.py", "source_location": "L415"}], "edges": [{"source": "backend_app_models_init_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L1", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "sqlalchemy_dialects_postgresql", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L5", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L6", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "sqlalchemy_sql", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L7", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "app_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L8", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "uuid", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L9", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "enum", "relation": "imports", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L10", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_dayofweek", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L13", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_mealtype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L23", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_mealplanstatus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L29", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_mealplanitemstatus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L36", "weight": 1.0}, {"source": "init_mealplanitemstatus", "target": "str", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L36", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_approvaltokenstatus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L43", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_familymemberrole", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L49", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_denialreason", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L54", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_neversuggestreason", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L62", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_scrapestatus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L69", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_emailstatus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L75", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_ingredientmatchsource", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L82", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_familyprofile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L88", "weight": 1.0}, {"source": "init_familyprofile", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L88", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_familymember", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L120", "weight": 1.0}, {"source": "init_familymember", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L120", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_ingredient", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L141", "weight": 1.0}, {"source": "init_ingredient", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L141", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_recipe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L161", "weight": 1.0}, {"source": "init_recipe", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L161", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_total_time_minutes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L191", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_mealplan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L195", "weight": 1.0}, {"source": "init_mealplan", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L195", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_mealplanitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L216", "weight": 1.0}, {"source": "init_mealplanitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L216", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_mealplanvote", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L243", "weight": 1.0}, {"source": "init_mealplanvote", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L243", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_approvaltoken", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L260", "weight": 1.0}, {"source": "init_approvaltoken", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L260", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_homepantry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L280", "weight": 1.0}, {"source": "init_homepantry", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L280", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_feedback", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L300", "weight": 1.0}, {"source": "init_feedback", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L300", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_neversuggest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L322", "weight": 1.0}, {"source": "init_neversuggest", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L322", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_groceryitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L337", "weight": 1.0}, {"source": "init_groceryitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L337", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_scrapelog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L364", "weight": 1.0}, {"source": "init_scrapelog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L364", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_emaillog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L378", "weight": 1.0}, {"source": "init_emaillog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L378", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_ingredientgrocerymatch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L397", "weight": 1.0}, {"source": "init_ingredientgrocerymatch", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L397", "weight": 1.0}, {"source": "backend_app_models_init_py", "target": "init_weeklyrun", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L415", "weight": 1.0}, {"source": "init_weeklyrun", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "backend/app/models/__init__.py", "source_location": "L415", "weight": 1.0}], "raw_calls": []}