MCPcopy Index your code
hub / github.com/python/cpython / test_widechar

Method test_widechar

Lib/test/test_capi/test_unicode.py:1906–1936  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1904 self.assertEqual(writer.finish(), "text-\xE9-\u20AC-more-incomplete-default")
1905
1906 def test_widechar(self):
1907 from _testcapi import SIZEOF_WCHAR_T
1908
1909 if SIZEOF_WCHAR_T == 2:
1910 encoding = 'utf-16le' if sys.byteorder == 'little' else 'utf-16be'
1911 elif SIZEOF_WCHAR_T == 4:
1912 encoding = 'utf-32le' if sys.byteorder == 'little' else 'utf-32be'
1913
1914 writer = self.create_writer(0)
1915 writer.write_widechar("latin1=\xE9".encode(encoding))
1916 writer.write_char(ord("-"))
1917 writer.write_widechar("euro=\u20AC".encode(encoding))
1918 writer.write_char(ord("-"))
1919 writer.write_widechar("max=\U0010ffff".encode(encoding))
1920 writer.write_char(ord("-"))
1921 writer.write_widechar("zeroes=".encode(encoding).ljust(SIZEOF_WCHAR_T * 10, b'\0'),
1922 10)
1923 writer.write_char(ord('.'))
1924
1925 if SIZEOF_WCHAR_T == 4:
1926 invalid = (b'\x00\x00\x11\x00' if sys.byteorder == 'little' else
1927 b'\x00\x11\x00\x00')
1928 with self.assertRaises(ValueError):
1929 writer.write_widechar("invalid=".encode(encoding) + invalid)
1930 writer.write_widechar(b'', -5)
1931 writer.write_widechar(NULL, 0)
1932 # CRASHES writer.write_widechar(NULL, 1)
1933 # CRASHES writer.write_widechar(NULL, -1)
1934
1935 self.assertEqual(writer.finish(),
1936 "latin1=\xE9-euro=\u20AC-max=\U0010ffff-zeroes=\0\0\0.")
1937
1938 def test_ucs4(self):
1939 encoding = 'utf-32le' if sys.byteorder == 'little' else 'utf-32be'

Callers

nothing calls this directly

Calls 7

create_writerMethod · 0.95
write_charMethod · 0.80
encodeMethod · 0.45
ljustMethod · 0.45
assertRaisesMethod · 0.45
assertEqualMethod · 0.45
finishMethod · 0.45

Tested by

no test coverage detected