(self)
| 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' |
| 1940 | |
| 1941 | writer = self.create_writer(0) |
| 1942 | writer.write_ucs4("ascii IGNORED".encode(encoding), 5) |
| 1943 | writer.write_char(ord("-")) |
| 1944 | writer.write_ucs4("latin1=\xe9".encode(encoding)) |
| 1945 | writer.write_char(ord("-")) |
| 1946 | writer.write_ucs4("euro=\u20ac".encode(encoding)) |
| 1947 | writer.write_char(ord("-")) |
| 1948 | writer.write_ucs4("max=\U0010ffff".encode(encoding)) |
| 1949 | writer.write_char(ord(".")) |
| 1950 | self.assertEqual(writer.finish(), |
| 1951 | "ascii-latin1=\xE9-euro=\u20AC-max=\U0010ffff.") |
| 1952 | |
| 1953 | # Test some special characters |
| 1954 | writer = self.create_writer(0) |
| 1955 | # Lone surrogate character |
| 1956 | writer.write_ucs4("lone\uDC80".encode(encoding, 'surrogatepass')) |
| 1957 | writer.write_char(ord("-")) |
| 1958 | # Surrogate pair |
| 1959 | writer.write_ucs4("pair\uD83D\uDC0D".encode(encoding, 'surrogatepass')) |
| 1960 | writer.write_char(ord("-")) |
| 1961 | writer.write_ucs4("null[\0]".encode(encoding), 7) |
| 1962 | invalid = (b'\x00\x00\x11\x00' if sys.byteorder == 'little' else |
| 1963 | b'\x00\x11\x00\x00') |
| 1964 | # CRASHES writer.write_ucs4("invalid".encode(encoding) + invalid) |
| 1965 | writer.write_ucs4(NULL, 0) |
| 1966 | # CRASHES writer.write_ucs4(NULL, 1) |
| 1967 | self.assertEqual(writer.finish(), |
| 1968 | "lone\udc80-pair\ud83d\udc0d-null[\x00]") |
| 1969 | |
| 1970 | # invalid size |
| 1971 | writer = self.create_writer(0) |
| 1972 | with self.assertRaises(ValueError): |
| 1973 | writer.write_ucs4("text".encode(encoding), -1) |
| 1974 | self.assertRaises(ValueError, writer.write_ucs4, b'', -1) |
| 1975 | self.assertRaises(ValueError, writer.write_ucs4, NULL, -1) |
| 1976 | |
| 1977 | def test_substring_empty(self): |
| 1978 | writer = self.create_writer(0) |
nothing calls this directly
no test coverage detected