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

Method test_state_methods

Lib/test/test_multibytecodec.py:274–300  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

272 self.assertRaises(TypeError, decoder.decode, "")
273
274 def test_state_methods(self):
275 decoder = codecs.getincrementaldecoder('euc_jp')()
276
277 # Decode a complete input sequence
278 self.assertEqual(decoder.decode(b'\xa4\xa6'), '\u3046')
279 pending1, _ = decoder.getstate()
280 self.assertEqual(pending1, b'')
281
282 # Decode first half of a partial input sequence
283 self.assertEqual(decoder.decode(b'\xa4'), '')
284 pending2, flags2 = decoder.getstate()
285 self.assertEqual(pending2, b'\xa4')
286
287 # Decode second half of a partial input sequence
288 self.assertEqual(decoder.decode(b'\xa6'), '\u3046')
289 pending3, _ = decoder.getstate()
290 self.assertEqual(pending3, b'')
291
292 # Jump back and decode second half of partial input sequence again
293 decoder.setstate((pending2, flags2))
294 self.assertEqual(decoder.decode(b'\xa6'), '\u3046')
295 pending4, _ = decoder.getstate()
296 self.assertEqual(pending4, b'')
297
298 # Ensure state values are preserved correctly
299 decoder.setstate((b'abc', 123456789))
300 self.assertEqual(decoder.getstate(), (b'abc', 123456789))
301
302 def test_setstate_validates_input(self):
303 decoder = codecs.getincrementaldecoder('euc_jp')()

Callers

nothing calls this directly

Calls 4

assertEqualMethod · 0.45
decodeMethod · 0.45
getstateMethod · 0.45
setstateMethod · 0.45

Tested by

no test coverage detected