coulomb-social/scripts/native_recovery/test_journey.py
tegwick 7b4b75089c
Some checks failed
Use-case regression gate / usecase-regressions (push) Has been cancelled
Verify native reset SMTP issuer and app recovery through Chromium
Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a18e2d-f513-7742-b8e7-12af0b744ff3
2026-10-31 00:15:24 +01:00

33 lines
1.4 KiB
Python

"""Explicit native peer gate; excluded from the default image-free test collection."""
import json
import os
import subprocess
import sys
from pathlib import Path
import pytest
ROOT = Path(__file__).resolve().parents[2]
@pytest.mark.browser
@pytest.mark.usecase('CSOC-UC-009')
def test_native_reset_directory_smtp_issuer_and_app():
output = Path(os.environ['CSOC_NATIVE_RECEIPT'])
result = subprocess.run([
sys.executable, str(ROOT / 'scripts/rehearse-native-reset-browser.py'),
'--output', str(output)], cwd=ROOT, capture_output=True, text=True, timeout=300)
assert result.returncode == 0, result.stdout + result.stderr
proof = json.loads(output.read_text())
assert proof['status'] == 'isolated_native_recovery_browser_verified'
assert proof['findings']['cleanup_verified']
cases = {c['case']: c for c in proof['findings']['scenarios']}
assert cases['read_only_refusal']['password_change_accepted'] is False
assert cases['successful_reset']['password_change_accepted'] is True
assert cases['expired_handle']['expired_native_handle_refused'] is True
app = proof['findings']['app_journey']
assert app['native_keycape_code_and_app_session'] is True
assert app['real_owner_http_identity_link'] is True
assert app['native_foreign_tenant_token_refused'] is True
assert proof['production_or_mfa_acceptance'] is False