Coverage for tests/tests_templates_utils.py: 100%

159 statements  

« prev     ^ index     » next       coverage.py v7.14.1, created at 2026-06-15 22:43 +0000

1import unittest 

2 

3from webapp import template_utils 

4 

5 

6class TemplateUtilsTest(unittest.TestCase): 

7 def test_generate_slug(self): 

8 result = template_utils.generate_slug("/snaps") 

9 self.assertEqual(result, "account") 

10 

11 result = template_utils.generate_slug("/listing") 

12 self.assertEqual(result, "account") 

13 

14 result = template_utils.generate_slug("/releases") 

15 self.assertEqual(result, "account") 

16 

17 result = template_utils.generate_slug("/publicise") 

18 self.assertEqual(result, "account") 

19 

20 result = template_utils.generate_slug("/publicise/badges") 

21 self.assertEqual(result, "account") 

22 

23 result = template_utils.generate_slug("/publicise/cards") 

24 self.assertEqual(result, "account") 

25 

26 result = template_utils.generate_slug("/settings") 

27 self.assertEqual(result, "account") 

28 

29 result = template_utils.generate_slug("/account/details") 

30 self.assertEqual(result, "account") 

31 

32 result = template_utils.generate_slug("/") 

33 self.assertEqual(result, "home") 

34 

35 result = template_utils.generate_slug("/build") 

36 self.assertEqual(result, "build") 

37 

38 result = template_utils.generate_slug("/blog") 

39 self.assertEqual(result, "blog") 

40 

41 result = template_utils.generate_slug("/iot") 

42 self.assertEqual(result, "iot") 

43 

44 result = template_utils.generate_slug("/any-route") 

45 self.assertEqual(result, "store") 

46 

47 def test_contains(self): 

48 result = template_utils.contains(["item1", "item2"], "item1") 

49 self.assertTrue(result) 

50 

51 result = template_utils.contains(["item1", "item2"], "item3") 

52 self.assertFalse(result) 

53 

54 def test_format_number(self): 

55 result = template_utils.format_number(1) 

56 self.assertTrue(isinstance(result, str)) 

57 

58 result = template_utils.format_number(10000) 

59 self.assertTrue(result, "10,000") 

60 

61 def test_install_snippet(self): 

62 result = template_utils.install_snippet( 

63 "spotify", "latest", "stable", "" 

64 ) 

65 self.assertTrue(result, "sudo snap install spotify") 

66 

67 def test_install_snippet_with_classic(self): 

68 result = template_utils.install_snippet( 

69 "skype", "latest", "stable", "classic" 

70 ) 

71 self.assertTrue(result, "sudo snap install skype --classic") 

72 

73 def test_install_snippet_with_non_stable_risk_level(self): 

74 result = template_utils.install_snippet("test", "latest", "edge", "") 

75 self.assertTrue(result, "sudo snap install test --edge") 

76 

77 def test_display_name(self): 

78 result = template_utils.display_name("Toto", "toto") 

79 self.assertEqual(result, "Toto") 

80 

81 result = template_utils.display_name("Toto", "username") 

82 self.assertEqual(result, "Toto (username)") 

83 

84 def test_join(self): 

85 result = template_utils.join(["item1", "item2"], "-") 

86 self.assertEqual(result, "item1-item2") 

87 

88 def test_static_url_no_file(self): 

89 result = template_utils.static_url("url") 

90 self.assertEqual(result, "/static/url") 

91 

92 def test_static_url(self): 

93 result = template_utils.static_url("images/rocket.png") 

94 self.assertEqual(result, "/static/images/rocket.png?v=7d7c26f") 

95 

96 def test_format_date(self): 

97 result = template_utils.format_date( 

98 "2019-09-02T09:27:58.930567+00:00", "%d %B %Y" 

99 ) 

100 self.assertEqual(result, "02 September 2019") 

101 

102 def test_format_member_role(self): 

103 result = template_utils.format_member_role("admin") 

104 self.assertEqual(result, "admin") 

105 

106 result = template_utils.format_member_role("review") 

107 self.assertEqual(result, "reviewer") 

108 

109 result = template_utils.format_member_role("view") 

110 self.assertEqual(result, "viewer") 

111 

112 result = template_utils.format_member_role("access") 

113 self.assertEqual(result, "publisher") 

114 

115 def test_format_link(self): 

116 result = template_utils.format_link("mailto:hello@example.com") 

117 self.assertEqual(result, "hello@example.com") 

118 

119 result = template_utils.format_link("https://example.com") 

120 self.assertEqual(result, "example.com") 

121 

122 result = template_utils.format_link("http://example.com") 

123 self.assertEqual(result, "example.com") 

124 

125 result = template_utils.format_link("https://example.com/") 

126 self.assertEqual(result, "example.com") 

127 

128 result = template_utils.format_link("http://example.com/") 

129 self.assertEqual(result, "example.com") 

130 

131 result = template_utils.format_link("https://example.com/path") 

132 self.assertEqual(result, "example.com") 

133 

134 result = template_utils.format_link("http://example.com/path") 

135 self.assertEqual(result, "example.com") 

136 

137 result = template_utils.format_link("https://example.com/path/") 

138 self.assertEqual(result, "example.com") 

139 

140 result = template_utils.format_link("http://example.com/path/") 

141 self.assertEqual(result, "example.com") 

142 

143 result = template_utils.format_link("https://example.com/path/path") 

144 self.assertEqual(result, "example.com") 

145 

146 result = template_utils.format_link("http://example.com/path/path") 

147 self.assertEqual(result, "example.com") 

148 

149 result = template_utils.format_link("https://example.com/path/path/") 

150 self.assertEqual(result, "example.com") 

151 

152 result = template_utils.format_link("http://example.com/path/path/") 

153 self.assertEqual(result, "example.com") 

154 

155 result = template_utils.format_link("https://example.com?foo=bar") 

156 self.assertEqual(result, "example.com") 

157 

158 result = template_utils.format_link("http://example.com?foo=bar") 

159 self.assertEqual(result, "example.com") 

160 

161 result = template_utils.format_link("https://example.com/?foo=bar") 

162 self.assertEqual(result, "example.com") 

163 

164 result = template_utils.format_link("http://example.com/?foo=bar") 

165 self.assertEqual(result, "example.com") 

166 

167 result = template_utils.format_link( 

168 "https://example.com?foo=bar&bar=foo" 

169 ) 

170 self.assertEqual(result, "example.com") 

171 

172 result = template_utils.format_link( 

173 "http://example.com?foo=bar&bar=foo" 

174 ) 

175 self.assertEqual(result, "example.com") 

176 

177 result = template_utils.format_link( 

178 "https://example.com/?foo=bar&bar=foo" 

179 ) 

180 self.assertEqual(result, "example.com") 

181 

182 result = template_utils.format_link( 

183 "http://example.com/?foo=bar&bar=foo" 

184 ) 

185 self.assertEqual(result, "example.com") 

186 

187 result = template_utils.format_link("https://example.com/path?foo=bar") 

188 self.assertEqual(result, "example.com") 

189 

190 result = template_utils.format_link("http://example.com/path?foo=bar") 

191 self.assertEqual(result, "example.com") 

192 

193 result = template_utils.format_link( 

194 "https://example.com/path/?foo=bar" 

195 ) 

196 self.assertEqual(result, "example.com") 

197 

198 result = template_utils.format_link("http://example.com/path/?foo=bar") 

199 self.assertEqual(result, "example.com") 

200 

201 result = template_utils.format_link( 

202 "https://example.com/path/path?foo=bar" 

203 ) 

204 self.assertEqual(result, "example.com") 

205 

206 result = template_utils.format_link( 

207 "http://example.com/path/path?foo=bar" 

208 ) 

209 self.assertEqual(result, "example.com") 

210 

211 result = template_utils.format_link( 

212 "https://example.com/path/path/?foo=bar" 

213 ) 

214 self.assertEqual(result, "example.com") 

215 

216 result = template_utils.format_link( 

217 "http://example.com/path/path/?foo=bar" 

218 ) 

219 self.assertEqual(result, "example.com") 

220 

221 result = template_utils.format_link("https://example.com/path?foo=bar") 

222 self.assertEqual(result, "example.com") 

223 

224 result = template_utils.format_link("http://example.com/path?foo=bar") 

225 self.assertEqual(result, "example.com") 

226 

227 result = template_utils.format_link( 

228 "https://example.com/path/?foo=bar" 

229 ) 

230 self.assertEqual(result, "example.com") 

231 

232 result = template_utils.format_link( 

233 "http://example.com/path/?foo=bar&bar=foo" 

234 ) 

235 self.assertEqual(result, "example.com") 

236 

237 result = template_utils.format_link( 

238 "https://example.com/path/path?foo=bar&bar=foo" 

239 ) 

240 self.assertEqual(result, "example.com") 

241 

242 result = template_utils.format_link( 

243 "http://example.com/path/path?foo=bar&bar=foo" 

244 ) 

245 self.assertEqual(result, "example.com") 

246 

247 result = template_utils.format_link( 

248 "https://example.com/path/path/?foo=bar&bar=foo" 

249 ) 

250 self.assertEqual(result, "example.com") 

251 

252 result = template_utils.format_link( 

253 "http://example.com/path/path/?foo=bar&bar=foo" 

254 ) 

255 self.assertEqual(result, "example.com") 

256 

257 for domain in [ 

258 "github.com", 

259 "gitlab.com", 

260 "bitbucket.org", 

261 "launchpad.net", 

262 "sourceforge.net", 

263 ]: 

264 result = template_utils.format_link(f"https://{domain}/test/test") 

265 self.assertEqual(result, f"{domain}/test/test") 

266 

267 result = template_utils.format_link( 

268 f"http://{domain}/test/test?foo=bar" 

269 ) 

270 self.assertEqual(result, f"{domain}/test/test") 

271 

272 result = template_utils.format_link(f"http://{domain}/test/test") 

273 self.assertEqual(result, f"{domain}/test/test") 

274 

275 result = template_utils.format_link( 

276 f"http://{domain}/test/test?foo=bar" 

277 ) 

278 self.assertEqual(result, f"{domain}/test/test")