]> granicus.if.org Git - python/commitdiff
Added a new randomized test.
authorTim Peters <tim.peters@gmail.com>
Fri, 11 Jul 2003 04:09:09 +0000 (04:09 +0000)
committerTim Peters <tim.peters@gmail.com>
Fri, 11 Jul 2003 04:09:09 +0000 (04:09 +0000)
Lib/test/test_dumbdbm.py

index 4d1bc0e5ed56e574a9a50768d10a1f762f9cb7e3..08474f7353112512f6edb8b43bce078981395340 100644 (file)
@@ -86,6 +86,34 @@ class DumbDBMTestCase(unittest.TestCase):
         self.assertEqual(keys, dkeys)
         return keys
 
+    # Perform randomized operations.  This doesn't make assumptions about
+    # what *might* fail.
+    def test_random(self):
+        import random
+        d = {}  # mirror the database
+        for dummy in range(5):
+            f = dumbdbm.open(_fname)
+            for dummy in range(100):
+                k = random.choice('abcdefghijklm')
+                if random.random() < 0.2:
+                    if k in d:
+                        del d[k]
+                        del f[k]
+                else:
+                    v = random.choice('abc') * random.randrange(10000)
+                    d[k] = v
+                    f[k] = v
+                    self.assertEqual(f[k], v)
+            f.close()
+
+            f = dumbdbm.open(_fname)
+            expected = d.items()
+            expected.sort()
+            got = f.items()
+            got.sort()
+            self.assertEqual(expected, got)
+            f.close()
+
     def tearDown(self):
         _delete_files()