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
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-15 22:43 +0000
1import unittest
3from webapp import template_utils
6class TemplateUtilsTest(unittest.TestCase):
7 def test_generate_slug(self):
8 result = template_utils.generate_slug("/snaps")
9 self.assertEqual(result, "account")
11 result = template_utils.generate_slug("/listing")
12 self.assertEqual(result, "account")
14 result = template_utils.generate_slug("/releases")
15 self.assertEqual(result, "account")
17 result = template_utils.generate_slug("/publicise")
18 self.assertEqual(result, "account")
20 result = template_utils.generate_slug("/publicise/badges")
21 self.assertEqual(result, "account")
23 result = template_utils.generate_slug("/publicise/cards")
24 self.assertEqual(result, "account")
26 result = template_utils.generate_slug("/settings")
27 self.assertEqual(result, "account")
29 result = template_utils.generate_slug("/account/details")
30 self.assertEqual(result, "account")
32 result = template_utils.generate_slug("/")
33 self.assertEqual(result, "home")
35 result = template_utils.generate_slug("/build")
36 self.assertEqual(result, "build")
38 result = template_utils.generate_slug("/blog")
39 self.assertEqual(result, "blog")
41 result = template_utils.generate_slug("/iot")
42 self.assertEqual(result, "iot")
44 result = template_utils.generate_slug("/any-route")
45 self.assertEqual(result, "store")
47 def test_contains(self):
48 result = template_utils.contains(["item1", "item2"], "item1")
49 self.assertTrue(result)
51 result = template_utils.contains(["item1", "item2"], "item3")
52 self.assertFalse(result)
54 def test_format_number(self):
55 result = template_utils.format_number(1)
56 self.assertTrue(isinstance(result, str))
58 result = template_utils.format_number(10000)
59 self.assertTrue(result, "10,000")
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")
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")
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")
77 def test_display_name(self):
78 result = template_utils.display_name("Toto", "toto")
79 self.assertEqual(result, "Toto")
81 result = template_utils.display_name("Toto", "username")
82 self.assertEqual(result, "Toto (username)")
84 def test_join(self):
85 result = template_utils.join(["item1", "item2"], "-")
86 self.assertEqual(result, "item1-item2")
88 def test_static_url_no_file(self):
89 result = template_utils.static_url("url")
90 self.assertEqual(result, "/static/url")
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")
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")
102 def test_format_member_role(self):
103 result = template_utils.format_member_role("admin")
104 self.assertEqual(result, "admin")
106 result = template_utils.format_member_role("review")
107 self.assertEqual(result, "reviewer")
109 result = template_utils.format_member_role("view")
110 self.assertEqual(result, "viewer")
112 result = template_utils.format_member_role("access")
113 self.assertEqual(result, "publisher")
115 def test_format_link(self):
116 result = template_utils.format_link("mailto:hello@example.com")
117 self.assertEqual(result, "hello@example.com")
119 result = template_utils.format_link("https://example.com")
120 self.assertEqual(result, "example.com")
122 result = template_utils.format_link("http://example.com")
123 self.assertEqual(result, "example.com")
125 result = template_utils.format_link("https://example.com/")
126 self.assertEqual(result, "example.com")
128 result = template_utils.format_link("http://example.com/")
129 self.assertEqual(result, "example.com")
131 result = template_utils.format_link("https://example.com/path")
132 self.assertEqual(result, "example.com")
134 result = template_utils.format_link("http://example.com/path")
135 self.assertEqual(result, "example.com")
137 result = template_utils.format_link("https://example.com/path/")
138 self.assertEqual(result, "example.com")
140 result = template_utils.format_link("http://example.com/path/")
141 self.assertEqual(result, "example.com")
143 result = template_utils.format_link("https://example.com/path/path")
144 self.assertEqual(result, "example.com")
146 result = template_utils.format_link("http://example.com/path/path")
147 self.assertEqual(result, "example.com")
149 result = template_utils.format_link("https://example.com/path/path/")
150 self.assertEqual(result, "example.com")
152 result = template_utils.format_link("http://example.com/path/path/")
153 self.assertEqual(result, "example.com")
155 result = template_utils.format_link("https://example.com?foo=bar")
156 self.assertEqual(result, "example.com")
158 result = template_utils.format_link("http://example.com?foo=bar")
159 self.assertEqual(result, "example.com")
161 result = template_utils.format_link("https://example.com/?foo=bar")
162 self.assertEqual(result, "example.com")
164 result = template_utils.format_link("http://example.com/?foo=bar")
165 self.assertEqual(result, "example.com")
167 result = template_utils.format_link(
168 "https://example.com?foo=bar&bar=foo"
169 )
170 self.assertEqual(result, "example.com")
172 result = template_utils.format_link(
173 "http://example.com?foo=bar&bar=foo"
174 )
175 self.assertEqual(result, "example.com")
177 result = template_utils.format_link(
178 "https://example.com/?foo=bar&bar=foo"
179 )
180 self.assertEqual(result, "example.com")
182 result = template_utils.format_link(
183 "http://example.com/?foo=bar&bar=foo"
184 )
185 self.assertEqual(result, "example.com")
187 result = template_utils.format_link("https://example.com/path?foo=bar")
188 self.assertEqual(result, "example.com")
190 result = template_utils.format_link("http://example.com/path?foo=bar")
191 self.assertEqual(result, "example.com")
193 result = template_utils.format_link(
194 "https://example.com/path/?foo=bar"
195 )
196 self.assertEqual(result, "example.com")
198 result = template_utils.format_link("http://example.com/path/?foo=bar")
199 self.assertEqual(result, "example.com")
201 result = template_utils.format_link(
202 "https://example.com/path/path?foo=bar"
203 )
204 self.assertEqual(result, "example.com")
206 result = template_utils.format_link(
207 "http://example.com/path/path?foo=bar"
208 )
209 self.assertEqual(result, "example.com")
211 result = template_utils.format_link(
212 "https://example.com/path/path/?foo=bar"
213 )
214 self.assertEqual(result, "example.com")
216 result = template_utils.format_link(
217 "http://example.com/path/path/?foo=bar"
218 )
219 self.assertEqual(result, "example.com")
221 result = template_utils.format_link("https://example.com/path?foo=bar")
222 self.assertEqual(result, "example.com")
224 result = template_utils.format_link("http://example.com/path?foo=bar")
225 self.assertEqual(result, "example.com")
227 result = template_utils.format_link(
228 "https://example.com/path/?foo=bar"
229 )
230 self.assertEqual(result, "example.com")
232 result = template_utils.format_link(
233 "http://example.com/path/?foo=bar&bar=foo"
234 )
235 self.assertEqual(result, "example.com")
237 result = template_utils.format_link(
238 "https://example.com/path/path?foo=bar&bar=foo"
239 )
240 self.assertEqual(result, "example.com")
242 result = template_utils.format_link(
243 "http://example.com/path/path?foo=bar&bar=foo"
244 )
245 self.assertEqual(result, "example.com")
247 result = template_utils.format_link(
248 "https://example.com/path/path/?foo=bar&bar=foo"
249 )
250 self.assertEqual(result, "example.com")
252 result = template_utils.format_link(
253 "http://example.com/path/path/?foo=bar&bar=foo"
254 )
255 self.assertEqual(result, "example.com")
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")
267 result = template_utils.format_link(
268 f"http://{domain}/test/test?foo=bar"
269 )
270 self.assertEqual(result, f"{domain}/test/test")
272 result = template_utils.format_link(f"http://{domain}/test/test")
273 self.assertEqual(result, f"{domain}/test/test")
275 result = template_utils.format_link(
276 f"http://{domain}/test/test?foo=bar"
277 )
278 self.assertEqual(result, f"{domain}/test/test")