Update test/test_types from CPython 3.11.2 by tdub0 · Pull Request #4683 · RustPython/RustPython
# other format specifiers shouldn't work on floats, # in particular int specifiers for format_spec in ([chr(x) for x in range(ord('a'), ord('z')+1)] + [chr(x) for x in range(ord('A'), ord('Z')+1)]): if not format_spec in 'eEfFgGn%': self.assertRaises(ValueError, format, 0.0, format_spec) self.assertRaises(ValueError, format, 1.0, format_spec) self.assertRaises(ValueError, format, -1.0, format_spec) self.assertRaises(ValueError, format, 1e100, format_spec) self.assertRaises(ValueError, format, -1e100, format_spec) self.assertRaises(ValueError, format, 1e-100, format_spec) self.assertRaises(ValueError, format, -1e-100, format_spec) # confirm format options expected to fail on floats, such as integer # presentation types for format_spec in 'sbcdoxX': self.assertRaises(ValueError, format, 0.0, format_spec) self.assertRaises(ValueError, format, 1.0, format_spec) self.assertRaises(ValueError, format, -1.0, format_spec) self.assertRaises(ValueError, format, 1e100, format_spec) self.assertRaises(ValueError, format, -1e100, format_spec) self.assertRaises(ValueError, format, 1e-100, format_spec) self.assertRaises(ValueError, format, -1e-100, format_spec)
# Alternate float formatting test(1.0, '.0e', '1e+00')
# TODO: RUSTPYTHON No signature found in builtin method __get__ of 'method_descriptor' objects. @unittest.expectedFailure def test_dunder_get_signature(self): sig = inspect.signature(object.__init__.__get__) self.assertEqual(list(sig.parameters), ["instance", "owner"]) # gh-93021: Second parameter is optional self.assertIs(sig.parameters["owner"].default, None)
def test_method_wrapper_types(self): self.assertIsInstance(object().__init__, types.MethodWrapperType) self.assertIsInstance(object().__str__, types.MethodWrapperType)
def test_traceback_and_frame_types(self): try: raise OSError except OSError as e: exc = e self.assertIsInstance(exc.__traceback__, types.TracebackType) self.assertIsInstance(exc.__traceback__.tb_frame, types.FrameType)
class UnionTests(unittest.TestCase):
def test_or_type_operator_with_forward(self): T = typing.TypeVar('T')
union_ga = (int | list[str], int | collections.abc.Callable[..., str], int | d) # Raise error when isinstance(type, type | genericalias) union_ga = (list[str] | int, collections.abc.Callable[..., str] | int, d | int) # Raise error when isinstance(type, genericalias | type) for type_ in union_ga: with self.subTest(f"check isinstance/issubclass is invalid for {type_}"): with self.assertRaises(TypeError):