solidprivacy-nl commited on
Commit
8707402
·
1 Parent(s): 81d4943

Add tests for two-mode UI skeleton patch

Browse files
Files changed (1) hide show
  1. tests/test_two_mode_ui_patch.py +98 -0
tests/test_two_mode_ui_patch.py ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from pathlib import Path
2
+
3
+
4
+ PATCH_TEXT = Path("fix_streamlit_nested_expanders.py").read_text(encoding="utf-8")
5
+
6
+
7
+ def test_two_mode_labels_are_present_in_patch():
8
+ assert "Anonimiseren" in PATCH_TEXT
9
+ assert "Originele waarden terugzetten" in PATCH_TEXT
10
+ assert "Kies werkmodus" in PATCH_TEXT
11
+
12
+
13
+ def test_two_mode_patch_uses_streamlit_tabs():
14
+ assert "st.tabs" in PATCH_TEXT
15
+ assert 'two_mode_anon_tab, two_mode_reinsert_tab = st.tabs(["Anonimiseren", "Originele waarden terugzetten"])' in PATCH_TEXT
16
+ assert "with two_mode_anon_tab" in PATCH_TEXT
17
+ assert "with two_mode_reinsert_tab" in PATCH_TEXT
18
+
19
+
20
+ def test_two_mode_captions_explain_privacy_modes():
21
+ assert "Anonimiseren: upload of plak brontekst" in PATCH_TEXT
22
+ assert "download opgeschoonde uitvoer" in PATCH_TEXT
23
+ assert "Originele waarden terugzetten: laad een Scrub Key" in PATCH_TEXT
24
+ assert "lokale tekst-terugzetflow" in PATCH_TEXT
25
+
26
+
27
+ def test_existing_scrub_key_export_and_import_labels_remain_present():
28
+ assert "Scrub Key (JSON)" in PATCH_TEXT
29
+ assert "Download Scrub Key (.json)" in PATCH_TEXT
30
+ assert "Scrub Key laden" in PATCH_TEXT
31
+ assert "Upload Scrub Key JSON (.json)" in PATCH_TEXT
32
+ assert "Of plak Scrub Key JSON" in PATCH_TEXT
33
+ assert "Valideer en laad Scrub Key" in PATCH_TEXT
34
+
35
+
36
+ def test_existing_pasted_text_reinsert_labels_remain_present():
37
+ assert "Plak hier de tekst waarin u originele waarden lokaal wilt terugzetten" in PATCH_TEXT
38
+ assert "Zet originele waarden lokaal terug" in PATCH_TEXT
39
+ assert "Herstelde tekst" in PATCH_TEXT
40
+ assert "Download herstelde tekst (.txt)" in PATCH_TEXT
41
+ assert "Controleverslag terugzetten" in PATCH_TEXT
42
+
43
+
44
+ def test_existing_anonymization_and_download_markers_remain_present():
45
+ assert 'st.subheader("4. Download opgeschoonde bestanden")' in PATCH_TEXT
46
+ assert "Download opgeschoonde bestanden" in PATCH_TEXT
47
+ assert "Eindcontrole vóór download" in PATCH_TEXT
48
+ assert "Extra exportcontrole" in PATCH_TEXT
49
+ assert "st.warning(EXPORT_GUIDANCE)" in PATCH_TEXT
50
+
51
+
52
+ def test_scrubbed_download_behavior_markers_are_not_removed_or_rewired():
53
+ # The startup patch must not patch existing scrubbed download widgets directly.
54
+ assert "download_txt" not in PATCH_TEXT
55
+ assert "download_csv" not in PATCH_TEXT
56
+ assert "download_docx" not in PATCH_TEXT
57
+ assert "download_pdf" not in PATCH_TEXT
58
+ assert "def apply_replacements_to_text" not in PATCH_TEXT
59
+ assert "apply_replacements_to_text =" not in PATCH_TEXT
60
+ assert "export_text = apply_replacements_to_text" not in PATCH_TEXT
61
+
62
+
63
+ def test_two_mode_patch_does_not_add_txt_docx_or_pdf_reinsert_upload_ui():
64
+ forbidden_markers = [
65
+ "reinsert_txt_bytes",
66
+ "reinsert_docx_bytes",
67
+ "Upload TXT",
68
+ "Upload .txt",
69
+ "Upload DOCX",
70
+ "Upload .docx",
71
+ "hersteld DOCX",
72
+ "Download hersteld DOCX",
73
+ "download_docx_reinserted",
74
+ "download_pdf_reinserted",
75
+ "PDF reinsert",
76
+ "pdf reinsert",
77
+ ]
78
+ for marker in forbidden_markers:
79
+ assert marker not in PATCH_TEXT
80
+
81
+
82
+ def test_two_mode_patch_does_not_add_ai_cloud_or_rehydration_behavior():
83
+ lower_patch = PATCH_TEXT.lower()
84
+ for marker in [
85
+ "requests.post",
86
+ "httpx.post",
87
+ "cloud processing call",
88
+ "rehydrat",
89
+ "restore_original_document",
90
+ "server-side key storage",
91
+ "durable key vault",
92
+ ]:
93
+ assert marker.lower() not in lower_patch
94
+ assert "openai" not in lower_patch
95
+ assert "anthropic" not in lower_patch
96
+ assert "st.stop()" not in PATCH_TEXT
97
+ assert "blocks_export = True" not in PATCH_TEXT
98
+ assert "changes_export_semantics = True" not in PATCH_TEXT