svn commit: samba r26677 - in branches/SAMBA_4_0/source/lib/tdb: . python/tests

tpot at samba.org tpot at samba.org
Sun Jan 6 23:17:56 GMT 2008


Author: tpot
Date: 2008-01-06 23:17:55 +0000 (Sun, 06 Jan 2008)
New Revision: 26677

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26677

Log:
Implement and test iter{keys,values,items} for tdb bindings.

Use tempfile.mkstemp() instead of os.tmpnam() in tests.

Modified:
   branches/SAMBA_4_0/source/lib/tdb/python/tests/simple.py
   branches/SAMBA_4_0/source/lib/tdb/tdb.i


Changeset:
Modified: branches/SAMBA_4_0/source/lib/tdb/python/tests/simple.py
===================================================================
--- branches/SAMBA_4_0/source/lib/tdb/python/tests/simple.py	2008-01-06 22:01:31 UTC (rev 26676)
+++ branches/SAMBA_4_0/source/lib/tdb/python/tests/simple.py	2008-01-06 23:17:55 UTC (rev 26677)
@@ -8,7 +8,7 @@
 
 import tdb
 from unittest import TestCase
-import os
+import os, tempfile
 
 
 class OpenTdbTests(TestCase):
@@ -19,7 +19,7 @@
 class SimpleTdbTests(TestCase):
     def setUp(self):
         super(SimpleTdbTests, self).setUp()
-        self.tdb = tdb.Tdb(os.tmpnam(), 0, tdb.DEFAULT, os.O_CREAT|os.O_RDWR)
+        self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT, os.O_CREAT|os.O_RDWR)
         self.assertNotEqual(None, self.tdb)
 
     def tearDown(self):
@@ -82,6 +82,13 @@
         self.tdb["brainslug"] = "2"
         self.assertEquals([("bla", "1"), ("brainslug", "2")], self.tdb.items())
 
+    def test_iteritems(self):
+        self.tdb["bloe"] = "2"
+        self.tdb["bla"] = "25"
+        i = self.tdb.iteritems()
+        self.assertEquals(set([("bla", "25"), ("bloe", "2")]),
+                              set([i.next(), i.next()]))
+
     def test_transaction_cancel(self):
         self.tdb["bloe"] = "2"
         self.tdb.transaction_start()
@@ -107,11 +114,23 @@
         self.tdb["bla"] = "25"
         self.assertEquals(["bla", "bloe"], self.tdb.keys())
 
+    def test_iterkeys(self):
+        self.tdb["bloe"] = "2"
+        self.tdb["bla"] = "25"
+        i = self.tdb.iterkeys()
+        self.assertEquals(set(["bloe", "bla"]), set([i.next(), i.next()]))
+
     def test_values(self):
         self.tdb["bloe"] = "2"
         self.tdb["bla"] = "25"
         self.assertEquals(["25", "2"], self.tdb.values())
 
+    def test_itervalues(self):
+        self.tdb["bloe"] = "2"
+        self.tdb["bla"] = "25"
+        i = self.tdb.itervalues()
+        self.assertEquals(set(["25", "2"]), set([i.next(), i.next()]))
+
     def test_clear(self):
         self.tdb["bloe"] = "2"
         self.tdb["bla"] = "25"

Modified: branches/SAMBA_4_0/source/lib/tdb/tdb.i
===================================================================
--- branches/SAMBA_4_0/source/lib/tdb/tdb.i	2008-01-06 22:01:31 UTC (rev 26676)
+++ branches/SAMBA_4_0/source/lib/tdb/tdb.i	2008-01-06 23:17:55 UTC (rev 26677)
@@ -263,8 +263,18 @@
         for k in iter(self):
             del(self[k])
 
-    # TODO: iterkeys, itervalues, iteritems
+    def iterkeys(self):
+        for k in iter(self):
+            yield k
+       
+    def itervalues(self):
+        for k in iter(self):
+            yield self[k]
 
+    def iteritems(self):
+        for k in iter(self):
+            yield (k, self[k])
+
     # TODO: any other missing methods for container types
     }
 } tdb;



More information about the samba-cvs mailing list