MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_bad_state

Method test_bad_state

Lib/test/pickletester.py:1385–1418  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1383 self.check_unpickling_error(error, b'cbuiltins\nint\n)N\x92.')
1384
1385 def test_bad_state(self):
1386 c = C()
1387 c.x = None
1388 base = b'c__main__\nC\n)\x81'
1389 self.assertEqual(self.loads(base + b'}X\x01\x00\x00\x00xNsb.'), c)
1390 self.assertEqual(self.loads(base + b'N}X\x01\x00\x00\x00xNs\x86b.'), c)
1391 # non-hashable dict key
1392 self.check_unpickling_error(TypeError, base + b'}]Nsb.')
1393 # state = list
1394 error = (pickle.UnpicklingError, AttributeError)
1395 self.check_unpickling_error(error, base + b'](}}eb.')
1396 # state = 1-tuple
1397 self.check_unpickling_error(error, base + b'}\x85b.')
1398 # state = 3-tuple
1399 self.check_unpickling_error(error, base + b'}}}\x87b.')
1400 # non-hashable slot name
1401 self.check_unpickling_error(TypeError, base + b'}}]Ns\x86b.')
1402 # non-string slot name
1403 self.check_unpickling_error(TypeError, base + b'}}NNs\x86b.')
1404 # dict = True
1405 self.check_unpickling_error(error, base + b'\x88}\x86b.')
1406 # slots dict = True
1407 self.check_unpickling_error(error, base + b'}\x88\x86b.')
1408
1409 class BadKey1:
1410 count = 1
1411 def __hash__(self):
1412 if not self.count:
1413 raise CustomError
1414 self.count -= 1
1415 return 42
1416 __main__.BadKey1 = BadKey1
1417 # bad hashable dict key
1418 self.check_unpickling_error(CustomError, base + b'}c__main__\nBadKey1\n)\x81Nsb.')
1419
1420 def test_bad_stack(self):
1421 badpickles = [

Callers

nothing calls this directly

Calls 4

loadsMethod · 0.95
CClass · 0.70
assertEqualMethod · 0.45

Tested by

no test coverage detected