{% extends "base.html" %} {% block extra_head %} {% endblock %} {% block content %}

{{ file_name }}

{{ file_path }}

{% if pr_coverage %}
{{ pr_coverage.total_new_lines }} new lines {{ pr_coverage.covered_new_lines }} covered {{ pr_coverage.uncovered_new_lines }} uncovered {{ pr_coverage.new_lines_coverage_percent|format_percent }} new code coverage
{% elif coverage %}
{{ coverage.total_lines }} lines {{ coverage.covered_lines }} covered {{ coverage.uncovered_lines }} uncovered {{ coverage.line_coverage_percent|format_percent }} coverage {% if baseline_coverage %} {% set delta = coverage.line_coverage_percent - baseline_coverage.line_coverage_percent %} {% if delta >= 0 %}โ–ฒ{% else %}โ–ผ{% endif %}{{ pct_fmt|format(delta|abs) }}% {% endif %}
{% if baseline_coverage %}
vs Baseline: {{ baseline_coverage.line_coverage_percent|format_percent }} coverage {{ baseline_coverage.covered_lines }}/{{ baseline_coverage.total_lines }} lines
{% endif %} {% endif %}
{% if coverage and coverage.functions %}
{{ coverage.covered_functions }} / {{ coverage.total_functions }} covered
{% endif %}
{% if baseline_coverage %}
Covered Uncovered
{% endif %}
{% if not source_lines and coverage and coverage.lines %}
โš ๏ธ Source file not found on disk ({{ file_path }}) โ€” showing coverage data only (line numbers + hit counts). Generate the report where the sources live to see code.
{% endif %}
{% for line in source_lines %} {% set line_num = loop.index %} {% set is_added = line_num in added_lines %} {% set line_cov = coverage.lines.get(line_num) if coverage else none %} {% set is_covered = line_cov.is_covered if line_cov else none %} {% set exec_count = line_cov.count if line_cov else none %} {% set baseline_line_cov = baseline_coverage.lines.get(line_num) if baseline_coverage else none %} {% set baseline_is_covered = baseline_line_cov.is_covered if baseline_line_cov else none %} {% set coverage_changed = baseline_coverage and is_covered is not none and baseline_is_covered is not none and is_covered != baseline_is_covered %} {% set newly_covered = coverage_changed and is_covered == true %} {% set newly_uncovered = coverage_changed and is_covered == false %} {% endfor %} {# Fallback: no source on disk, but we have coverage data. Render one row per executable line so the page isn't blank. #} {% if not source_lines and coverage and coverage.lines %} {% for line_num, line_cov in coverage.lines|dictsort %} {% set is_covered = line_cov.is_covered %} {% endfor %} {% endif %}
{{ line_num }} {% if is_added %} {% if is_covered == true %} โ— {% elif is_covered == false %} โ— {% else %} โ—‹ {% endif %} {% elif is_covered == true %} โ— {% elif is_covered == false %} โ— {% endif %} {% if exec_count is not none %} {{ exec_count }}ร— {% endif %}
{{ line|e }}
{{ line_num }} {% if is_covered %} โ— {% else %} โ— {% endif %} {{ line_cov.count }}ร—
{% endblock %}