Coverage for /pythoncovmergedfiles/medio/medio/src/django-fuzzers/fuzzers.py: 97%
205 statements
« prev ^ index » next coverage.py v7.0.5, created at 2023-01-17 06:13 +0000
« prev ^ index » next coverage.py v7.0.5, created at 2023-01-17 06:13 +0000
1from django.core.exceptions import (
2 ValidationError,
3 SuspiciousFileOperation,
4)
6from django.utils import text
7from django.utils.http import (
8 base36_to_int,
9 escape_leading_slashes,
10 int_to_base36,
11 url_has_allowed_host_and_scheme,
12 parse_etags,
13 parse_http_date,
14 quote_etag,
15 urlencode,
16 urlsafe_base64_decode,
17 urlsafe_base64_encode,
18)
19from django.utils.html import (
20 conditional_escape,
21 escape,
22 escapejs,
23 # format_html,
24 # html_safe,
25 json_script,
26 linebreaks,
27 smart_urlquote,
28 strip_spaces_between_tags,
29 strip_tags,
30 urlize,
31)
32from django.utils.ipv6 import clean_ipv6_address, is_valid_ipv6_address
33import datetime
34from django.utils import feedgenerator
35from django.utils.encoding import (
36 DjangoUnicodeDecodeError,
37 escape_uri_path,
38 filepath_to_uri,
39 iri_to_uri,
40 smart_str,
41 uri_to_iri,
42)
43from django import forms
44from django.conf import settings
46import django
48settings.configure()
49django.setup()
52def test_base36_to_int(inp):
53 try:
54 base36_to_int(inp)
55 except ValueError:
56 pass
59def test_int_to_base64(inp):
60 try:
61 int_to_base36(inp)
62 except ValueError:
63 pass
66def test_escape_leading_slashes(inp):
67 escape_leading_slashes(inp)
70def test_url_has_allowed_host_and_scheme(inp):
71 url_has_allowed_host_and_scheme(inp, allowed_hosts={"a", "b"})
74def test_parse_etags(inp):
75 parse_etags(inp)
78def test_parse_http_date(inp):
79 try:
80 parse_http_date(inp)
81 except ValueError as e:
82 msg = str(e)
83 if (
84 "is not a valid date" not in msg
85 and "is not in a valid HTTP date format" not in msg
86 ):
87 raise
90def test_quote_etag(inp):
91 quote_etag(inp)
94def test_urlencode(inp):
95 urlencode(inp)
98def test_urlsafe_base64_decode(inp):
99 try:
100 urlsafe_base64_decode(inp)
101 except ValueError as e:
102 msg = str(e)
103 if (
104 "Invalid base64-encoded string" not in msg
105 and "Incorrect padding" not in msg
106 ):
107 raise
110def test_urlsafe_base64_encode(inp):
111 urlsafe_base64_encode(inp)
114def test_conditional_escape(inp):
115 conditional_escape(inp)
118def test_escape(inp):
119 escape(inp)
122def test_escapejs(inp):
123 escapejs(inp)
126def test_json_script(inp):
127 json_script(inp, "id")
130def test_linebreaks(inp):
131 linebreaks(inp)
134def test_smart_urlquote(inp):
135 smart_urlquote(inp)
138def test_strip_spaces_between_tags(inp):
139 strip_spaces_between_tags(inp)
142def test_strip_tags(inp):
143 try:
144 strip_tags(inp)
145 except NotImplementedError: # TODO: this should be fixed
146 pass
149def test_urlize(inp):
150 urlize(inp)
153def test_smart_split(inp):
154 text.smart_split(inp)
157def test_Truncator(inp):
158 text.Truncator(inp).words(8, "...", html=True)
161def test_wrap(inp):
162 text.wrap(inp, 8)
165def test_normalize_newlines(inp):
166 text.normalize_newlines(inp)
169def test_phone(inp):
170 text.phone2numeric(inp)
173def test_unescape_string_literal(inp):
174 try:
175 text.unescape_string_literal(inp)
176 except ValueError as e:
177 if "Not a string literal: " not in str(e):
178 raise
181def test_get_valid_filename(inp):
182 try:
183 text.get_valid_filename(inp)
184 except SuspiciousFileOperation:
185 pass
188def test_is_valid_ipv6_address(inp):
189 is_valid_ipv6_address(inp)
192def test_clean_ipv6_address(inp):
193 try:
194 clean_ipv6_address(inp)
195 except ValidationError:
196 pass
199def test_slugify(inp):
200 text.slugify(inp)
203def test_camel_case_to_spaces(inp):
204 text.camel_case_to_spaces(inp)
207def test_get_tag_uri(inp):
208 try:
209 feedgenerator.get_tag_uri(inp, datetime.date(2004, 10, 25))
210 except ValueError: # TODO: Is this a wanted exception?
211 pass
214def test_Atom1Feed(inp):
215 feedgenerator.Atom1Feed(inp, "link", "description")
218def test_Rss201rev2Feed(inp):
219 feedgenerator.Rss201rev2Feed(inp, "link", "description")
222def test_escape_uri_path(inp):
223 escape_uri_path(inp)
226def test_filepath_to_uri(inp):
227 filepath_to_uri(inp)
230def test_iri_to_uri(inp):
231 iri_to_uri(inp)
234def test_uri_to_iri(inp):
235 uri_to_iri(inp)
238def test_smart_str(inp):
239 try:
240 smart_str(inp)
241 except DjangoUnicodeDecodeError:
242 pass
245def test_forms_BooleanField(inp):
246 try:
247 forms.BooleanField().clean(inp)
248 except ValidationError:
249 pass
252def test_forms_NullBooleanField(inp):
253 try:
254 forms.NullBooleanField().clean(inp)
255 except ValidationError:
256 pass
259def test_forms_CharField(inp):
260 try:
261 forms.CharField().clean(inp)
262 except ValidationError:
263 pass
266def test_forms_DateField(inp):
267 try:
268 forms.DateField().clean(inp)
269 except ValidationError:
270 pass
273def test_forms_DateTimeField(inp):
274 try:
275 forms.DateTimeField().clean(inp)
276 except ValidationError:
277 pass
280def test_forms_DecimalField(inp):
281 try:
282 forms.DecimalField().clean(inp)
283 except ValidationError:
284 pass
287def test_forms_DurationField(inp):
288 try:
289 forms.DurationField().clean(inp)
290 except ValidationError:
291 pass
294def test_forms_EmailField(inp):
295 try:
296 forms.EmailField().clean(inp)
297 except ValidationError:
298 pass
301def test_forms_Field(inp):
302 try:
303 forms.Field().clean(inp)
304 except ValidationError:
305 pass
308def test_forms_FloatField(inp):
309 try:
310 forms.FloatField().clean(inp)
311 except ValidationError:
312 pass
315def test_forms_GenericIPAddressField(inp):
316 try:
317 forms.GenericIPAddressField().clean(inp)
318 except ValidationError:
319 pass
322def test_forms_IntegerField(inp):
323 try:
324 forms.IntegerField().clean(inp)
325 except ValidationError:
326 pass
329def test_forms_SlugField(inp):
330 try:
331 forms.SlugField().clean(inp)
332 except ValidationError:
333 pass
336def test_forms_TimeField(inp):
337 try:
338 forms.TimeField().clean(inp)
339 except ValidationError:
340 pass
343def test_forms_URLField(inp):
344 try:
345 forms.URLField().clean(inp)
346 except ValidationError:
347 pass
350def test_forms_UUIDField(inp):
351 try:
352 forms.UUIDField().clean(inp)
353 except ValidationError:
354 pass
357tests = [
358 (test_base36_to_int, str),
359 (test_int_to_base64, int),
360 (test_escape_leading_slashes, str),
361 (test_url_has_allowed_host_and_scheme, str),
362 (test_parse_etags, str),
363 (test_parse_http_date, str),
364 (test_quote_etag, str),
365 # (test_urlencode, str), # TODO: Doesn't actually take a string
366 (test_urlsafe_base64_decode, str),
367 (test_urlsafe_base64_encode, bytes),
368 (test_conditional_escape, str),
369 (test_escape, str),
370 (test_escapejs, str),
371 (test_json_script, str),
372 (test_linebreaks, str),
373 (test_smart_urlquote, str),
374 (test_strip_spaces_between_tags, str),
375 (test_strip_tags, str),
376 (test_urlize, str),
377 (test_smart_split, str),
378 (test_Truncator, str),
379 (test_wrap, str),
380 (test_normalize_newlines, str),
381 (test_phone, str),
382 (test_unescape_string_literal, str),
383 (test_get_valid_filename, str),
384 (test_is_valid_ipv6_address, str),
385 (test_clean_ipv6_address, str),
386 (test_slugify, str),
387 (test_camel_case_to_spaces, str),
388 (test_get_tag_uri, str),
389 (test_Atom1Feed, str),
390 (test_Rss201rev2Feed, str),
391 (test_escape_uri_path, str),
392 (test_filepath_to_uri, str),
393 (test_iri_to_uri, str),
394 (test_uri_to_iri, str),
395 (test_smart_str, bytes),
396 (test_forms_BooleanField, str),
397 (test_forms_NullBooleanField, str),
398 (test_forms_CharField, str),
399 (test_forms_DateField, str),
400 (test_forms_DateTimeField, str),
401 (test_forms_DecimalField, str),
402 (test_forms_DurationField, str),
403 (test_forms_EmailField, str),
404 (test_forms_Field, str),
405 (test_forms_FloatField, str),
406 (test_forms_GenericIPAddressField, str),
407 (test_forms_IntegerField, str),
408 (test_forms_NullBooleanField, str),
409 (test_forms_SlugField, str),
410 (test_forms_TimeField, str),
411 (test_forms_URLField, str),
412 (test_forms_UUIDField, str),
413]