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

Method test_custom_find_class

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

Source from the content-addressed store, hash-verified

1363 self.assertRaises((TypeError, AttributeError), unpickler4.find_class, 'math', None)
1364
1365 def test_custom_find_class(self):
1366 def loads(data):
1367 class Unpickler(self.unpickler):
1368 def find_class(self, module_name, global_name):
1369 return (module_name, global_name)
1370 return Unpickler(io.BytesIO(data)).load()
1371
1372 self.assertEqual(loads(b'cmath\nlog\n.'), ('math', 'log'))
1373 self.assertEqual(loads(b'\x8c\x04math\x8c\x03log\x93.'), ('math', 'log'))
1374
1375 def loads(data):
1376 class Unpickler(self.unpickler):
1377 @staticmethod
1378 def find_class(module_name, global_name):
1379 return (module_name, global_name)
1380 return Unpickler(io.BytesIO(data)).load()
1381
1382 self.assertEqual(loads(b'cmath\nlog\n.'), ('math', 'log'))
1383 self.assertEqual(loads(b'\x8c\x04math\x8c\x03log\x93.'), ('math', 'log'))
1384
1385 def loads(data):
1386 class Unpickler(self.unpickler):
1387 @classmethod
1388 def find_class(cls, module_name, global_name):
1389 return (module_name, global_name)
1390 return Unpickler(io.BytesIO(data)).load()
1391
1392 self.assertEqual(loads(b'cmath\nlog\n.'), ('math', 'log'))
1393 self.assertEqual(loads(b'\x8c\x04math\x8c\x03log\x93.'), ('math', 'log'))
1394
1395 def loads(data):
1396 class Unpickler(self.unpickler):
1397 pass
1398 def find_class(module_name, global_name):
1399 return (module_name, global_name)
1400 unpickler = Unpickler(io.BytesIO(data))
1401 unpickler.find_class = find_class
1402 return unpickler.load()
1403
1404 self.assertEqual(loads(b'cmath\nlog\n.'), ('math', 'log'))
1405 self.assertEqual(loads(b'\x8c\x04math\x8c\x03log\x93.'), ('math', 'log'))
1406
1407 def test_bad_ext_code(self):
1408 # unregistered extension code

Callers

nothing calls this directly

Calls 2

loadsFunction · 0.50
assertEqualMethod · 0.45

Tested by

no test coverage detected