Coverage for test_shrinky.py: 100%

69 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-20 12:03 +1000

1""" testing shrinky things """ 

2 

3from pathlib import Path 

4from click.testing import CliRunner 

5 

6from shrinky import new_filename, parse_geometry 

7from shrinky import cli 

8 

9 

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

14 

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

19 

20def test_parse_geometry(): 

21 """ tests parse_geometry """ 

22 

23 testval = "800x800" 

24 result = parse_geometry(testval) 

25 assert result == (800,800) 

26 

27 testval = "800x" 

28 result = parse_geometry(testval) 

29 assert result == (800,None) 

30 

31 testval = "x800" 

32 result = parse_geometry(testval) 

33 assert result == (None,800) 

34 

35 

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 ) 

47 

48 assert result.exit_code == 0 

49 

50 destfile = Path(f"{tmpdir}/test.jpg") 

51 assert destfile.exists() 

52 assert destfile.is_file() 

53 

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 ) 

61 

62 

63 destfile = Path(f"{tmpdir}/test.jpg") 

64 assert destfile.exists() 

65 assert destfile.is_file() 

66 assert result.exit_code == 0 

67 

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 ) 

75 

76 

77 destfile = Path(f"{tmpdir}/test.jpg") 

78 assert destfile.exists() 

79 assert destfile.is_file() 

80 assert result.exit_code == 0 

81 

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

89 

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 

96 

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=}") 

102 

103 result = runner.invoke( 

104 cli, 

105 f"{test_filename}", 

106 ) 

107 print (result.stdout) 

108 assert result.exit_code == 1 

109 

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 ) 

121 

122 print (result.stdout) 

123 assert result.exit_code == 1 

124 assert result.exit_code == 1 

125 

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 ) 

133 

134 print (result.stdout) 

135 assert result.exit_code == 1