[ "tests/test_app.py::TestAppPlanner::test_app_name_contains_meaningful_words", "tests/test_app.py::TestAppPlanner::test_app_name_falls_back_when_only_stop_words", "tests/test_app.py::TestAppPlanner::test_app_name_is_slugified", "tests/test_app.py::TestAppPlanner::test_chatbot_matches_chatbot_template", "tests/test_app.py::TestAppPlanner::test_plan_components_is_list", "tests/test_app.py::TestAppPlanner::test_plan_has_required_key[app_name]", "tests/test_app.py::TestAppPlanner::test_plan_has_required_key[app_type]", "tests/test_app.py::TestAppPlanner::test_plan_has_required_key[components]", "tests/test_app.py::TestAppPlanner::test_plan_has_required_key[description]", "tests/test_app.py::TestAppPlanner::test_plan_has_required_key[model_task]", "tests/test_app.py::TestAppPlanner::test_plan_has_required_key[original_prompt]", "tests/test_app.py::TestAppPlanner::test_plan_has_required_key[sdk]", "tests/test_app.py::TestAppPlanner::test_plan_has_required_key[template_key]", "tests/test_app.py::TestAppPlanner::test_plan_has_required_key[title]", "tests/test_app.py::TestAppPlanner::test_portfolio_matches_template", "tests/test_app.py::TestAppPlanner::test_rest_api_matches_template", "tests/test_app.py::TestAppPlanner::test_sdk_auto_selects_docker_for_api_service", "tests/test_app.py::TestAppPlanner::test_sdk_auto_selects_gradio_for_chatbot", "tests/test_app.py::TestAppPlanner::test_sdk_auto_selects_gradio_for_image_classifier", "tests/test_app.py::TestAppPlanner::test_sdk_auto_selects_static_for_landing_page", "tests/test_app.py::TestAppPlanner::test_sdk_defaults_to_gradio_when_no_signal", "tests/test_app.py::TestAppPlanner::test_sdk_preference_overrides_auto", "tests/test_app.py::TestAppPlanner::test_sentiment_matches_template", "tests/test_app.py::TestAppPlanner::test_summarizer_matches_template", "tests/test_app.py::TestCodeChecker::test_dangerous_pattern_warned", "tests/test_app.py::TestCodeChecker::test_docker_missing_dockerfile_is_error", "tests/test_app.py::TestCodeChecker::test_dockerfile_missing_cmd_is_error", "tests/test_app.py::TestCodeChecker::test_dockerfile_missing_expose_is_warning", "tests/test_app.py::TestCodeChecker::test_dockerfile_missing_from_is_error", "tests/test_app.py::TestCodeChecker::test_empty_file_flagged", "tests/test_app.py::TestCodeChecker::test_eval_warned", "tests/test_app.py::TestCodeChecker::test_gradio_missing_app_py_is_error", "tests/test_app.py::TestCodeChecker::test_html_missing_tags_warned", "tests/test_app.py::TestCodeChecker::test_invalid_python_syntax_caught", "tests/test_app.py::TestCodeChecker::test_overall_valid_when_no_errors", "tests/test_app.py::TestCodeChecker::test_readme_missing_frontmatter_warned", "tests/test_app.py::TestCodeChecker::test_static_missing_index_html_is_error", "tests/test_app.py::TestCodeChecker::test_valid_dockerfile_passes", "tests/test_app.py::TestCodeChecker::test_valid_html_passes", "tests/test_app.py::TestCodeChecker::test_valid_python_passes", "tests/test_app.py::TestDockerGenerator::test_app_py_is_valid_python", "tests/test_app.py::TestDockerGenerator::test_docker_template_app_py_is_valid_python[generic_docker]", "tests/test_app.py::TestDockerGenerator::test_docker_template_app_py_is_valid_python[rest_api]", "tests/test_app.py::TestDockerGenerator::test_dockerfile_exposes_7860", "tests/test_app.py::TestDockerGenerator::test_dockerfile_has_cmd", "tests/test_app.py::TestDockerGenerator::test_dockerfile_has_from", "tests/test_app.py::TestDockerGenerator::test_generate_produces_app_py", "tests/test_app.py::TestDockerGenerator::test_generate_produces_dockerfile", "tests/test_app.py::TestDockerGenerator::test_generate_produces_requirements", "tests/test_app.py::TestDockerGenerator::test_generic_docker_fallback", "tests/test_app.py::TestDockerGenerator::test_parse_files_empty_returns_empty", "tests/test_app.py::TestDockerGenerator::test_parse_files_marker_format", "tests/test_app.py::TestEndToEnd::test_chatbot_e2e", "tests/test_app.py::TestEndToEnd::test_image_classifier_e2e", "tests/test_app.py::TestEndToEnd::test_portfolio_e2e", "tests/test_app.py::TestEndToEnd::test_rest_api_e2e", "tests/test_app.py::TestEndToEnd::test_summarizer_small_model_e2e", "tests/test_app.py::TestFastAPIApp::test_download_nonexistent_project_returns_404", "tests/test_app.py::TestFastAPIApp::test_edit_nonexistent_project_returns_404", "tests/test_app.py::TestFastAPIApp::test_get_file_nonexistent_project_returns_404", "tests/test_app.py::TestFastAPIApp::test_home_contains_title", "tests/test_app.py::TestFastAPIApp::test_home_returns_200", "tests/test_app.py::TestFastAPIApp::test_post_generate_contains_file_content", "tests/test_app.py::TestFastAPIApp::test_post_generate_returns_html", "tests/test_app.py::TestGradioGenerator::test_extract_code_from_markdown_block", "tests/test_app.py::TestGradioGenerator::test_extract_code_plain_python", "tests/test_app.py::TestGradioGenerator::test_fallback_template_produces_valid_python[chatbot]", "tests/test_app.py::TestGradioGenerator::test_fallback_template_produces_valid_python[image_classifier]", "tests/test_app.py::TestGradioGenerator::test_fallback_template_produces_valid_python[question_answering]", "tests/test_app.py::TestGradioGenerator::test_fallback_template_produces_valid_python[sentiment_analyzer]", "tests/test_app.py::TestGradioGenerator::test_fallback_template_produces_valid_python[text_generator]", "tests/test_app.py::TestGradioGenerator::test_fallback_template_produces_valid_python[text_summarizer]", "tests/test_app.py::TestGradioGenerator::test_fallback_template_produces_valid_python[translator]", "tests/test_app.py::TestGradioGenerator::test_generate_produces_valid_python_chatbot", "tests/test_app.py::TestGradioGenerator::test_generate_produces_valid_python_image_classifier", "tests/test_app.py::TestGradioGenerator::test_generate_produces_valid_python_qa", "tests/test_app.py::TestGradioGenerator::test_generate_produces_valid_python_sentiment", "tests/test_app.py::TestGradioGenerator::test_generate_produces_valid_python_summarizer", "tests/test_app.py::TestGradioGenerator::test_generate_produces_valid_python_text_gen", "tests/test_app.py::TestGradioGenerator::test_generate_produces_valid_python_translator", "tests/test_app.py::TestGradioGenerator::test_generated_code_contains_gradio_import", "tests/test_app.py::TestGradioGenerator::test_generated_code_contains_launch", "tests/test_app.py::TestGradioGenerator::test_generic_fallback_for_unknown_template", "tests/test_app.py::TestModelRecommender::test_catalog_task_has_all_sizes[automatic-speech-recognition]", "tests/test_app.py::TestModelRecommender::test_catalog_task_has_all_sizes[image-classification]", "tests/test_app.py::TestModelRecommender::test_catalog_task_has_all_sizes[object-detection]", "tests/test_app.py::TestModelRecommender::test_catalog_task_has_all_sizes[question-answering]", "tests/test_app.py::TestModelRecommender::test_catalog_task_has_all_sizes[summarization]", "tests/test_app.py::TestModelRecommender::test_catalog_task_has_all_sizes[text-classification]", "tests/test_app.py::TestModelRecommender::test_catalog_task_has_all_sizes[text-generation]", "tests/test_app.py::TestModelRecommender::test_catalog_task_has_all_sizes[text-to-image]", "tests/test_app.py::TestModelRecommender::test_catalog_task_has_all_sizes[token-classification]", "tests/test_app.py::TestModelRecommender::test_catalog_task_has_all_sizes[translation]", "tests/test_app.py::TestModelRecommender::test_different_tasks_produce_different_models", "tests/test_app.py::TestModelRecommender::test_get_primary_model_none_for_missing_task", "tests/test_app.py::TestModelRecommender::test_get_primary_model_returns_string", "tests/test_app.py::TestModelRecommender::test_invalid_size_falls_back_to_medium", "tests/test_app.py::TestModelRecommender::test_large_models_recommend_gpu", "tests/test_app.py::TestModelRecommender::test_large_size_returns_models", "tests/test_app.py::TestModelRecommender::test_no_task_returns_empty", "tests/test_app.py::TestModelRecommender::test_recommend_returns_list", "tests/test_app.py::TestModelRecommender::test_recommended_models_have_id", "tests/test_app.py::TestModelRecommender::test_recommended_models_have_required_fields", "tests/test_app.py::TestModelRecommender::test_small_and_large_return_different_models", "tests/test_app.py::TestModelRecommender::test_small_size_returns_models", "tests/test_app.py::TestModelRecommender::test_summarization_vs_translation", "tests/test_app.py::TestReadmeGenerator::test_docker_readme_mentions_fastapi", "tests/test_app.py::TestReadmeGenerator::test_frontmatter_contains_sdk_docker", "tests/test_app.py::TestReadmeGenerator::test_frontmatter_contains_sdk_gradio", "tests/test_app.py::TestReadmeGenerator::test_frontmatter_contains_sdk_static", "tests/test_app.py::TestReadmeGenerator::test_frontmatter_contains_title", "tests/test_app.py::TestReadmeGenerator::test_readme_contains_app_name_in_body", "tests/test_app.py::TestReadmeGenerator::test_readme_contains_description", "tests/test_app.py::TestReadmeGenerator::test_readme_contains_features_section", "tests/test_app.py::TestReadmeGenerator::test_readme_contains_model_reference", "tests/test_app.py::TestReadmeGenerator::test_readme_contains_tech_stack", "tests/test_app.py::TestReadmeGenerator::test_readme_has_yaml_frontmatter", "tests/test_app.py::TestReadmeGenerator::test_static_readme_mentions_html", "tests/test_app.py::TestRepoGenerator::test_docker_repo_has_app_py", "tests/test_app.py::TestRepoGenerator::test_docker_repo_has_dockerfile", "tests/test_app.py::TestRepoGenerator::test_docker_repo_has_readme", "tests/test_app.py::TestRepoGenerator::test_docker_repo_has_requirements", "tests/test_app.py::TestRepoGenerator::test_gradio_chart_component_includes_matplotlib", "tests/test_app.py::TestRepoGenerator::test_gradio_image_task_includes_pillow", "tests/test_app.py::TestRepoGenerator::test_gradio_repo_has_app_py", "tests/test_app.py::TestRepoGenerator::test_gradio_repo_has_gitignore", "tests/test_app.py::TestRepoGenerator::test_gradio_repo_has_readme", "tests/test_app.py::TestRepoGenerator::test_gradio_repo_has_requirements_txt", "tests/test_app.py::TestRepoGenerator::test_static_index_contains_title", "tests/test_app.py::TestRepoGenerator::test_static_repo_has_index_html", "tests/test_app.py::TestRepoGenerator::test_static_repo_has_readme", "tests/test_app.py::TestRepoGenerator::test_static_repo_has_style_css" ]