mirror of
https://github.com/samba-team/samba.git
synced 2025-12-06 16:23:49 +03:00
91 lines
1.5 KiB
Python
Executable File
91 lines
1.5 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import sys, os
|
|
import Tdb
|
|
|
|
def fail(msg):
|
|
print 'FAILED:', msg
|
|
sys.exit(1)
|
|
|
|
tdb_file = '/tmp/torture_tdb.tdb'
|
|
|
|
# Create temporary tdb file
|
|
|
|
t = Tdb.Tdb(tdb_file, flags = Tdb.CLEAR_IF_FIRST)
|
|
|
|
# Check non-existent key throws KeyError exception
|
|
|
|
try:
|
|
t['__none__']
|
|
except KeyError:
|
|
pass
|
|
else:
|
|
fail('non-existent key did not throw KeyError')
|
|
|
|
# Check storing key
|
|
|
|
t['bar'] = '1234'
|
|
if t['bar'] != '1234':
|
|
fail('store key failed')
|
|
|
|
# Check key exists
|
|
|
|
if not t.has_key('bar'):
|
|
fail('has_key() failed for existing key')
|
|
|
|
if t.has_key('__none__'):
|
|
fail('has_key() succeeded for non-existent key')
|
|
|
|
# Delete key
|
|
|
|
try:
|
|
del(t['__none__'])
|
|
except KeyError:
|
|
pass
|
|
else:
|
|
fail('delete of non-existent key did not throw KeyError')
|
|
|
|
del t['bar']
|
|
if t.has_key('bar'):
|
|
fail('delete of existing key did not delete key')
|
|
|
|
# Clear all keys
|
|
|
|
t.clear()
|
|
if len(t) != 0:
|
|
fail('clear failed to remove all keys')
|
|
|
|
# Other dict functions
|
|
|
|
t['a'] = '1'
|
|
t['ab'] = '12'
|
|
t['abc'] = '123'
|
|
|
|
if len(t) != 3:
|
|
fail('len method produced wrong value')
|
|
|
|
keys = t.keys()
|
|
values = t.values()
|
|
items = t.items()
|
|
|
|
if set(keys) != set(['a', 'ab', 'abc']):
|
|
fail('keys method produced wrong values')
|
|
|
|
if set(values) != set(['1', '12', '123']):
|
|
fail('values method produced wrong values')
|
|
|
|
if set(items) != set([('a', '1'), ('ab', '12'), ('abc', '123')]):
|
|
fail('values method produced wrong values')
|
|
|
|
t.close()
|
|
|
|
# Re-open read-only
|
|
|
|
t = Tdb.Tdb(tdb_file, open_flags = os.O_RDONLY)
|
|
t.keys()
|
|
t.close()
|
|
|
|
# Clean up
|
|
|
|
os.unlink(tdb_file)
|