Coverage report: 85%

Files Functions Classes

coverage.py v7.14.0, created at 2026-05-13 23:42 +0000

File function   statements missing excluded   coverage
product_risk_suite / manage.py main   6 2 0   67%
product_risk_suite / manage.py (no function)   5 0 0   100%
product_risk_suite / product / __init__.py (no function)   0 0 0   100%
product_risk_suite / product / admin.py ProductRiskAnalysisAdmin.n_entries   1 1 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.get_form   5 5 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.formfield_for_manytomany   17 17 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.risk_Id   1 1 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.risk_title   1 1 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.risk_asset   1 1 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.risk_origin   1 1 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.risk_stride   1 1 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.risk_accepted   1 1 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.tm_linked   1 1 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.risk_initial   1 1 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.risk_mitigated   1 1 0   0%
product_risk_suite / product / admin.py ProductRiskEntryAdmin.risk_after_mitigation   3 3 0   0%
product_risk_suite / product / admin.py (no function)   45 0 0   100%
product_risk_suite / product / apps.py (no function)   3 0 0   100%
product_risk_suite / product / migrations / 0001_initial.py (no function)   6 0 0   100%
product_risk_suite / product / migrations / 0002_alter_product_analyzes_and_more.py (no function)   4 0 0   100%
product_risk_suite / product / migrations / 0003_productriskentry_svg_id_alter_product_slug_and_more.py (no function)   4 0 0   100%
product_risk_suite / product / migrations / 0004_alter_product_options.py (no function)   4 0 0   100%
product_risk_suite / product / migrations / __init__.py (no function)   0 0 0   100%
product_risk_suite / product / models.py ProductRiskEntry.__str__   6 0 0   100%
product_risk_suite / product / models.py ProductRiskEntry.list_svg_ids   1 1 0   0%
product_risk_suite / product / models.py ProductRiskAnalysis.__str__   1 0 0   100%
product_risk_suite / product / models.py ProductRiskAnalysis.get_risk_summary   22 0 0   100%
product_risk_suite / product / models.py Product.__str__   1 0 0   100%
product_risk_suite / product / models.py (no function)   33 0 0   100%
product_risk_suite / product / templatetags / __init__.py (no function)   0 0 0   100%
product_risk_suite / product / templatetags / extras.py subtract   3 3 0   0%
product_risk_suite / product / templatetags / extras.py get   4 4 0   0%
product_risk_suite / product / templatetags / extras.py (no function)   6 0 0   100%
product_risk_suite / product / tests.py ProductRiskEntryTest.setUp   23 0 0   100%
product_risk_suite / product / tests.py ProductRiskEntryTest.test_product_risk_entry_str   10 0 0   100%
product_risk_suite / product / tests.py ProductRiskAnalysisTest.setUp   29 0 0   100%
product_risk_suite / product / tests.py ProductRiskAnalysisTest.test_str   4 0 0   100%
product_risk_suite / product / tests.py ProductRiskAnalysisTest.test_get_risk_summary   19 0 0   100%
product_risk_suite / product / tests.py ProductTest.setUp   1 0 0   100%
product_risk_suite / product / tests.py ProductTest.test_str   2 0 0   100%
product_risk_suite / product / tests.py (no function)   18 0 0   100%
product_risk_suite / product / urls.py (no function)   3 0 0   100%
product_risk_suite / product / views.py product_index   3 3 0   0%
product_risk_suite / product / views.py product   4 4 0   0%
product_risk_suite / product / views.py product_analysis   7 7 0   0%
product_risk_suite / product / views.py (no function)   18 0 0   100%
product_risk_suite / product_risk_suite / __init__.py (no function)   0 0 0   100%
product_risk_suite / product_risk_suite / asgi.py (no function)   4 4 0   0%
product_risk_suite / product_risk_suite / settings.py (no function)   34 2 0   94%
product_risk_suite / product_risk_suite / tests.py (no function)   3 0 0   100%
product_risk_suite / product_risk_suite / urls.py (no function)   10 0 0   100%
product_risk_suite / product_risk_suite / views.py showLogin   4 4 0   0%
product_risk_suite / product_risk_suite / views.py login_view   14 14 0   0%
product_risk_suite / product_risk_suite / views.py logout_view   3 3 0   0%
product_risk_suite / product_risk_suite / views.py (no function)   8 0 0   100%
product_risk_suite / product_risk_suite / wsgi.py (no function)   4 4 0   0%
product_risk_suite / risk_assessment / __init__.py (no function)   0 0 0   100%
product_risk_suite / risk_assessment / admin.py SecurityRequirementAdmin.norm   1 1 0   0%
product_risk_suite / risk_assessment / admin.py SecurityRequirementAdmin.short   1 1 0   0%
product_risk_suite / risk_assessment / admin.py SecurityRequirementAdmin.description   1 1 0   0%
product_risk_suite / risk_assessment / admin.py StrideAdmin.stride   1 1 0   0%
product_risk_suite / risk_assessment / admin.py RiskAdmin.stride_str   1 1 0   0%
product_risk_suite / risk_assessment / admin.py RiskRatingAdmin.risk_str   1 1 0   0%
product_risk_suite / risk_assessment / admin.py (no function)   58 0 0   100%
product_risk_suite / risk_assessment / apps.py (no function)   3 0 0   100%
product_risk_suite / risk_assessment / migrations / 0001_initial.py (no function)   8 0 0   100%
product_risk_suite / risk_assessment / migrations / 0002_evidence_evidence_link.py (no function)   4 0 0   100%
product_risk_suite / risk_assessment / migrations / 0003_alter_stride_name.py (no function)   4 0 0   100%
product_risk_suite / risk_assessment / migrations / 0004_alter_securityrequirement_slug.py (no function)   4 0 0   100%
product_risk_suite / risk_assessment / migrations / 0005_riskmitigation_title.py (no function)   4 0 0   100%
product_risk_suite / risk_assessment / migrations / 0006_likelihoodexample_severityexample_and_more.py (no function)   5 0 0   100%
product_risk_suite / risk_assessment / migrations / 0007_suggestedmitigationvalidation_and_more.py (no function)   5 0 0   100%
product_risk_suite / risk_assessment / migrations / 0008_alter_risk_suggested_mitigation_validation.py (no function)   5 0 0   100%
product_risk_suite / risk_assessment / migrations / __init__.py (no function)   0 0 0   100%
product_risk_suite / risk_assessment / models.py Asset.__str__   1 0 0   100%
product_risk_suite / risk_assessment / models.py LiveCycle.__str__   1 0 0   100%
product_risk_suite / risk_assessment / models.py Origin.__str__   1 0 0   100%
product_risk_suite / risk_assessment / models.py SecurityRequirement.__str__   1 0 0   100%
product_risk_suite / risk_assessment / models.py Stride.__str__   1 0 0   100%
product_risk_suite / risk_assessment / models.py Stride.save   2 0 0   100%
product_risk_suite / risk_assessment / models.py Stride.clean   3 0 0   100%
product_risk_suite / risk_assessment / models.py SuggestedMitigationValidation.__str__   1 1 0   0%
product_risk_suite / risk_assessment / models.py Risk.__str__   1 1 0   0%
product_risk_suite / risk_assessment / models.py Risk.stride_str   2 0 0   100%
product_risk_suite / risk_assessment / models.py Risk.list_stride   1 0 0   100%
product_risk_suite / risk_assessment / models.py SeverityName.to_human_str   8 1 0   88%
product_risk_suite / risk_assessment / models.py SeverityExample.__str__   1 1 0   0%
product_risk_suite / risk_assessment / models.py LikelihoodName.to_human_str   8 1 0   88%
product_risk_suite / risk_assessment / models.py LikelihoodExample.__str__   1 1 0   0%
product_risk_suite / risk_assessment / models.py _RiskRating__loo_help_list   5 0 0   100%
product_risk_suite / risk_assessment / models.py _RiskRating__sev_help_list   5 0 0   100%
product_risk_suite / risk_assessment / models.py RiskRating.risk_level   5 0 0   100%
product_risk_suite / risk_assessment / models.py RiskRating.risk_level_to_color   8 0 0   100%
product_risk_suite / risk_assessment / models.py RiskRating.color_class   5 0 0   100%
product_risk_suite / risk_assessment / models.py RiskRating.risk_color_class   1 0 0   100%
product_risk_suite / risk_assessment / models.py RiskRating.calc_risk   1 0 0   100%
product_risk_suite / risk_assessment / models.py RiskRating.risk   1 0 0   100%
product_risk_suite / risk_assessment / models.py RiskRating.__str__   1 0 0   100%
product_risk_suite / risk_assessment / models.py RiskRating.color_likelihood_of_occurrence   1 0 0   100%
product_risk_suite / risk_assessment / models.py RiskRating.color_severity_of_impact   1 0 0   100%
product_risk_suite / risk_assessment / models.py RiskRating.color_risk   1 0 0   100%
product_risk_suite / risk_assessment / models.py Status.__str__   1 0 0   100%
product_risk_suite / risk_assessment / models.py Status.is_todo   1 0 0   100%
product_risk_suite / risk_assessment / models.py Status.web_idx_name   6 0 0   100%
product_risk_suite / risk_assessment / models.py Status.save   2 0 0   100%
product_risk_suite / risk_assessment / models.py Status.clean   3 0 0   100%
product_risk_suite / risk_assessment / models.py Evidence.__str__   5 0 0   100%
product_risk_suite / risk_assessment / models.py Evidence.color_due_date   6 0 0   100%
product_risk_suite / risk_assessment / models.py RiskMitigation.list_security_requirements   1 0 0   100%
product_risk_suite / risk_assessment / models.py RiskMitigation.__str__   3 0 0   100%
product_risk_suite / risk_assessment / models.py (no function)   140 0 0   100%
product_risk_suite / risk_assessment / tests.py AssetTest.test_simple   3 0 0   100%
product_risk_suite / risk_assessment / tests.py AssetTest.test_unique   7 0 0   100%
product_risk_suite / risk_assessment / tests.py AssetTest.test_str   2 0 0   100%
product_risk_suite / risk_assessment / tests.py LiveCycleTest.test_simple   3 0 0   100%
product_risk_suite / risk_assessment / tests.py LiveCycleTest.test_unique   7 0 0   100%
product_risk_suite / risk_assessment / tests.py LiveCycleTest.test_str   2 0 0   100%
product_risk_suite / risk_assessment / tests.py OriginTest.test_simple   3 0 0   100%
product_risk_suite / risk_assessment / tests.py OriginTest.test_unique   7 0 0   100%
product_risk_suite / risk_assessment / tests.py OriginTest.test_str   2 0 0   100%
product_risk_suite / risk_assessment / tests.py SecurityRequirementTest.test_simple   3 0 0   100%
product_risk_suite / risk_assessment / tests.py SecurityRequirementTest.test_unique   7 0 0   100%
product_risk_suite / risk_assessment / tests.py SecurityRequirementTest.test_str   2 0 0   100%
product_risk_suite / risk_assessment / tests.py StrideTest.test_simple   3 0 0   100%
product_risk_suite / risk_assessment / tests.py StrideTest.test_no_create_unallowed   6 0 0   100%
product_risk_suite / risk_assessment / tests.py StrideTest.test_unique   9 2 0   78%
product_risk_suite / risk_assessment / tests.py StrideTest.test_str   4 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskTest.setUp   7 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskTest.test_simple   10 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskTest.test_stride_str   3 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskTest.test_list_strid   3 0 0   100%
product_risk_suite / risk_assessment / tests.py SeverityNameTest.test_human_str   4 0 0   100%
product_risk_suite / risk_assessment / tests.py LikelihoodNameTest.test_human_str   4 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskRatingTest.setUp   1 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskRatingTest.test_risk   2 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskRatingTest.test_risk_level   3 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskRatingTest.test_risk_level_to_color   3 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskRatingTest.test_color_class   4 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskRatingTest.test_risk_color_class   4 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskRatingTest.test_str   4 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskRatingTest.test_color_props   6 0 0   100%
product_risk_suite / risk_assessment / tests.py StatusTest.setUp   4 0 0   100%
product_risk_suite / risk_assessment / tests.py StatusTest.test_str   4 0 0   100%
product_risk_suite / risk_assessment / tests.py StatusTest.test_is_todo   4 0 0   100%
product_risk_suite / risk_assessment / tests.py StatusTest.test_web_idx_name   3 0 0   100%
product_risk_suite / risk_assessment / tests.py StatusTest.test_invalid   8 0 0   100%
product_risk_suite / risk_assessment / tests.py EvidenceTest.setUp   10 0 0   100%
product_risk_suite / risk_assessment / tests.py EvidenceTest.test_str   3 0 0   100%
product_risk_suite / risk_assessment / tests.py EvidenceTest.test_color_due_date   8 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskMitigationTest.setUp   12 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskMitigationTest.test_str   3 0 0   100%
product_risk_suite / risk_assessment / tests.py RiskMitigationTest.test_list_sec_req   8 0 0   100%
product_risk_suite / risk_assessment / tests.py SeverityExampleTest.test_simple   4 0 0   100%
product_risk_suite / risk_assessment / tests.py LikelihoodExampleTest.test_simple   4 0 0   100%
product_risk_suite / risk_assessment / tests.py SuggestedMitigationValidationTest.test_simple   7 0 0   100%
product_risk_suite / risk_assessment / tests.py (no function)   66 0 0   100%
product_risk_suite / risk_assessment / urls.py (no function)   3 0 0   100%
product_risk_suite / risk_assessment / views.py security_requirements   2 2 0   0%
product_risk_suite / risk_assessment / views.py security_requirement   3 3 0   0%
product_risk_suite / risk_assessment / views.py risk_info   19 19 0   0%
product_risk_suite / risk_assessment / views.py suggestion_view   3 3 0   0%
product_risk_suite / risk_assessment / views.py (no function)   16 0 0   100%
product_risk_suite / threat_model / __init__.py (no function)   0 0 0   100%
product_risk_suite / threat_model / admin.py ThreatModelAdmin.product   1 1 0   0%
product_risk_suite / threat_model / admin.py ThreatModelAdmin.available_connections   1 1 0   0%
product_risk_suite / threat_model / admin.py (no function)   13 0 0   100%
product_risk_suite / threat_model / apps.py (no function)   3 0 0   100%
product_risk_suite / threat_model / migrations / 0001_initial.py (no function)   6 0 0   100%
product_risk_suite / threat_model / migrations / 0002_threatmodelconnectionname_human_name.py (no function)   4 0 0   100%
product_risk_suite / threat_model / migrations / __init__.py (no function)   0 0 0   100%
product_risk_suite / threat_model / models.py ThreatModel.__str__   1 1 0   0%
product_risk_suite / threat_model / models.py ThreatModel.list_connection_names   1 1 0   0%
product_risk_suite / threat_model / models.py ThreatModel.save   12 0 0   100%
product_risk_suite / threat_model / models.py (no function)   17 0 0   100%
product_risk_suite / threat_model / shared_models.py ThreatModelConnectionName.__str__   3 0 0   100%
product_risk_suite / threat_model / shared_models.py (no function)   5 0 0   100%
product_risk_suite / threat_model / tests.py ThreatModelConnectionNameTest.test_simple   13 0 0   100%
product_risk_suite / threat_model / tests.py ThreatModelTest.setUp   1 0 0   100%
product_risk_suite / threat_model / tests.py ThreatModelTest.test_simple   14 0 0   100%
product_risk_suite / threat_model / tests.py (no function)   11 0 0   100%
product_risk_suite / threat_model / urls.py (no function)   3 0 0   100%
product_risk_suite / threat_model / views.py __remove_svg_attribute   4 4 0   0%
product_risk_suite / threat_model / views.py __remove_dark_mode_from_style   5 5 0   0%
product_risk_suite / threat_model / views.py threat_model_index   4 4 0   0%
product_risk_suite / threat_model / views.py threat_model   40 40 0   0%
product_risk_suite / threat_model / views.py (no function)   16 0 0   100%
Total     1256 188 0   85%

No items found using the specified filter.