|
9 | 9 |
|
10 | 10 |
|
11 | 11 | testdir = os.path.dirname(os.path.abspath(__file__))
|
12 |
| -testdir = os.path.join(testdir, 'files') |
| 12 | +testdir = os.path.join(testdir, "files") |
| 13 | + |
| 14 | + |
| 15 | +def test_help_output(): |
| 16 | + runner = CliRunner() |
| 17 | + prog_name = runner.get_default_prog_name(cli) |
| 18 | + result = runner.invoke(cli, ["--help"]) |
| 19 | + output = result.output |
| 20 | + |
| 21 | + assert prog_name == "camelot" |
| 22 | + assert result.output.startswith("Usage: %(prog_name)s [OPTIONS] COMMAND" % locals()) |
| 23 | + assert all( |
| 24 | + v in result.output |
| 25 | + for v in ["Options:", "--version", "--help", "Commands:", "lattice", "stream"] |
| 26 | + ) |
13 | 27 |
|
14 | 28 |
|
15 | 29 | def test_cli_lattice():
|
16 | 30 | with TemporaryDirectory() as tempdir:
|
17 |
| - infile = os.path.join(testdir, 'foo.pdf') |
18 |
| - outfile = os.path.join(tempdir, 'foo.csv') |
| 31 | + infile = os.path.join(testdir, "foo.pdf") |
| 32 | + outfile = os.path.join(tempdir, "foo.csv") |
19 | 33 | runner = CliRunner()
|
20 |
| - result = runner.invoke(cli, ['--format', 'csv', '--output', outfile, |
21 |
| - 'lattice', infile]) |
| 34 | + result = runner.invoke( |
| 35 | + cli, ["--format", "csv", "--output", outfile, "lattice", infile] |
| 36 | + ) |
22 | 37 | assert result.exit_code == 0
|
23 |
| - assert result.output == 'Found 1 tables\n' |
| 38 | + assert result.output == "Found 1 tables\n" |
24 | 39 |
|
25 |
| - result = runner.invoke(cli, ['--format', 'csv', |
26 |
| - 'lattice', infile]) |
27 |
| - output_error = 'Error: Please specify output file path using --output' |
| 40 | + result = runner.invoke(cli, ["--format", "csv", "lattice", infile]) |
| 41 | + output_error = "Error: Please specify output file path using --output" |
28 | 42 | assert output_error in result.output
|
29 | 43 |
|
30 |
| - result = runner.invoke(cli, ['--output', outfile, |
31 |
| - 'lattice', infile]) |
32 |
| - format_error = 'Please specify output file format using --format' |
| 44 | + result = runner.invoke(cli, ["--output", outfile, "lattice", infile]) |
| 45 | + format_error = "Please specify output file format using --format" |
33 | 46 | assert format_error in result.output
|
34 | 47 |
|
35 | 48 |
|
36 | 49 | def test_cli_stream():
|
37 | 50 | with TemporaryDirectory() as tempdir:
|
38 |
| - infile = os.path.join(testdir, 'budget.pdf') |
39 |
| - outfile = os.path.join(tempdir, 'budget.csv') |
| 51 | + infile = os.path.join(testdir, "budget.pdf") |
| 52 | + outfile = os.path.join(tempdir, "budget.csv") |
40 | 53 | runner = CliRunner()
|
41 |
| - result = runner.invoke(cli, ['--format', 'csv', '--output', outfile, |
42 |
| - 'stream', infile]) |
| 54 | + result = runner.invoke( |
| 55 | + cli, ["--format", "csv", "--output", outfile, "stream", infile] |
| 56 | + ) |
43 | 57 | assert result.exit_code == 0
|
44 |
| - assert result.output == 'Found 1 tables\n' |
| 58 | + assert result.output == "Found 1 tables\n" |
45 | 59 |
|
46 |
| - result = runner.invoke(cli, ['--format', 'csv', 'stream', infile]) |
47 |
| - output_error = 'Error: Please specify output file path using --output' |
| 60 | + result = runner.invoke(cli, ["--format", "csv", "stream", infile]) |
| 61 | + output_error = "Error: Please specify output file path using --output" |
48 | 62 | assert output_error in result.output
|
49 | 63 |
|
50 |
| - result = runner.invoke(cli, ['--output', outfile, 'stream', infile]) |
51 |
| - format_error = 'Please specify output file format using --format' |
| 64 | + result = runner.invoke(cli, ["--output", outfile, "stream", infile]) |
| 65 | + format_error = "Please specify output file format using --format" |
52 | 66 | assert format_error in result.output
|
53 | 67 |
|
54 | 68 |
|
55 | 69 | def test_cli_password():
|
56 | 70 | with TemporaryDirectory() as tempdir:
|
57 |
| - infile = os.path.join(testdir, 'health_protected.pdf') |
58 |
| - outfile = os.path.join(tempdir, 'health_protected.csv') |
| 71 | + infile = os.path.join(testdir, "health_protected.pdf") |
| 72 | + outfile = os.path.join(tempdir, "health_protected.csv") |
59 | 73 | runner = CliRunner()
|
60 |
| - result = runner.invoke(cli, ['--password', 'userpass', |
61 |
| - '--format', 'csv', '--output', outfile, |
62 |
| - 'stream', infile]) |
| 74 | + result = runner.invoke( |
| 75 | + cli, |
| 76 | + [ |
| 77 | + "--password", |
| 78 | + "userpass", |
| 79 | + "--format", |
| 80 | + "csv", |
| 81 | + "--output", |
| 82 | + outfile, |
| 83 | + "stream", |
| 84 | + infile, |
| 85 | + ], |
| 86 | + ) |
63 | 87 | assert result.exit_code == 0
|
64 |
| - assert result.output == 'Found 1 tables\n' |
| 88 | + assert result.output == "Found 1 tables\n" |
65 | 89 |
|
66 |
| - output_error = 'file has not been decrypted' |
| 90 | + output_error = "file has not been decrypted" |
67 | 91 | # no password
|
68 |
| - result = runner.invoke(cli, ['--format', 'csv', '--output', outfile, |
69 |
| - 'stream', infile]) |
| 92 | + result = runner.invoke( |
| 93 | + cli, ["--format", "csv", "--output", outfile, "stream", infile] |
| 94 | + ) |
70 | 95 | assert output_error in str(result.exception)
|
71 | 96 |
|
72 | 97 | # bad password
|
73 |
| - result = runner.invoke(cli, ['--password', 'wrongpass', |
74 |
| - '--format', 'csv', '--output', outfile, |
75 |
| - 'stream', infile]) |
| 98 | + result = runner.invoke( |
| 99 | + cli, |
| 100 | + [ |
| 101 | + "--password", |
| 102 | + "wrongpass", |
| 103 | + "--format", |
| 104 | + "csv", |
| 105 | + "--output", |
| 106 | + outfile, |
| 107 | + "stream", |
| 108 | + infile, |
| 109 | + ], |
| 110 | + ) |
76 | 111 | assert output_error in str(result.exception)
|
77 | 112 |
|
78 | 113 |
|
79 | 114 | def test_cli_output_format():
|
80 | 115 | with TemporaryDirectory() as tempdir:
|
81 |
| - infile = os.path.join(testdir, 'health.pdf') |
82 |
| - outfile = os.path.join(tempdir, 'health.{}') |
| 116 | + infile = os.path.join(testdir, "health.pdf") |
| 117 | + outfile = os.path.join(tempdir, "health.{}") |
83 | 118 | runner = CliRunner()
|
84 | 119 |
|
85 | 120 | # json
|
86 |
| - result = runner.invoke(cli, ['--format', 'json', '--output', outfile.format('json'), |
87 |
| - 'stream', infile]) |
| 121 | + result = runner.invoke( |
| 122 | + cli, |
| 123 | + ["--format", "json", "--output", outfile.format("json"), "stream", infile], |
| 124 | + ) |
88 | 125 | assert result.exit_code == 0
|
89 | 126 |
|
90 | 127 | # excel
|
91 |
| - result = runner.invoke(cli, ['--format', 'excel', '--output', outfile.format('xlsx'), |
92 |
| - 'stream', infile]) |
| 128 | + result = runner.invoke( |
| 129 | + cli, |
| 130 | + ["--format", "excel", "--output", outfile.format("xlsx"), "stream", infile], |
| 131 | + ) |
93 | 132 | assert result.exit_code == 0
|
94 | 133 |
|
95 | 134 | # html
|
96 |
| - result = runner.invoke(cli, ['--format', 'html', '--output', outfile.format('html'), |
97 |
| - 'stream', infile]) |
| 135 | + result = runner.invoke( |
| 136 | + cli, |
| 137 | + ["--format", "html", "--output", outfile.format("html"), "stream", infile], |
| 138 | + ) |
98 | 139 | assert result.exit_code == 0
|
99 | 140 |
|
100 | 141 | # zip
|
101 |
| - result = runner.invoke(cli, ['--zip', '--format', 'csv', '--output', outfile.format('csv'), |
102 |
| - 'stream', infile]) |
| 142 | + result = runner.invoke( |
| 143 | + cli, |
| 144 | + [ |
| 145 | + "--zip", |
| 146 | + "--format", |
| 147 | + "csv", |
| 148 | + "--output", |
| 149 | + outfile.format("csv"), |
| 150 | + "stream", |
| 151 | + infile, |
| 152 | + ], |
| 153 | + ) |
103 | 154 | assert result.exit_code == 0
|
104 | 155 |
|
| 156 | + |
105 | 157 | def test_cli_quiet():
|
106 | 158 | with TemporaryDirectory() as tempdir:
|
107 |
| - infile = os.path.join(testdir, 'blank.pdf') |
108 |
| - outfile = os.path.join(tempdir, 'blank.csv') |
| 159 | + infile = os.path.join(testdir, "blank.pdf") |
| 160 | + outfile = os.path.join(tempdir, "blank.csv") |
109 | 161 | runner = CliRunner()
|
110 | 162 |
|
111 |
| - result = runner.invoke(cli, ['--format', 'csv', '--output', outfile, |
112 |
| - 'stream', infile]) |
113 |
| - assert 'No tables found on page-1' in result.output |
| 163 | + result = runner.invoke( |
| 164 | + cli, ["--format", "csv", "--output", outfile, "stream", infile] |
| 165 | + ) |
| 166 | + assert "No tables found on page-1" in result.output |
114 | 167 |
|
115 |
| - result = runner.invoke(cli, ['--quiet', '--format', 'csv', |
116 |
| - '--output', outfile, 'stream', infile]) |
117 |
| - assert 'No tables found on page-1' not in result.output |
| 168 | + result = runner.invoke( |
| 169 | + cli, ["--quiet", "--format", "csv", "--output", outfile, "stream", infile] |
| 170 | + ) |
| 171 | + assert "No tables found on page-1" not in result.output |
0 commit comments