annotate test/test_anypy.py @ 8215:1b15f635ada1

fix(web) issue2551382 - handle crash in request call in test due to invalid utf8 with surrogate. Ci reports this failure in the requests call from the test case: > string = string.encode(encoding, errors) E UnicodeEncodeError: 'utf-8' codec can't encode character '\ud800' in position 48: surrogates not allowed E Falsifying example: test_class_url_param_accepting_integer_values( E self=<test.test_liveserver.FuzzGetUrls testMethod=test_class_url_param_accepting_integer_values>, E param='@verbose', # or any other generated value E value='\ud800', E ) E Explanation: E These lines were always and only run by failing examples: E /opt/hostedtoolcache/Python/3.13.1/x64/lib/python3.13/site-packages/requests/utils.py:675 E E You can reproduce this example by temporarily adding @reproduce_failure('6.122.3', b'AAAAAQDXAA==') as a decorator on your test case
author John Rouillard <rouilj@ieee.org>
date Mon, 16 Dec 2024 19:19:07 -0500
parents ebb03b8cee4d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6532
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
1 """Random tests for anypy modules"""
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
2
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
3
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
4 import unittest
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
5 from roundup.anypy.strings import repr_export, eval_import
7824
ebb03b8cee4d test: invoke test function in cmp_.py.
John Rouillard <rouilj@ieee.org>
parents: 7766
diff changeset
6 from roundup.anypy.cmp_ import _test
6532
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
7
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
8 import sys
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
9 _py3 = sys.version_info[0] > 2
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
10
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
11 class StringsTest(unittest.TestCase):
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
12
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
13 def test_import_params(self):
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
14 """ issue2551170 - handle long int in history/journal
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
15 params tuple
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
16 """
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
17 # python2 export with id as number
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
18 val = eval_import("('issue', 2345L, 'status')")
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
19 self.assertSequenceEqual(val, ('issue', 2345, 'status'))
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
20
7766
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
21 # eval a tuple e.g. date representation
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
22 val = eval_import("(2022, 9, 6, 3, 58, 4.776, 0, 0, 0)")
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
23 self.assertSequenceEqual(val, (2022, 9, 6, 3, 58, 4.776, 0, 0, 0))
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
24
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
25 # eval a boolean
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
26 val = eval_import("False")
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
27 self.assertEqual(val, False)
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
28 val = eval_import("True")
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
29 self.assertEqual(val, True)
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
30
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
31 # check syntax error
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
32 for testcase in ['true', '(2004, 10, 20', "2000, 10, 22)",
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
33 "test'", '"test']:
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
34 with self.assertRaises(ValueError) as m:
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
35 val = eval_import(testcase)
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
36 print(m.exception)
c65e0a725c88 fix: replace eval with ast.literal_eval; ruff linting
John Rouillard <rouilj@ieee.org>
parents: 6532
diff changeset
37
6532
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
38 # python3 export with id as number
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
39 val = eval_import("('issue', 2345, 'status')")
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
40 self.assertSequenceEqual(val, ('issue', 2345, 'status'))
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
41
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
42 # python2 or python3 export with id as string
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
43 val = eval_import("('issue', '2345', 'status')")
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
44 self.assertSequenceEqual(val, ('issue', '2345', 'status'))
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
45
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
46 def test_export_params(self):
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
47 """ issue2551170 - handle long int in history/journal
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
48 params tuple
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
49 """
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
50 # python2 export with id as number
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
51 if _py3:
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
52 val = repr_export(('issue', 2345, 'status'))
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
53 self.assertEqual(val, "('issue', 2345, 'status')")
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
54 else:
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
55 val = repr_export(('issue', long(2345), 'status'))
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
56 self.assertEqual(val, "('issue', 2345L, 'status')")
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
57
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
58 # python2 or python3 export with id as string
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
59 val = repr_export(('issue', '2345', 'status'))
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
60 self.assertEqual(val, "('issue', '2345', 'status')")
e4db9d0b85c7 test for issue2551170 process python 2 long under python3
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
61
7824
ebb03b8cee4d test: invoke test function in cmp_.py.
John Rouillard <rouilj@ieee.org>
parents: 7766
diff changeset
62 class MiscTest(unittest.TestCase):
ebb03b8cee4d test: invoke test function in cmp_.py.
John Rouillard <rouilj@ieee.org>
parents: 7766
diff changeset
63
ebb03b8cee4d test: invoke test function in cmp_.py.
John Rouillard <rouilj@ieee.org>
parents: 7766
diff changeset
64 def test_cmp_(self):
ebb03b8cee4d test: invoke test function in cmp_.py.
John Rouillard <rouilj@ieee.org>
parents: 7766
diff changeset
65 _test()

Roundup Issue Tracker: http://roundup-tracker.org/