Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Lib/test/test_cpickle.py

    r2 r391  
    1 import cPickle, unittest
    2 from cStringIO import StringIO
    3 from test.pickletester import AbstractPickleTests, AbstractPickleModuleTests
     1import cPickle
     2import cStringIO
     3import io
     4import unittest
     5from test.pickletester import (AbstractPickleTests,
     6                               AbstractPickleModuleTests,
     7                               AbstractPicklerUnpicklerObjectTests,
     8                               BigmemPickleTests)
    49from test import test_support
     10
     11class cStringIOMixin:
     12    output = input = cStringIO.StringIO
     13
     14    def close(self, f):
     15        pass
     16
     17class BytesIOMixin:
     18    output = input = io.BytesIO
     19
     20    def close(self, f):
     21        pass
     22
     23class FileIOMixin:
     24
     25    def output(self):
     26        return open(test_support.TESTFN, 'wb+')
     27
     28    def input(self, data):
     29        f = open(test_support.TESTFN, 'wb+')
     30        try:
     31            f.write(data)
     32            f.seek(0)
     33            return f
     34        except:
     35            f.close()
     36            raise
     37
     38    def close(self, f):
     39        f.close()
     40        test_support.unlink(test_support.TESTFN)
     41
    542
    643class cPickleTests(AbstractPickleTests, AbstractPickleModuleTests):
     
    1653
    1754    def dumps(self, arg, proto=0):
    18         f = StringIO()
    19         p = cPickle.Pickler(f, proto)
    20         p.dump(arg)
    21         f.seek(0)
    22         return f.read()
     55        f = self.output()
     56        try:
     57            p = cPickle.Pickler(f, proto)
     58            p.dump(arg)
     59            f.seek(0)
     60            return f.read()
     61        finally:
     62            self.close(f)
    2363
    2464    def loads(self, buf):
    25         f = StringIO(buf)
    26         p = cPickle.Unpickler(f)
    27         return p.load()
    28 
    29     error = cPickle.BadPickleGet
     65        f = self.input(buf)
     66        try:
     67            p = cPickle.Unpickler(f)
     68            return p.load()
     69        finally:
     70            self.close(f)
     71
     72    error = cPickle.BadPickleGet
     73
     74class cStringIOCPicklerTests(cStringIOMixin, cPicklePicklerTests):
     75    pass
     76
     77class BytesIOCPicklerTests(BytesIOMixin, cPicklePicklerTests):
     78    pass
     79
     80class FileIOCPicklerTests(FileIOMixin, cPicklePicklerTests):
     81    pass
     82
    3083
    3184class cPickleListPicklerTests(AbstractPickleTests):
     
    3790
    3891    def loads(self, *args):
    39         f = StringIO(args[0])
    40         p = cPickle.Unpickler(f)
    41         return p.load()
    42 
    43     error = cPickle.BadPickleGet
     92        f = self.input(args[0])
     93        try:
     94            p = cPickle.Unpickler(f)
     95            return p.load()
     96        finally:
     97            self.close(f)
     98
     99    error = cPickle.BadPickleGet
     100
     101class cStringIOCPicklerListTests(cStringIOMixin, cPickleListPicklerTests):
     102    pass
     103
     104class BytesIOCPicklerListTests(BytesIOMixin, cPickleListPicklerTests):
     105    pass
     106
     107class FileIOCPicklerListTests(FileIOMixin, cPickleListPicklerTests):
     108    pass
     109
    44110
    45111class cPickleFastPicklerTests(AbstractPickleTests):
    46112
    47113    def dumps(self, arg, proto=0):
    48         f = StringIO()
    49         p = cPickle.Pickler(f, proto)
    50         p.fast = 1
    51         p.dump(arg)
    52         f.seek(0)
    53         return f.read()
     114        f = self.output()
     115        try:
     116            p = cPickle.Pickler(f, proto)
     117            p.fast = 1
     118            p.dump(arg)
     119            f.seek(0)
     120            return f.read()
     121        finally:
     122            self.close(f)
    54123
    55124    def loads(self, *args):
    56         f = StringIO(args[0])
    57         p = cPickle.Unpickler(f)
    58         return p.load()
     125        f = self.input(args[0])
     126        try:
     127            p = cPickle.Unpickler(f)
     128            return p.load()
     129        finally:
     130            self.close(f)
    59131
    60132    error = cPickle.BadPickleGet
     
    96168        self.assertEqual(a, b)
    97169
     170class cStringIOCPicklerFastTests(cStringIOMixin, cPickleFastPicklerTests):
     171    pass
     172
     173class BytesIOCPicklerFastTests(BytesIOMixin, cPickleFastPicklerTests):
     174    pass
     175
     176class FileIOCPicklerFastTests(FileIOMixin, cPickleFastPicklerTests):
     177    pass
     178
     179
     180class cPicklePicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests):
     181
     182    pickler_class = cPickle.Pickler
     183    unpickler_class = cPickle.Unpickler
     184
     185class cPickleBigmemPickleTests(BigmemPickleTests):
     186
     187    def dumps(self, arg, proto=0, fast=0):
     188        # Ignore fast
     189        return cPickle.dumps(arg, proto)
     190
     191    def loads(self, buf):
     192        # Ignore fast
     193        return cPickle.loads(buf)
     194
     195
    98196class Node(object):
    99197    pass
     
    122220    test_support.run_unittest(
    123221        cPickleTests,
    124         cPicklePicklerTests,
    125         cPickleListPicklerTests,
    126         cPickleFastPicklerTests,
     222        cStringIOCPicklerTests,
     223        BytesIOCPicklerTests,
     224        FileIOCPicklerTests,
     225        cStringIOCPicklerListTests,
     226        BytesIOCPicklerListTests,
     227        FileIOCPicklerListTests,
     228        cStringIOCPicklerFastTests,
     229        BytesIOCPicklerFastTests,
     230        FileIOCPicklerFastTests,
    127231        cPickleDeepRecursive,
     232        cPicklePicklerUnpicklerObjectTests,
     233        cPickleBigmemPickleTests,
    128234    )
    129235
Note: See TracChangeset for help on using the changeset viewer.