diff options
author | Guido van Rossum <guido@python.org> | 2003-01-29 06:12:46 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2003-01-29 06:12:46 (GMT) |
commit | 0322d0ff134750679f6fe1bd29ad063de43263a4 (patch) | |
tree | e0fae0b7dceec5faa8ab149ca07a6b746ca7da2d /Lib/test/pickletester.py | |
parent | 49c595589ec59e0a0c52d68e408b45dacb47d94d (diff) | |
download | cpython-0322d0ff134750679f6fe1bd29ad063de43263a4.zip cpython-0322d0ff134750679f6fe1bd29ad063de43263a4.tar.gz cpython-0322d0ff134750679f6fe1bd29ad063de43263a4.tar.bz2 |
Test all three EXT opcodes, and move these tests into
TempAbstractPickleTests, because they don't work with cPickle yet.
Diffstat (limited to 'Lib/test/pickletester.py')
-rw-r--r-- | Lib/test/pickletester.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Lib/test/pickletester.py b/Lib/test/pickletester.py index 1736c12..33b96e5 100644 --- a/Lib/test/pickletester.py +++ b/Lib/test/pickletester.py @@ -344,6 +344,67 @@ class TempAbstractPickleTests(unittest.TestCase): ## print ## pickletools.dis(s) + def test_global_ext1(self): + import copy_reg + copy_reg.add_extension(__name__, "MyList", 0xf0) + try: + x = MyList([1, 2, 3]) + x.foo = 42 + x.bar = "hello" + + # Dump using protocol 1 for comparison + s1 = self.dumps(x, 1) + y = self.loads(s1) + self.assertEqual(list(x), list(y)) + self.assertEqual(x.__dict__, y.__dict__) + self.assert_(s1.find(__name__) >= 0) + self.assert_(s1.find("MyList") >= 0) +## import pickletools +## print +## pickletools.dis(s1) + + # Dump using protocol 2 for test + s2 = self.dumps(x, 2) + self.assertEqual(s2.find(__name__), -1) + self.assertEqual(s2.find("MyList"), -1) + y = self.loads(s2) + self.assertEqual(list(x), list(y)) + self.assertEqual(x.__dict__, y.__dict__) +## import pickletools +## print +## pickletools.dis(s2) + + finally: + copy_reg.remove_extension(__name__, "MyList", 0xf0) + + def test_global_ext2(self): + import copy_reg + copy_reg.add_extension(__name__, "MyList", 0xfff0) + try: + x = MyList() + s2 = self.dumps(x, 2) + self.assertEqual(s2.find(__name__), -1) + self.assertEqual(s2.find("MyList"), -1) + y = self.loads(s2) + self.assertEqual(list(x), list(y)) + self.assertEqual(x.__dict__, y.__dict__) + finally: + copy_reg.remove_extension(__name__, "MyList", 0xfff0) + + def test_global_ext4(self): + import copy_reg + copy_reg.add_extension(__name__, "MyList", 0xfffff0) + try: + x = MyList() + s2 = self.dumps(x, 2) + self.assertEqual(s2.find(__name__), -1) + self.assertEqual(s2.find("MyList"), -1) + y = self.loads(s2) + self.assertEqual(list(x), list(y)) + self.assertEqual(x.__dict__, y.__dict__) + finally: + copy_reg.remove_extension(__name__, "MyList", 0xfffff0) + class MyTuple(tuple): pass |