Source code for univention.testing.ucsschool.csv_test_helper
#!/usr/bin/python3
import codecs
import random
import string
[docs]
def get_test_chars(encoding):
if encoding in ["binary", "ascii"]:
return string.ascii_letters
elif encoding == "latin-1":
return "".join([chr(i) for i in random.sample(range(128, 256), 20) if chr(i).isprintable()])
else:
# use some foreign letters
return "ΆΕΔΦβθψϞϨϦϿϾ"
[docs]
def write_formatted_csv(fn_csv, input_encoding, content):
with open(fn_csv, "wb") as g:
if input_encoding == "utf-8-sig":
csv_content = bytes(content, encoding=input_encoding)
elif input_encoding == "utf-16-be":
csv_content = codecs.BOM_UTF16_BE + bytes(content, encoding=input_encoding)
elif input_encoding == "utf-16-le":
csv_content = codecs.BOM_UTF16_LE + bytes(content, encoding=input_encoding)
elif input_encoding == "utf-16-no-bom":
# simulating UTF-16 file without BOM
csv_content = bytes(content, encoding="utf-16-be")
else:
csv_content = codecs.encode(content, encoding=input_encoding)
g.write(csv_content)