1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#!/usr/bin/python3
import os
import sys
import subprocess
from io import open
PYTHON_VERSIONS = ["3"]
"""
This test uses sys.stdout.
That means this test doesn't verify:
- file output process
- differences from sys.stdout like line terminater
"""
def compare(case, arguments=[]):
failed = False
for pyver in PYTHON_VERSIONS:
ext = "xlsx"
if os.path.exists("test/%s.xlsm" % case):
ext = "xlsm"
if os.name == 'posix':# in case of Linux
left = subprocess.check_output(["python%s" %pyver, "./xlsx2csv.py"] + arguments + ["test/%s.%s" %(case, ext)]).decode('utf-8').replace('\r','')
elif os.name == 'nt':# in case of Windows
# Use py.exe http://blog.python.org/2011/07/python-launcher-for-windows_11.html on Windows
left = subprocess.check_output(["py", "-%s" %pyver, "./xlsx2csv.py"] + arguments + ["test/%s.%s" %(case, ext)]).decode('utf-8').replace('\r','')
else:
print("os.name is unexpected: "+os.name)
sys.exit(1)
f = open("test/%s.csv" %case, "r", encoding="utf-8", newline="")
right = f.read().replace('\r','')
f.close()
if left != right:
print("FAILED: %s %s" %(case, pyver))
print(" actual:", left.replace("\r", "\\r").replace("\n", "\\n"))
print(" expected:", right.replace("\r", "\\r").replace("\n", "\\n"))
failed = True
else:
print("OK: %s %s" %(case, pyver))
if failed:
sys.exit(1)
compare("datetime", ["--dateformat=%Y-%m-%d %H:%M:%S"])
compare("empty_row")
compare("junk-small")
compare("last-column-empty")
compare("sheets", ["-a"])
compare("skip_empty_lines", ["-i"])
compare("twolettercolumns")
compare("xlsx2csv-test-file")
compare("escape", ["-e"])
compare("hyperlinks", ["--hyperlinks"])
compare("hyperlinks_continous", ["--hyperlinks"])
compare("namespace")
compare("float")
compare("variousdelim", ["--all","--sheetdelimiter=x33", "--lineterminator=\\r", "--delimiter=\\t"])
compare("utf8")
compare("no_cell_ids")
compare("sheets_order", ["-a"])
|