"""Verify the untouched origin field independently of the editorial adapter.""" import hashlib import html import json import re import urllib.request from datetime import datetime, timezone from pathlib import Path root = Path(__file__).resolve().parents[1] directory = root / 'storage/app/private/investmoz-v2/portal-audit/legacy-financial-origin-20261010' directory.mkdir(parents=True, exist_ok=True) url = 'https://investemoz.tempo.co.mz/mercado-financeiro' agent = 'Mozilla/5.0 InvestMoz-QA-content-inventory' with urllib.request.urlopen(urllib.request.Request(url, headers={'Accept': 'text/html', 'User-Agent': agent}), timeout=35) as response: raw = response.read() status_html = response.status match = re.search(r'data-page="([^"]+)"', raw.decode('utf-8')) assert match page = json.loads(html.unescape(match.group(1))) post = page['props']['post'] assert post['id'] == 171994 headers = {'Accept': 'application/json', 'User-Agent': agent, 'X-Inertia': 'true', 'X-Requested-With': 'XMLHttpRequest', 'X-Inertia-Version': page['version']} with urllib.request.urlopen(urllib.request.Request(url, headers=headers), timeout=35) as response: raw_json = response.read() status_json = response.status data = json.loads(raw_json) assert data['props']['post']['id'] == post['id'] # Preserve anonymous HTTP snapshots privately; never serve shared session props. (directory / 'origin-html-private.bin').write_bytes(raw) (directory / 'origin-inertia-private.bin').write_bytes(raw_json) proof = {'captured_at': datetime.now(timezone.utc).isoformat(), 'source_url': url, 'legacy_id': post['id'], 'html_http_status': status_html, 'inertia_http_status': status_json, 'origin_html_bytes_sha256': hashlib.sha256(raw).hexdigest(), 'origin_inertia_bytes_sha256': hashlib.sha256(raw_json).hexdigest(), 'initial_origin_content_type': type(post['content']).__name__, 'initial_origin_content_length': len(post['content']), 'inertia_origin_content_length': len(data['props']['post']['content']), 'contents_identical': data['props']['post']['content'] == post['content'], 'origin_content_sha256': hashlib.sha256(post['content'].encode()).hexdigest(), 'extraction_or_sanitization_applied': False, 'publication_applied': False, 'conclusion': 'Origin returns an empty string in both raw server payloads; not an extraction loss.'} assert proof['initial_origin_content_length'] == 0 and proof['inertia_origin_content_length'] == 0 (directory / 'proof.json').write_text(json.dumps(proof, ensure_ascii=False, indent=2), encoding='utf-8') print(json.dumps(proof, ensure_ascii=False))