v0.0.56: КРИТИЧНО — mapping.csv (ключ расшифровки) убран из выходного ZIP, CSV только отдельно
Deploy drhider / validate (push) Canceled after 0s
Deploy drhider / validate (push) Canceled after 0s
This commit is contained in:
@@ -50,17 +50,15 @@ with zipfile.ZipFile(io.BytesIO(zip_data)) as zf:
|
||||
check("mapping.csv нет", "mapping.csv" not in names)
|
||||
check("договор читается", "Договор" in zf.read("договор_obfuscated.md").decode("utf-8"))
|
||||
|
||||
# 3. ZIP с mapping.csv
|
||||
# 3. ZIP с mapping.csv — mapping НЕ должен попадать в архив (секрет, хранится отдельно)
|
||||
zip_data = build_zip(
|
||||
[("file.md", b"data")],
|
||||
mapping_csv="тип,оригинал,замена\nperson,Иванов,Иванов_0001\n"
|
||||
)
|
||||
with zipfile.ZipFile(io.BytesIO(zip_data)) as zf:
|
||||
names = zf.namelist()
|
||||
check("mapping.csv есть", "mapping.csv" in names)
|
||||
csv_content = zf.read("mapping.csv").decode("utf-8")
|
||||
check("mapping с BOM", csv_content.startswith('\ufeff'))
|
||||
check("данные в mapping", "Иванов_0001" in csv_content)
|
||||
check("mapping.csv НЕ в архиве", "mapping.csv" not in names)
|
||||
check("только file.md", len(names) == 1)
|
||||
|
||||
# 4. ZIP с кириллицей в именах
|
||||
zip_data = build_zip([("договор_№123.md", "текст".encode("utf-8"))])
|
||||
@@ -116,11 +114,11 @@ csv = build_mapping_csv(mapping)
|
||||
zip_data = build_zip([("doc.md", "# Договор с Иванов_0001".encode("utf-8"))], mapping_csv=csv)
|
||||
|
||||
with zipfile.ZipFile(io.BytesIO(zip_data)) as zf:
|
||||
check("два файла в ZIP", len(zf.namelist()) == 2)
|
||||
check("только doc.md в ZIP (без mapping)", len(zf.namelist()) == 1)
|
||||
doc = zf.read("doc.md").decode("utf-8")
|
||||
check("doc с заменой", "Иванов_0001" in doc)
|
||||
csv_content = zf.read("mapping.csv").decode("utf-8")
|
||||
check("CSV с обеими заменами", "Иванов_0001" in csv_content and "ООО_Технология_0001" in csv_content)
|
||||
check("mapping.csv не в архиве", "mapping.csv" not in zf.namelist())
|
||||
check("CSV отдаётся отдельной строкой", "Иванов_0001" in csv and "ООО_Технология_0001" in csv)
|
||||
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
|
||||
Reference in New Issue
Block a user