Coverage for test_shrinky.py: 100%
69 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-20 12:03 +1000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-20 12:03 +1000
1""" testing shrinky things """
3from pathlib import Path
4from click.testing import CliRunner
6from shrinky import new_filename, parse_geometry
7from shrinky import cli
10def test_new_filename():
11 """ testing new fileanme """
12 input_filename = Path("~/test.jpg").resolve()
13 assert new_filename(input_filename, None) == Path("~/test-shrink.jpg").resolve()
15def test_new_filename_type():
16 """ testing new fileanme """
17 input_filename = Path("~/test.jpg").resolve()
18 assert new_filename(input_filename, "png") == Path("~/test.png").resolve()
20def test_parse_geometry():
21 """ tests parse_geometry """
23 testval = "800x800"
24 result = parse_geometry(testval)
25 assert result == (800,800)
27 testval = "800x"
28 result = parse_geometry(testval)
29 assert result == (800,None)
31 testval = "x800"
32 result = parse_geometry(testval)
33 assert result == (None,800)
36def test_cli(tmpdir: str):
37 """ tests the cli """
38 runner = CliRunner()
39 # input png
40 # output jpg
41 # jpg quality 65
42 # debug on
43 result = runner.invoke(
44 cli,
45 f"lasagne-or-doom-level.png -o {tmpdir}/test.jpg -q 65 --debug",
46 )
48 assert result.exit_code == 0
50 destfile = Path(f"{tmpdir}/test.jpg")
51 assert destfile.exists()
52 assert destfile.is_file()
54def test_cli_geom(tmpdir: str):
55 """ tests the cli """
56 runner = CliRunner() # capture stderr
57 result = runner.invoke(
58 cli,
59 f"lasagne-or-doom-level.png -o {tmpdir}/test.jpg --debug -g 300x",
60 )
63 destfile = Path(f"{tmpdir}/test.jpg")
64 assert destfile.exists()
65 assert destfile.is_file()
66 assert result.exit_code == 0
68def test_cli_bad_geom(tmpdir: str):
69 """ tests the cli """
70 runner = CliRunner() # capture stderr
71 result = runner.invoke(
72 cli,
73 f"lasagne-or-doom-level.png -o {tmpdir}/test.jpg --debug -g 300",
74 )
77 destfile = Path(f"{tmpdir}/test.jpg")
78 assert destfile.exists()
79 assert destfile.is_file()
80 assert result.exit_code == 0
82def test_cli_bad_filename(tmpdir: str):
83 """ tests the cli """
84 runner = CliRunner() # capture stderr
85 test_filename = f"{tmpdir}/testdddd"
86 print(f"{test_filename=}")
87 testfile = Path(test_filename)
88 testfile.touch()
90 result = runner.invoke(
91 cli,
92 f"{test_filename} --debug -o {tmpdir}/test1234",
93 )
94 print (result.stdout)
95 assert result.exit_code == 1
97def test_cli_missing_file(tmpdir: str):
98 """ tests the cli """
99 runner = CliRunner() # capture stderr
100 test_filename = f"{tmpdir}/testdddd1234"
101 print(f"{test_filename=}")
103 result = runner.invoke(
104 cli,
105 f"{test_filename}",
106 )
107 print (result.stdout)
108 assert result.exit_code == 1
110def test_cli_file_exists_bail(tmpdir: str):
111 """ tests the cli """
112 runner = CliRunner() # capture stderr
113 result = runner.invoke(
114 cli,
115 f"lasagne-or-doom-level.png -o {tmpdir}/test.jpg --debug -g 300x",
116 )
117 result = runner.invoke(
118 cli,
119 f"lasagne-or-doom-level.png -o {tmpdir}/test.jpg --debug -g 300x",
120 )
122 print (result.stdout)
123 assert result.exit_code == 1
124 assert result.exit_code == 1
126def test_cli_file_write_weird_extension(tmpdir: str):
127 """ tests the cli """
128 runner = CliRunner() # capture stderr
129 result = runner.invoke(
130 cli,
131 f"lasagne-or-doom-level.png -o {tmpdir}/test --debug -g 300x",
132 )
134 print (result.stdout)
135 assert result.exit_code == 1