#!/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)