]> granicus.if.org Git - python/commitdiff
backport r73273
authorBenjamin Peterson <benjamin@python.org>
Sun, 7 Jun 2009 23:12:44 +0000 (23:12 +0000)
committerBenjamin Peterson <benjamin@python.org>
Sun, 7 Jun 2009 23:12:44 +0000 (23:12 +0000)
Lib/test/test_winreg.py

index 1eaa93047e79208cd3bcab862f163c080405ed07..4453afe375b6b7c1e47a3c26ca7caca8de9e55c2 100644 (file)
@@ -35,6 +35,27 @@ if test_support.have_unicode:
 class WinregTests(unittest.TestCase):
     remote_name = None
 
+    def setUp(self):
+        # Make sure that the test key is absent when the test
+        # starts.
+        self.delete_tree(HKEY_CURRENT_USER, test_key_name)
+
+    def delete_tree(self, root, subkey):
+        try:
+            hkey = OpenKey(root, subkey, KEY_ALL_ACCESS)
+        except WindowsError:
+            # subkey does not exist
+            return
+        while True:
+            try:
+                subsubkey = EnumKey(hkey, 0)
+            except WindowsError:
+                # no more subkeys
+                break
+            self.delete_tree(hkey, subsubkey)
+        CloseKey(hkey)
+        DeleteKey(root, subkey)
+
     def WriteTestData(self, root_key):
         # Set the default value for this key.
         SetValue(root_key, test_key_name, REG_SZ, "Default value")