from test
import test_support
class TestCase(unittest
.TestCase
):
fn
= "shelftemp" + os
.extsep
+ "db"
def test_ascii_file_shelf(self
):
s
= shelve
.open(self
.fn
, binary
=False)
self
.assertEqual(s
['key1'], (1,2,3,4))
for f
in glob
.glob(self
.fn
+"*"):
def test_binary_file_shelf(self
):
s
= shelve
.open(self
.fn
, binary
=True)
self
.assertEqual(s
['key1'], (1,2,3,4))
for f
in glob
.glob(self
.fn
+"*"):
def test_proto2_file_shelf(self
):
s
= shelve
.open(self
.fn
, protocol
=2)
self
.assertEqual(s
['key1'], (1,2,3,4))
for f
in glob
.glob(self
.fn
+"*"):
def test_in_memory_shelf(self
):
s
= shelve
.Shelf(d1
, binary
=False)
self
.assertEqual(s
['key1'], (1,2,3,4))
s
= shelve
.Shelf(d2
, binary
=True)
self
.assertEqual(s
['key1'], (1,2,3,4))
self
.assertEqual(len(d1
), 1)
self
.assertNotEqual(d1
, d2
)
def test_mutable_entry(self
):
s
= shelve
.Shelf(d1
, protocol
=2, writeback
=False)
self
.assertEqual(s
['key1'], [1,2,3,4])
self
.assertEqual(s
['key1'], [1,2,3,4])
s
= shelve
.Shelf(d2
, protocol
=2, writeback
=True)
self
.assertEqual(s
['key1'], [1,2,3,4])
self
.assertEqual(s
['key1'], [1,2,3,4,5])
self
.assertEqual(len(d1
), 1)
self
.assertEqual(len(d2
), 1)
from test
import mapping_tests
class TestShelveBase(mapping_tests
.BasicTestMappingProtocol
):
def __init__(self
, *args
, **kw
):
mapping_tests
.BasicTestMappingProtocol
.__init
__(self
, *args
, **kw
)
return {"key1":"value1", "key2":2, "key3":(1,2,3)}
def _empty_mapping(self
):
x
= shelve
.Shelf({}, **self
._args
)
x
= shelve
.open(self
.fn
+str(self
.counter
), **self
._args
)
for f
in glob
.glob(self
.fn
+"*"):
class TestAsciiFileShelve(TestShelveBase
):
class TestBinaryFileShelve(TestShelveBase
):
class TestProto2FileShelve(TestShelveBase
):
class TestAsciiMemShelve(TestShelveBase
):
class TestBinaryMemShelve(TestShelveBase
):
class TestProto2MemShelve(TestShelveBase
):
test_support
.run_unittest(
if __name__
== "__main__":