Lines Matching refs:self

21     def __init__(self, name, args):
22 self.name = name
23 self.args = args
27 def __init__(self, name):
28 self.name = name
30 def __call__(self, name, default, **kwargs):
31 return FakeConverter(self.name, kwargs)
35 def __init__(self):
36 self.used_converters = {}
38 def get(self, name, default):
39 return self.used_converters.setdefault(name, FakeConverterFactory(name))
44 def __init__(self):
45 self.converters = FakeConvertersDict()
46 self.legacy_converters = FakeConvertersDict()
47 self.language = clinic.CLanguage(None)
48 self.filename = None
49 self.destination_buffers = {}
50 self.block_parser = clinic.BlockParser('', self.language)
51 self.modules = collections.OrderedDict()
52 self.classes = collections.OrderedDict()
53 clinic.clinic = self
54 self.name = "FakeClinic"
55 self.line_prefix = self.line_suffix = ''
56 self.destinations = {}
57 self.add_destination("block", "buffer")
58 self.add_destination("file", "buffer")
59 self.add_destination("suppress", "suppress")
60 d = self.destinations.get
61 self.field_destinations = collections.OrderedDict((
71 def get_destination(self, name):
72 d = self.destinations.get(name)
77 def add_destination(self, name, type, *args):
78 if name in self.destinations:
80 self.destinations[name] = clinic.Destination(name, type, self, *args)
82 def is_directive(self, name):
85 def directive(self, name, args):
86 self.called_directives[name] = args
91 def test_eol(self):
106 self.assertNotEqual(end_line, "[clinic]*/[clinic]*/")
107 self.assertEqual(end_line, "[clinic]*/")
112 def _test(self, l, m, r, output):
114 self.assertEqual(output, computed)
116 def test_range(self):
117 self._test([['start']], ['stop'], [['step']],
124 def test_add_window(self):
125 self._test([['x', 'y']], ['ch'], [['attr']],
133 def test_ludicrous(self):
134 self._test([['a1', 'a2', 'a3'], ['b1', 'b2']], ['c1'], [['d1', 'd2'], ['e1', 'e2', 'e3']],
144 def test_right_only(self):
145 self._test([], [], [['a'],['b'],['c']],
153 def test_have_left_options_but_required_is_empty(self):
156 self.assertRaises(AssertionError, fn)
160 def _test(self, input, output, **kwargs):
162 self.assertEqual(output, computed)
164 def test_empty_strings(self):
165 self._test('', '')
167 def test_solo_newline(self):
168 self._test('\n', '\n')
170 def test_no_substitution(self):
171 self._test("""
177 def test_empty_substitution(self):
178 self._test("""
187 def test_single_line_substitution(self):
188 self._test("""
198 def test_multiline_substitution(self):
199 self._test("""
212 def __init__(self, clinic):
215 def parse(self, block):
219 def __init__(self, clinic):
222 def parse(self, block):
227 def _test(self, input, output):
237 def round_trip(self, input):
238 return self._test(input, input)
240 def test_round_trip_1(self):
241 self.round_trip("""
245 def test_round_trip_2(self):
246 self.round_trip("""
257 def _test_clinic(self, input, output):
263 self.assertEqual(output, computed)
265 def test_clinic_1(self):
266 self._test_clinic("""
288 def test_trivial(self):
293 self.assertEqual("access", function.name)
294 self.assertEqual("os", module.name)
296 def test_ignore_line(self):
297 block = self.parse("#\nmodule os\nos.access")
299 self.assertEqual("access", function.name)
300 self.assertEqual("os", module.name)
302 def test_param(self):
303 function = self.parse_function("module os\nos.access\n path: int")
304 self.assertEqual("access", function.name)
305 self.assertEqual(2, len(function.parameters))
307 self.assertEqual('path', p.name)
308 self.assertIsInstance(p.converter, clinic.int_converter)
310 def test_param_default(self):
311 function = self.parse_function("module os\nos.access\n follow_symlinks: bool = True")
313 self.assertEqual(True, p.default)
315 def test_param_with_continuations(self):
316 function = self.parse_function("module os\nos.access\n follow_symlinks: \\\n bool \\\n =\\\n True")
318 self.assertEqual(True, p.default)
320 def test_param_default_expression(self):
321 function = self.parse_function("module os\nos.access\n follow_symlinks: int(c_default='MAXSIZE') = sys.maxsize")
323 self.assertEqual(sys.maxsize, p.default)
324 self.assertEqual("MAXSIZE", p.converter.c_default)
326 s = self.parse_function_should_fail("module os\nos.access\n follow_symlinks: int = sys.maxsize")
327 self.assertEqual(s, "Error on line 0:\nWhen you specify a named constant ('sys.maxsize') as your default value,\nyou MUST specify a valid c_default.\n")
329 def test_param_no_docstring(self):
330 function = self.parse_function("""
336 self.assertEqual(3, len(function.parameters))
337 self.assertIsInstance(function.parameters['something_else'].converter, clinic.str_converter)
339 def test_param_default_parameters_out_of_order(self):
340 s = self.parse_function_should_fail("""
345 self.assertEqual(s, """Error on line 0:
350 def disabled_test_converter_arguments(self):
351 function = self.parse_function("module os\nos.access\n path: path_t(allow_fd=1)")
353 self.assertEqual(1, p.converter.args['allow_fd'])
355 def test_function_docstring(self):
356 function = self.parse_function("""
364 self.assertEqual("""
374 def test_explicit_parameters_in_docstring(self):
375 function = self.parse_function("""
386 self.assertEqual("""
398 def test_parser_regression_special_character_in_parameter_column_of_docstring_first_line(self):
399 function = self.parse_function("""
405 self.assertEqual("stat($module, /, path)\n--\n\nThis/used to break Clinic!", function.docstring)
407 def test_c_name(self):
408 function = self.parse_function("module os\nos.stat as os_stat_fn")
409 self.assertEqual("os_stat_fn", function.c_basename)
411 def test_return_converter(self):
412 function = self.parse_function("module os\nos.stat -> int")
413 self.assertIsInstance(function.return_converter, clinic.int_return_converter)
415 def test_star(self):
416 function = self.parse_function("module os\nos.access\n *\n follow_symlinks: bool = True")
418 self.assertEqual(inspect.Parameter.KEYWORD_ONLY, p.kind)
419 self.assertEqual(0, p.group)
421 def test_group(self):
422 function = self.parse_function("module window\nwindow.border\n [\n ls : int\n ]\n /\n")
424 self.assertEqual(1, p.group)
426 def test_left_group(self):
427 function = self.parse_function("""
450 self.assertEqual(p.group, group)
451 self.assertEqual(p.kind, inspect.Parameter.POSITIONAL_ONLY)
452 self.assertEqual(function.docstring.strip(), """
466 def test_nested_groups(self):
467 function = self.parse_function("""
510 self.assertEqual(p.group, group)
511 self.assertEqual(p.kind, inspect.Parameter.POSITIONAL_ONLY)
513 self.assertEqual(function.docstring.strip(), """
542 def parse_function_should_fail(self, s):
544 with self.assertRaises(SystemExit):
545 self.parse_function(s)
548 def test_disallowed_grouping__two_top_groups_on_left(self):
549 s = self.parse_function_should_fail("""
560 self.assertEqual(s,
564 def test_disallowed_grouping__two_top_groups_on_right(self):
565 self.parse_function_should_fail("""
577 def test_disallowed_grouping__parameter_after_group_on_right(self):
578 self.parse_function_should_fail("""
590 def test_disallowed_grouping__group_after_parameter_on_left(self):
591 self.parse_function_should_fail("""
603 def test_disallowed_grouping__empty_group_on_left(self):
604 self.parse_function_should_fail("""
615 def test_disallowed_grouping__empty_group_on_right(self):
616 self.parse_function_should_fail("""
627 def test_no_parameters(self):
628 function = self.parse_function("""
635 self.assertEqual("bar($module, /)\n--\n\nDocstring", function.docstring)
636 self.assertEqual(1, len(function.parameters)) # self!
638 def test_init_with_no_parameters(self):
639 function = self.parse_function("""
647 # self is not in the signature
648 self.assertEqual("Bar()\n--\n\nDocstring", function.docstring)
650 self.assertEqual(1, len(function.parameters))
652 def test_illegal_module_line(self):
653 self.parse_function_should_fail("""
659 def test_illegal_c_basename(self):
660 self.parse_function_should_fail("""
666 def test_single_star(self):
667 self.parse_function_should_fail("""
674 def test_parameters_required_after_star_without_initial_parameters_or_docstring(self):
675 self.parse_function_should_fail("""
681 def test_parameters_required_after_star_without_initial_parameters_with_docstring(self):
682 self.parse_function_should_fail("""
689 def test_parameters_required_after_star_with_initial_parameters_without_docstring(self):
690 self.parse_function_should_fail("""
697 def test_parameters_required_after_star_with_initial_parameters_and_docstring(self):
698 self.parse_function_should_fail("""
706 def test_single_slash(self):
707 self.parse_function_should_fail("""
714 def test_mix_star_and_slash(self):
715 self.parse_function_should_fail("""
725 def test_parameters_not_permitted_after_slash_for_now(self):
726 self.parse_function_should_fail("""
733 def test_parameters_no_more_than_one_vararg(self):
734 s = self.parse_function_should_fail("""
740 self.assertEqual(s, "Error on line 0:\nToo many var args\n")
742 def test_function_not_at_column_0(self):
743 function = self.parse_function("""
752 self.assertEqual("""
762 def test_directive(self):
769 self.assertTrue(parser.flag)
771 def test_legacy_converters(self):
772 block = self.parse('module os\nos.access\n path: "s"')
774 self.assertIsInstance((function.parameters['path']).converter, clinic.str_converter)
776 def test_legacy_converters_non_string_constant_annotation(self):
782 s = self.parse_function_should_fail('module os\nos.access\n path: 42')
783 self.assertEqual(s, expected_failure_message)
785 s = self.parse_function_should_fail('module os\nos.access\n path: 42.42')
786 self.assertEqual(s, expected_failure_message)
788 s = self.parse_function_should_fail('module os\nos.access\n path: 42j')
789 self.assertEqual(s, expected_failure_message)
791 s = self.parse_function_should_fail('module os\nos.access\n path: b"42"')
792 self.assertEqual(s, expected_failure_message)
794 def test_other_bizarre_things_in_annotations_fail(self):
800 s = self.parse_function_should_fail(
803 self.assertEqual(s, expected_failure_message)
805 s = self.parse_function_should_fail(
808 self.assertEqual(s, expected_failure_message)
810 s = self.parse_function_should_fail(
813 self.assertEqual(s, expected_failure_message)
815 def parse(self, text):
822 def parse_function(self, text, signatures_in_block=2, function_index=1):
823 block = self.parse(text)
825 self.assertEqual(len(s), signatures_in_block)
830 def test_scaffolding(self):
832 self.assertEqual(repr(clinic.unspecified), '<Unspecified>')
833 self.assertEqual(repr(clinic.NULL), '<Null>')
837 with self.assertRaises(SystemExit):
839 self.assertEqual(stdout.getvalue(), 'Error in file "clown.txt" on line 69:\nThe igloos are melting!\n')
845 def test_external(self):
865 self.assertEqual(new_contents, orig_contents)
868 self.assertEqual(new_mtime_ns, old_mtime_ns)
881 def test_objects_converter(self):
882 with self.assertRaises(TypeError):
884 self.assertEqual(ac_tester.objects_converter(1, 2), (1, 2))
885 self.assertEqual(ac_tester.objects_converter([], 'whatever class'), ([], 'whatever class'))
886 self.assertEqual(ac_tester.objects_converter(1), (1, None))
888 def test_bytes_object_converter(self):
889 with self.assertRaises(TypeError):
891 self.assertEqual(ac_tester.bytes_object_converter(b'BytesObject'), (b'BytesObject',))
893 def test_byte_array_object_converter(self):
894 with self.assertRaises(TypeError):
897 self.assertEqual(ac_tester.byte_array_object_converter(byte_arr), (byte_arr,))
899 def test_unicode_converter(self):
900 with self.assertRaises(TypeError):
902 self.assertEqual(ac_tester.unicode_converter('unicode'), ('unicode',))
904 def test_bool_converter(self):
905 with self.assertRaises(TypeError):
907 self.assertEqual(ac_tester.bool_converter(), (True, True, True))
908 self.assertEqual(ac_tester.bool_converter('', [], 5), (False, False, True))
909 self.assertEqual(ac_tester.bool_converter(('not empty',), {1: 2}, 0), (True, True, False))
911 def test_char_converter(self):
912 with self.assertRaises(TypeError):
914 with self.assertRaises(TypeError):
918 self.assertEqual(ac_tester.char_converter(), expected)
921 self.assertEqual(ac_tester.char_converter(*chars), expected)
923 def test_unsigned_char_converter(self):
925 with self.assertRaises(OverflowError):
927 with self.assertRaises(OverflowError):
929 with self.assertRaises(OverflowError):
931 with self.assertRaises(TypeError):
933 self.assertEqual(ac_tester.unsigned_char_converter(), (12, 34, 56))
934 self.assertEqual(ac_tester.unsigned_char_converter(0, 0, UCHAR_MAX + 1), (0, 0, 0))
935 self.assertEqual(ac_tester.unsigned_char_converter(0, 0, (UCHAR_MAX + 1) * 3 + 123), (0, 0, 123))
937 def test_short_converter(self):
939 with self.assertRaises(OverflowError):
941 with self.assertRaises(OverflowError):
943 with self.assertRaises(TypeError):
945 self.assertEqual(ac_tester.short_converter(-1234), (-1234,))
946 self.assertEqual(ac_tester.short_converter(4321), (4321,))
948 def test_unsigned_short_converter(self):
950 with self.assertRaises(ValueError):
952 with self.assertRaises(OverflowError):
954 with self.assertRaises(OverflowError):
956 with self.assertRaises(TypeError):
958 self.assertEqual(ac_tester.unsigned_short_converter(), (12, 34, 56))
959 self.assertEqual(ac_tester.unsigned_short_converter(0, 0, USHRT_MAX + 1), (0, 0, 0))
960 self.assertEqual(ac_tester.unsigned_short_converter(0, 0, (USHRT_MAX + 1) * 3 + 123), (0, 0, 123))
962 def test_int_converter(self):
964 with self.assertRaises(OverflowError):
966 with self.assertRaises(OverflowError):
968 with self.assertRaises(TypeError):
970 with self.assertRaises(TypeError):
972 self.assertEqual(ac_tester.int_converter(), (12, 34, 45))
973 self.assertEqual(ac_tester.int_converter(1, 2, '3'), (1, 2, ord('3')))
975 def test_unsigned_int_converter(self):
977 with self.assertRaises(ValueError):
979 with self.assertRaises(OverflowError):
981 with self.assertRaises(OverflowError):
983 with self.assertRaises(TypeError):
985 self.assertEqual(ac_tester.unsigned_int_converter(), (12, 34, 56))
986 self.assertEqual(ac_tester.unsigned_int_converter(0, 0, UINT_MAX + 1), (0, 0, 0))
987 self.assertEqual(ac_tester.unsigned_int_converter(0, 0, (UINT_MAX + 1) * 3 + 123), (0, 0, 123))
989 def test_long_converter(self):
991 with self.assertRaises(OverflowError):
993 with self.assertRaises(OverflowError):
995 with self.assertRaises(TypeError):
997 self.assertEqual(ac_tester.long_converter(), (12,))
998 self.assertEqual(ac_tester.long_converter(-1234), (-1234,))
1000 def test_unsigned_long_converter(self):
1002 with self.assertRaises(ValueError):
1004 with self.assertRaises(OverflowError):
1006 with self.assertRaises(OverflowError):
1008 with self.assertRaises(TypeError):
1010 self.assertEqual(ac_tester.unsigned_long_converter(), (12, 34, 56))
1011 self.assertEqual(ac_tester.unsigned_long_converter(0, 0, ULONG_MAX + 1), (0, 0, 0))
1012 self.assertEqual(ac_tester.unsigned_long_converter(0, 0, (ULONG_MAX + 1) * 3 + 123), (0, 0, 123))
1014 def test_long_long_converter(self):
1016 with self.assertRaises(OverflowError):
1018 with self.assertRaises(OverflowError):
1020 with self.assertRaises(TypeError):
1022 self.assertEqual(ac_tester.long_long_converter(), (12,))
1023 self.assertEqual(ac_tester.long_long_converter(-1234), (-1234,))
1025 def test_unsigned_long_long_converter(self):
1027 with self.assertRaises(ValueError):
1029 with self.assertRaises(OverflowError):
1031 with self.assertRaises(OverflowError):
1033 with self.assertRaises(TypeError):
1035 self.assertEqual(ac_tester.unsigned_long_long_converter(), (12, 34, 56))
1036 self.assertEqual(ac_tester.unsigned_long_long_converter(0, 0, ULLONG_MAX + 1), (0, 0, 0))
1037 self.assertEqual(ac_tester.unsigned_long_long_converter(0, 0, (ULLONG_MAX + 1) * 3 + 123), (0, 0, 123))
1039 def test_py_ssize_t_converter(self):
1041 with self.assertRaises(OverflowError):
1043 with self.assertRaises(OverflowError):
1045 with self.assertRaises(TypeError):
1047 self.assertEqual(ac_tester.py_ssize_t_converter(), (12, 34, 56))
1048 self.assertEqual(ac_tester.py_ssize_t_converter(1, 2, None), (1, 2, 56))
1050 def test_slice_index_converter(self):
1052 with self.assertRaises(TypeError):
1054 self.assertEqual(ac_tester.slice_index_converter(), (12, 34, 56))
1055 self.assertEqual(ac_tester.slice_index_converter(1, 2, None), (1, 2, 56))
1056 self.assertEqual(ac_tester.slice_index_converter(PY_SSIZE_T_MAX, PY_SSIZE_T_MAX + 1, PY_SSIZE_T_MAX + 1234),
1058 self.assertEqual(ac_tester.slice_index_converter(PY_SSIZE_T_MIN, PY_SSIZE_T_MIN - 1, PY_SSIZE_T_MIN - 1234),
1061 def test_size_t_converter(self):
1062 with self.assertRaises(ValueError):
1064 with self.assertRaises(TypeError):
1066 self.assertEqual(ac_tester.size_t_converter(), (12,))
1068 def test_float_converter(self):
1069 with self.assertRaises(TypeError):
1071 self.assertEqual(ac_tester.float_converter(), (12.5,))
1072 self.assertEqual(ac_tester.float_converter(-0.5), (-0.5,))
1074 def test_double_converter(self):
1075 with self.assertRaises(TypeError):
1077 self.assertEqual(ac_tester.double_converter(), (12.5,))
1078 self.assertEqual(ac_tester.double_converter(-0.5), (-0.5,))
1080 def test_py_complex_converter(self):
1081 with self.assertRaises(TypeError):
1083 self.assertEqual(ac_tester.py_complex_converter(complex(1, 2)), (complex(1, 2),))
1084 self.assertEqual(ac_tester.py_complex_converter(complex('-1-2j')), (complex('-1-2j'),))
1085 self.assertEqual(ac_tester.py_complex_converter(-0.5), (-0.5,))
1086 self.assertEqual(ac_tester.py_complex_converter(10), (10,))
1088 def test_str_converter(self):
1089 with self.assertRaises(TypeError):
1091 with self.assertRaises(TypeError):
1093 with self.assertRaises(ValueError):
1095 self.assertEqual(ac_tester.str_converter('a', b'b', 'c'), ('a', 'b', 'c'))
1096 self.assertEqual(ac_tester.str_converter('a', b'b', b'c'), ('a', 'b', 'c'))
1097 self.assertEqual(ac_tester.str_converter('a', b'b', 'c\0c'), ('a', 'b', 'c\0c'))
1099 def test_str_converter_encoding(self):
1100 with self.assertRaises(TypeError):
1102 self.assertEqual(ac_tester.str_converter_encoding('a', 'b', 'c'), ('a', 'b', 'c'))
1103 with self.assertRaises(TypeError):
1105 self.assertEqual(ac_tester.str_converter_encoding('a', b'b', bytearray([ord('c')])), ('a', 'b', 'c'))
1106 self.assertEqual(ac_tester.str_converter_encoding('a', b'b', bytearray([ord('c'), 0, ord('c')])),
1108 self.assertEqual(ac_tester.str_converter_encoding('a', b'b', b'c\x00c'), ('a', 'b', 'c\x00c'))
1110 def test_py_buffer_converter(self):
1111 with self.assertRaises(TypeError):
1113 self.assertEqual(ac_tester.py_buffer_converter('abc', bytearray([1, 2, 3])), (b'abc', b'\x01\x02\x03'))
1115 def test_keywords(self):
1116 self.assertEqual(ac_tester.keywords(1, 2), (1, 2))
1117 self.assertEqual(ac_tester.keywords(1, b=2), (1, 2))
1118 self.assertEqual(ac_tester.keywords(a=1, b=2), (1, 2))
1120 def test_keywords_kwonly(self):
1121 with self.assertRaises(TypeError):
1123 self.assertEqual(ac_tester.keywords_kwonly(1, b=2), (1, 2))
1124 self.assertEqual(ac_tester.keywords_kwonly(a=1, b=2), (1, 2))
1126 def test_keywords_opt(self):
1127 self.assertEqual(ac_tester.keywords_opt(1), (1, None, None))
1128 self.assertEqual(ac_tester.keywords_opt(1, 2), (1, 2, None))
1129 self.assertEqual(ac_tester.keywords_opt(1, 2, 3), (1, 2, 3))
1130 self.assertEqual(ac_tester.keywords_opt(1, b=2), (1, 2, None))
1131 self.assertEqual(ac_tester.keywords_opt(1, 2, c=3), (1, 2, 3))
1132 self.assertEqual(ac_tester.keywords_opt(a=1, c=3), (1, None, 3))
1133 self.assertEqual(ac_tester.keywords_opt(a=1, b=2, c=3), (1, 2, 3))
1135 def test_keywords_opt_kwonly(self):
1136 self.assertEqual(ac_tester.keywords_opt_kwonly(1), (1, None, None, None))
1137 self.assertEqual(ac_tester.keywords_opt_kwonly(1, 2), (1, 2, None, None))
1138 with self.assertRaises(TypeError):
1140 self.assertEqual(ac_tester.keywords_opt_kwonly(1, b=2), (1, 2, None, None))
1141 self.assertEqual(ac_tester.keywords_opt_kwonly(1, 2, c=3), (1, 2, 3, None))
1142 self.assertEqual(ac_tester.keywords_opt_kwonly(a=1, c=3), (1, None, 3, None))
1143 self.assertEqual(ac_tester.keywords_opt_kwonly(a=1, b=2, c=3, d=4), (1, 2, 3, 4))
1145 def test_keywords_kwonly_opt(self):
1146 self.assertEqual(ac_tester.keywords_kwonly_opt(1), (1, None, None))
1147 with self.assertRaises(TypeError):
1149 self.assertEqual(ac_tester.keywords_kwonly_opt(1, b=2), (1, 2, None))
1150 self.assertEqual(ac_tester.keywords_kwonly_opt(a=1, c=3), (1, None, 3))
1151 self.assertEqual(ac_tester.keywords_kwonly_opt(a=1, b=2, c=3), (1, 2, 3))
1153 def test_posonly_keywords(self):
1154 with self.assertRaises(TypeError):
1156 with self.assertRaises(TypeError):
1158 self.assertEqual(ac_tester.posonly_keywords(1, 2), (1, 2))
1159 self.assertEqual(ac_tester.posonly_keywords(1, b=2), (1, 2))
1161 def test_posonly_kwonly(self):
1162 with self.assertRaises(TypeError):
1164 with self.assertRaises(TypeError):
1166 with self.assertRaises(TypeError):
1168 self.assertEqual(ac_tester.posonly_kwonly(1, b=2), (1, 2))
1170 def test_posonly_keywords_kwonly(self):
1171 with self.assertRaises(TypeError):
1173 with self.assertRaises(TypeError):
1175 with self.assertRaises(TypeError):
1177 self.assertEqual(ac_tester.posonly_keywords_kwonly(1, 2, c=3), (1, 2, 3))
1178 self.assertEqual(ac_tester.posonly_keywords_kwonly(1, b=2, c=3), (1, 2, 3))
1180 def test_posonly_keywords_opt(self):
1181 with self.assertRaises(TypeError):
1183 self.assertEqual(ac_tester.posonly_keywords_opt(1, 2), (1, 2, None, None))
1184 self.assertEqual(ac_tester.posonly_keywords_opt(1, 2, 3), (1, 2, 3, None))
1185 self.assertEqual(ac_tester.posonly_keywords_opt(1, 2, 3, 4), (1, 2, 3, 4))
1186 self.assertEqual(ac_tester.posonly_keywords_opt(1, b=2), (1, 2, None, None))
1187 self.assertEqual(ac_tester.posonly_keywords_opt(1, 2, c=3), (1, 2, 3, None))
1188 with self.assertRaises(TypeError):
1190 self.assertEqual(ac_tester.posonly_keywords_opt(1, b=2, c=3, d=4), (1, 2, 3, 4))
1192 def test_posonly_opt_keywords_opt(self):
1193 self.assertEqual(ac_tester.posonly_opt_keywords_opt(1), (1, None, None, None))
1194 self.assertEqual(ac_tester.posonly_opt_keywords_opt(1, 2), (1, 2, None, None))
1195 self.assertEqual(ac_tester.posonly_opt_keywords_opt(1, 2, 3), (1, 2, 3, None))
1196 self.assertEqual(ac_tester.posonly_opt_keywords_opt(1, 2, 3, 4), (1, 2, 3, 4))
1197 with self.assertRaises(TypeError):
1199 self.assertEqual(ac_tester.posonly_opt_keywords_opt(1, 2, c=3), (1, 2, 3, None))
1200 self.assertEqual(ac_tester.posonly_opt_keywords_opt(1, 2, c=3, d=4), (1, 2, 3, 4))
1201 with self.assertRaises(TypeError):
1204 def test_posonly_kwonly_opt(self):
1205 with self.assertRaises(TypeError):
1207 with self.assertRaises(TypeError):
1209 self.assertEqual(ac_tester.posonly_kwonly_opt(1, b=2), (1, 2, None, None))
1210 self.assertEqual(ac_tester.posonly_kwonly_opt(1, b=2, c=3), (1, 2, 3, None))
1211 self.assertEqual(ac_tester.posonly_kwonly_opt(1, b=2, c=3, d=4), (1, 2, 3, 4))
1212 with self.assertRaises(TypeError):
1215 def test_posonly_opt_kwonly_opt(self):
1216 self.assertEqual(ac_tester.posonly_opt_kwonly_opt(1), (1, None, None, None))
1217 self.assertEqual(ac_tester.posonly_opt_kwonly_opt(1, 2), (1, 2, None, None))
1218 with self.assertRaises(TypeError):
1220 with self.assertRaises(TypeError):
1222 self.assertEqual(ac_tester.posonly_opt_kwonly_opt(1, 2, c=3), (1, 2, 3, None))
1223 self.assertEqual(ac_tester.posonly_opt_kwonly_opt(1, 2, c=3, d=4), (1, 2, 3, 4))
1225 def test_posonly_keywords_kwonly_opt(self):
1226 with self.assertRaises(TypeError):
1228 with self.assertRaises(TypeError):
1230 with self.assertRaises(TypeError):
1232 with self.assertRaises(TypeError):
1234 with self.assertRaises(TypeError):
1236 self.assertEqual(ac_tester.posonly_keywords_kwonly_opt(1, 2, c=3), (1, 2, 3, None, None))
1237 self.assertEqual(ac_tester.posonly_keywords_kwonly_opt(1, b=2, c=3), (1, 2, 3, None, None))
1238 self.assertEqual(ac_tester.posonly_keywords_kwonly_opt(1, 2, c=3, d=4), (1, 2, 3, 4, None))
1239 self.assertEqual(ac_tester.posonly_keywords_kwonly_opt(1, 2, c=3, d=4, e=5), (1, 2, 3, 4, 5))
1241 def test_posonly_keywords_opt_kwonly_opt(self):
1242 with self.assertRaises(TypeError):
1244 self.assertEqual(ac_tester.posonly_keywords_opt_kwonly_opt(1, 2), (1, 2, None, None, None))
1245 self.assertEqual(ac_tester.posonly_keywords_opt_kwonly_opt(1, b=2), (1, 2, None, None, None))
1246 with self.assertRaises(TypeError):
1248 with self.assertRaises(TypeError):
1250 self.assertEqual(ac_tester.posonly_keywords_opt_kwonly_opt(1, 2, c=3), (1, 2, 3, None, None))
1251 self.assertEqual(ac_tester.posonly_keywords_opt_kwonly_opt(1, b=2, c=3), (1, 2, 3, None, None))
1252 self.assertEqual(ac_tester.posonly_keywords_opt_kwonly_opt(1, 2, 3, d=4), (1, 2, 3, 4, None))
1253 self.assertEqual(ac_tester.posonly_keywords_opt_kwonly_opt(1, 2, c=3, d=4), (1, 2, 3, 4, None))
1254 self.assertEqual(ac_tester.posonly_keywords_opt_kwonly_opt(1, 2, 3, d=4, e=5), (1, 2, 3, 4, 5))
1255 self.assertEqual(ac_tester.posonly_keywords_opt_kwonly_opt(1, 2, c=3, d=4, e=5), (1, 2, 3, 4, 5))
1257 def test_posonly_opt_keywords_opt_kwonly_opt(self):
1258 self.assertEqual(ac_tester.posonly_opt_keywords_opt_kwonly_opt(1), (1, None, None, None))
1259 self.assertEqual(ac_tester.posonly_opt_keywords_opt_kwonly_opt(1, 2), (1, 2, None, None))
1260 with self.assertRaises(TypeError):
1262 self.assertEqual(ac_tester.posonly_opt_keywords_opt_kwonly_opt(1, 2, 3), (1, 2, 3, None))
1263 self.assertEqual(ac_tester.posonly_opt_keywords_opt_kwonly_opt(1, 2, c=3), (1, 2, 3, None))
1264 self.assertEqual(ac_tester.posonly_opt_keywords_opt_kwonly_opt(1, 2, 3, d=4), (1, 2, 3, 4))
1265 self.assertEqual(ac_tester.posonly_opt_keywords_opt_kwonly_opt(1, 2, c=3, d=4), (1, 2, 3, 4))
1266 with self.assertRaises(TypeError):
1269 def test_keyword_only_parameter(self):
1270 with self.assertRaises(TypeError):
1272 with self.assertRaises(TypeError):
1274 self.assertEqual(ac_tester.keyword_only_parameter(a=1), (1,))
1276 def test_posonly_vararg(self):
1277 with self.assertRaises(TypeError):
1279 self.assertEqual(ac_tester.posonly_vararg(1, 2), (1, 2, ()))
1280 self.assertEqual(ac_tester.posonly_vararg(1, b=2), (1, 2, ()))
1281 self.assertEqual(ac_tester.posonly_vararg(1, 2, 3, 4), (1, 2, (3, 4)))
1283 def test_vararg_and_posonly(self):
1284 with self.assertRaises(TypeError):
1286 with self.assertRaises(TypeError):
1288 self.assertEqual(ac_tester.vararg_and_posonly(1, 2, 3, 4), (1, (2, 3, 4)))
1290 def test_vararg(self):
1291 with self.assertRaises(TypeError):
1293 with self.assertRaises(TypeError):
1295 self.assertEqual(ac_tester.vararg(1, 2, 3, 4), (1, (2, 3, 4)))
1297 def test_vararg_with_default(self):
1298 with self.assertRaises(TypeError):
1300 self.assertEqual(ac_tester.vararg_with_default(1, b=False), (1, (), False))
1301 self.assertEqual(ac_tester.vararg_with_default(1, 2, 3, 4), (1, (2, 3, 4), False))
1302 self.assertEqual(ac_tester.vararg_with_default(1, 2, 3, 4, b=True), (1, (2, 3, 4), True))
1304 def test_vararg_with_only_defaults(self):
1305 self.assertEqual(ac_tester.vararg_with_only_defaults(), ((), None))
1306 self.assertEqual(ac_tester.vararg_with_only_defaults(b=2), ((), 2))
1307 self.assertEqual(ac_tester.vararg_with_only_defaults(1, b=2), ((1, ), 2))
1308 self.assertEqual(ac_tester.vararg_with_only_defaults(1, 2, 3, 4), ((1, 2, 3, 4), None))
1309 self.assertEqual(ac_tester.vararg_with_only_defaults(1, 2, 3, 4, b=5), ((1, 2, 3, 4), 5))
1311 def test_gh_32092_oob(self):
1314 def test_gh_32092_kw_pass(self):
1317 def test_gh_99233_refcount(self):
1322 self.assertEqual(arg_refcount_origin, arg_refcount_after)
1324 def test_gh_99240_double_free(self):
1326 with self.assertRaisesRegex(TypeError, expected_error):