5 from test
import test_support
7 class TestCase(unittest
.TestCase
):
11 def test_ascii_file_shelf(self
):
13 s
= shelve
.open(self
.fn
, binary
=False)
15 self
.assertEqual(s
['key1'], (1,2,3,4))
18 for f
in glob
.glob(self
.fn
+"*"):
21 def test_binary_file_shelf(self
):
23 s
= shelve
.open(self
.fn
, binary
=True)
25 self
.assertEqual(s
['key1'], (1,2,3,4))
28 for f
in glob
.glob(self
.fn
+"*"):
31 def test_proto2_file_shelf(self
):
33 s
= shelve
.open(self
.fn
, protocol
=2)
35 self
.assertEqual(s
['key1'], (1,2,3,4))
38 for f
in glob
.glob(self
.fn
+"*"):
41 def test_in_memory_shelf(self
):
43 s
= shelve
.Shelf(d1
, binary
=False)
45 self
.assertEqual(s
['key1'], (1,2,3,4))
48 s
= shelve
.Shelf(d2
, binary
=True)
50 self
.assertEqual(s
['key1'], (1,2,3,4))
53 self
.assertEqual(len(d1
), 1)
54 self
.assertNotEqual(d1
, d2
)
56 def test_mutable_entry(self
):
58 s
= shelve
.Shelf(d1
, protocol
=2, writeback
=False)
60 self
.assertEqual(s
['key1'], [1,2,3,4])
62 self
.assertEqual(s
['key1'], [1,2,3,4])
66 s
= shelve
.Shelf(d2
, protocol
=2, writeback
=True)
68 self
.assertEqual(s
['key1'], [1,2,3,4])
70 self
.assertEqual(s
['key1'], [1,2,3,4,5])
73 self
.assertEqual(len(d1
), 1)
74 self
.assertEqual(len(d2
), 1)
77 from test_userdict
import TestMappingProtocol
79 class TestShelveBase(TestMappingProtocol
):
82 def __init__(self
, *args
, **kw
):
84 TestMappingProtocol
.__init
__(self
, *args
, **kw
)
85 _tested_class
= shelve
.Shelf
87 return {"key1":"value1", "key2":2, "key3":(1,2,3)}
88 def _empty_mapping(self
):
90 x
= shelve
.Shelf({}, **self
._args
)
93 x
= shelve
.open(self
.fn
+str(self
.counter
), **self
._args
)
101 for f
in glob
.glob(self
.fn
+"*"):
104 class TestAsciiFileShelve(TestShelveBase
):
105 _args
={'binary':False}
107 class TestBinaryFileShelve(TestShelveBase
):
108 _args
={'binary':True}
110 class TestProto2FileShelve(TestShelveBase
):
113 class TestAsciiMemShelve(TestShelveBase
):
114 _args
={'binary':False}
116 class TestBinaryMemShelve(TestShelveBase
):
117 _args
={'binary':True}
119 class TestProto2MemShelve(TestShelveBase
):
124 suite
= unittest
.TestSuite()
125 suite
.addTest(unittest
.makeSuite(TestAsciiFileShelve
))
126 suite
.addTest(unittest
.makeSuite(TestBinaryFileShelve
))
127 suite
.addTest(unittest
.makeSuite(TestProto2FileShelve
))
128 suite
.addTest(unittest
.makeSuite(TestAsciiMemShelve
))
129 suite
.addTest(unittest
.makeSuite(TestBinaryMemShelve
))
130 suite
.addTest(unittest
.makeSuite(TestProto2MemShelve
))
131 suite
.addTest(unittest
.makeSuite(TestCase
))
132 test_support
.run_suite(suite
)
134 if __name__
== "__main__":