Merge support for always closing files, with tweaks.
[jelmer/subvertpy.git] / subvertpy / tests / __init__.py
index 0bdf2e5a893461abc9d7e2f00b643082cab1853c..c5b09b72e294a16fc8260f7c41710eb3fa999728 100644 (file)
@@ -209,11 +209,6 @@ class SubversionTestCase(TestCaseInTempDir):
     def log_message_func(self, items):
         return self.next_message
 
-    def write_file(self, filename, content):
-        f = open(filename, 'w')
-        f.write(content)
-        f.close()
-
     def make_repository(self, relpath, allow_revprop_changes=True):
         """Create a repository.
 
@@ -227,11 +222,19 @@ class SubversionTestCase(TestCaseInTempDir):
             if sys.platform == 'win32':
                 revprop_hook = os.path.join(abspath, "hooks",
                         "pre-revprop-change.bat")
-                self.write_file(revprop_hook, "exit 0\n")
+                f = open(revprop_hook, 'w')
+                try:
+                    f.write("exit 0\n")
+                finally:
+                    f.close()
             else:
                 revprop_hook = os.path.join(abspath, "hooks",
                         "pre-revprop-change")
-                self.write_file(revprop_hook, "#!/bin/sh\n")
+                f = open(revprop_hook, 'w')
+                try:
+                    f.write("#!/bin/sh\n")
+                finally:
+                    f.close()
                 os.chmod(revprop_hook, os.stat(revprop_hook).st_mode | 0111)
 
         if sys.platform == 'win32':
@@ -362,18 +365,22 @@ class SubversionTestCase(TestCaseInTempDir):
         :param files: Dictionary with filenames as keys, contents as
             values. None as value indicates a directory.
         """
-        for f in files:
-            if files[f] is None:
+        for name, content in files.iteritems():
+            if content is None:
                 try:
-                    os.makedirs(f)
+                    os.makedirs(name)
                 except OSError:
                     pass
             else:
                 try:
-                    os.makedirs(os.path.dirname(f))
+                    os.makedirs(os.path.dirname(name))
                 except OSError:
                     pass
-                self.write_file(f, files[f])
+                f = open(name, 'w')
+                try:
+                    f.write(content)
+                finally:
+                    f.close()
 
     def make_client(self, repospath, clientpath, allow_revprop_changes=True):
         """Create a repository and a checkout. Return the checkout.