"""Rendering review uses synthetic notes and never accepts private corpus fidelity.""" import hashlib import json import os import subprocess import sys from pathlib import Path from coulomb_social.apps.spaces.content import render_markdown from coulomb_social.apps.spaces.rendering_audit import audit_body, review_card def test_audit_uses_product_renderer_and_reports_custom_tags_attributes_and_schemes(): body = ('# Synthetic\n\nPlaceholder
Text\n' '' 'Unsafe') audit, rendered = audit_body(body) assert rendered == render_markdown(body) assert audit["sanitization_changed_html"] assert audit["markup_changed_by_sanitization"] assert not audit["serialization_only_change"] assert audit["removed_tag_counts"] == {"topic": 1} assert {a["attribute"] for a in audit["removed_attributes"]} == {"onerror", "href"} assert "assets/picture.png" in rendered and "
" in rendered assert audit["body_sha256"] == hashlib.sha256(body.encode()).hexdigest() assert not audit["original_bubble_render_compared"] assert not audit["productive_fidelity_accepted"] assert audit["reference_occurrences_before"] == 2 assert audit["reference_occurrences_after"] == 1 assert not audit["reference_attributes_preserved"] assert audit["removed_reference_occurrences"] == 1 def test_link_entities_duplicates_and_relative_assets_preserve_exact_reference_attributes(): body = ('[first](https://example.invalid/?a=1&b=2#part)\n\n' '[second](https://example.invalid/?a=1&b=2#part)\n\n' 'third' '') audit, _ = audit_body(body) assert audit['reference_occurrences_before'] == 4 assert audit['reference_occurrences_after'] == 4 assert audit['reference_attributes_preserved'] assert audit['removed_reference_occurrences'] == 0 assert audit['added_reference_occurrences'] == 0 def test_serialized_line_break_difference_is_not_reported_as_lost_markup(): audit, _ = audit_body("First
Second") assert audit["serialization_only_change"] assert not audit["markup_changed_by_sanitization"] assert not audit["visible_text_changed_by_sanitization"] def test_continued_numbered_lists_keep_their_starts_through_sanitization(): body = "2. Second item\n3. Third item\n\nSeparate paragraph.\n\n8. Eighth item" audit, rendered = audit_body(body) assert '
    ' in rendered assert '
      ' in rendered assert not audit["markup_changed_by_sanitization"] assert not audit["visible_text_changed_by_sanitization"] assert not audit["productive_fidelity_accepted"] def test_list_start_permission_does_not_allow_event_handlers_or_custom_markup(): body = ('
      1. Fourth item
      ' 'Placeholder' 'Link') audit, rendered = audit_body(body) assert '
        ' in rendered assert 'onclick' not in rendered and 'javascript:' not in rendered assert '", body, rendered, audit, source_id='a/"?b').decode() assert "