File: run

package info (click to toggle)
xlsx2csv 1%3A0.8.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 660 kB
  • sloc: python: 1,097; makefile: 27; sh: 11
file content (84 lines) | stat: -rwxr-xr-x 2,660 bytes parent folder | download
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/usr/bin/env 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
            command = ["python%s" %pyver]
        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
            command = ["py", "-%s" %pyver] 
        else:
            print("os.name is unexpected: "+os.name)
            sys.exit(1)
        left = subprocess.check_output(command + ["./xlsx2csv.py"] + arguments + ["test/%s.%s" %(case, ext)]).decode('utf-8').replace('\r','')

        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))

        # test STDIN, only works for python3
        if pyver == "2":
            continue

        xfile = open("test/%s.%s" %(case,ext), "rb")
        stdin = xfile.read()
        xfile.close()

        pipe = subprocess.run(command + ["./xlsx2csv.py"] + arguments + ["-"], input = stdin, capture_output = True)
        stdinleft = pipe.stdout.decode("utf-8").replace('\r','').replace('\r','')

        if stdinleft != right:
            print("FAILED (STDIN): %s %s" %(case, pyver))
            failed = True
        else:
            print("OK (STDIN): %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"])
compare("formatted_inline_string")