Changeset: 7a5da71cdac6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/7a5da71cdac6
Modified Files:
        testing/Mtest.py.in
Branch: Mar2025
Log Message:

Use with statements for opening files for a short period.


diffs (253 lines):

diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -648,9 +648,8 @@ def CreateHtmlIndex (env, ssout, sserr, 
                                Element('title', {}, Text(HTMLTITLE)),
                                stylesheet),
                        hbody)
-        f = openutf8('%s.head.html' % INDEX,'w')
-        html.write(f, True)
-        f.close()
+        with openutf8('%s.head.html' % INDEX,'w') as f:
+            html.write(f, True)
 
         if TSTDIR:
             layout = 'rows'
@@ -685,9 +684,8 @@ def CreateHtmlIndex (env, ssout, sserr, 
                                         'bordercolor': white,
                                         'marginwidth': '0',
                                         'marginheight': '0'})))
-        f = openutf8('%s.html' % INDEX, 'w')
-        html.write(f, True)
-        f.close()
+        with openutf8('%s.html' % INDEX, 'w') as f:
+            html.write(f, True)
         os.chdir(BACK)
 ### CreateHtmlIndex (env, ssout, sserr, *body) #
 
@@ -752,9 +750,8 @@ def CreateTstWhatXhtml (env, TST, stable
                                     'bordercolor': white,
                                     'marginwidth': '0',
                                     'marginheight': '0'})))
-    f = openutf8('.%s%s.html' % (TST, WHAT), 'w')
-    html.write(f, True)
-    f.close()
+    with openutf8('.%s%s.html' % (TST, WHAT), 'w') as f:
+        html.write(f, True)
     f = openutf8('.%s%s.head.html' % (TST, WHAT),'w')
     target = '%s_%s_%s_%s_body' % (DISTVER, TSTDIR, TST, WHAT[1:])
     if REV:                     # implies URLPREFIX is not None
@@ -865,7 +862,6 @@ def CreateSrcIndex (env, TST, EXT) :
     if REV:
         framesrc = '%s%s/%s/%s%s' % (URLPREFIX, url(TSTDIR), TSTSUFF, TST, EXT)
     else:
-        f = openutf8('.%s.nosrc.index.html' % TST, 'w')
         html = Element('html', {},
                        Element('head', {},
                                Element('title', {},
@@ -880,6 +876,8 @@ def CreateSrcIndex (env, TST, EXT) :
                                Element('center', {},
                                        Text('no source available'))))
         framesrc = '.%s.nosrc.index.html' % TST
+        with openutf8('.%s.nosrc.index.html' % TST, 'w') as f:
+            html.write(f, True)
     html = Element('html', {},
                    Element('head', {},
                            Element('title', {}, Text(HTMLTITLE))),
@@ -906,9 +904,8 @@ def CreateSrcIndex (env, TST, EXT) :
                                     'bordercolor': white,
                                     'marginwidth': '0',
                                     'marginheight': '0'})))
-    f = openutf8('.%s.src.index.html' % TST,'w')
-    html.write(f, True)
-    f.close()
+    with openutf8('.%s.src.index.html' % TST,'w') as f:
+        html.write(f, True)
 
     tr = Element('tr', {},
                  Element('th', {'class': 'header'},
@@ -941,9 +938,8 @@ def CreateSrcIndex (env, TST, EXT) :
                                             'cellspacing': '0',
                                             'cellpadding': '3'},
                                            tr))))
-    f = openutf8('.%s.src.index.head.html' % TST, 'w')
-    html.write(f, True)
-    f.close()
+    with openutf8('.%s.src.index.head.html' % TST, 'w') as f:
+        html.write(f, True)
 ### CreateSrcIndex (env, TST, EXT) #
 
 def AddHref (href, target, linktext, diff) :
@@ -1060,12 +1056,11 @@ def SkipTest(env, TST, EXT, REASON, leng
     if testweb or not produce_html:
         return None
 
-    f = openutf8('.%s.SKIPPED.html' % TST, 'w')
-    Element('html', {},
-            Element('body', {},
-                    Element('p', {},
-                            Text('%s Warning: %s' % (THISFILE, 
TEXT))))).write(f, newline=True)
-    f.close()
+    with openutf8('.%s.SKIPPED.html' % TST, 'w') as f:
+        Element('html', {},
+                Element('body', {},
+                        Element('p', {},
+                                Text('%s Warning: %s' % (THISFILE, 
TEXT))))).write(f, newline=True)
     target = '%s_%s_body' % (DISTVER, TSTDIR)
     td = Element('td', {'class': 'header'},
                  Element('a', {'href': '.%s.src.index.html' % TST,
@@ -1106,6 +1101,7 @@ def find_test_dirs(thisdir, recursive=Tr
             if cnt > 0:
                 testdirs.append(os.path.dirname(thisdir))
                 tstcnt += cnt
+            allf.close()
     if recursive:
         for d in dirlst:
             d = os.path.join(thisdir,d)
@@ -2148,9 +2144,8 @@ def RunTest(env, TST, COND, oktests, len
                         raise
 
         if os.path.isfile(TST+EXT+'.src')  and not os.path.isfile(TST+EXT):
-            f = openutf8(TST+EXT+'.src','r')
-            TSTSRC = expandvars(path(f.readline().strip()), env)
-            f.close()
+            with openutf8(TST+EXT+'.src','r') as f:
+                TSTSRC = expandvars(path(f.readline().strip()), env)
             if os.path.isfile(TSTSRC):
                 try:
                     SymlinkOrCopy(TSTSRC, TST + EXT)
@@ -2165,9 +2160,8 @@ def RunTest(env, TST, COND, oktests, len
         test = re.compile('^'+TST+r'((_[sp][0-9][0-9])?\..*)?\.src$', 
re.MULTILINE)
         for ff in listdir(TSTTRGDIR):
             if test.match(ff) and not os.path.isfile(ff[:-4]):
-                f = openutf8(ff,'r')
-                TSTSRC = expandvars(path(f.readline().strip()), env)
-                f.close()
+                with openutf8(ff,'r') as f:
+                    TSTSRC = expandvars(path(f.readline().strip()), env)
                 if os.path.isfile(TSTSRC):
                     try:
                         SymlinkOrCopy(TSTSRC, ff[:-4])
@@ -2181,10 +2175,9 @@ def RunTest(env, TST, COND, oktests, len
         for ff in listdir(TSTTRGDIR):
             fff = ff[:-3]
             if test.match(ff) and not os.path.isfile(fff) and not 
ff.endswith('.test.in'):
-                f = openutf8(fff,'w')
-                for l in openutf8(ff):
-                    f.write(expandvars(l, env))
-                f.close()
+                with openutf8(fff,'w') as f:
+                    for l in openutf8(ff):
+                        f.write(expandvars(l, env))
 
         if odbc:
             with openutf8('odbcinst.ini', 'w') as f:
@@ -2364,40 +2357,38 @@ Password = {passwd or "monetdb"}-Wrong
         else:
             FailedErr = F_OK
         if produce_html:
-            diff_html = openutf8('%s.out.diff.html' % TST,'w')
-            Element('html', None,
-#                     Element('head', None,
-#                             Element('style', None,
-#                                     Text('''
+            with openutf8('%s.out.diff.html' % TST,'w') as diff_html:
+                Element('html', None,
+#                         Element('head', None,
+#                                 Element('style', None,
+#                                         Text('''
 # .neutral { color: black; }
 # .deleted { color: red; }
 # .added   { color: green; }
 # '''))),
-                    Element('body', None,
-                            Element('pre', None,
-                                    Text(out)))).write(diff_html, True)
-            if FailedOut == F_ERROR:
-                diff_html.write('<!--MajorDiffs-->\n')
-            else:
-                diff_html.write('<!--NoDiffs-->\n')
-            diff_html.close()
-            diff_html = openutf8('%s.err.diff.html' % TST,'w')
-            Element('html', None,
-#                     Element('head', None,
-#                             Element('style', None,
-#                                     Text('''
+                        Element('body', None,
+                                Element('pre', None,
+                                        Text(out)))).write(diff_html, True)
+                if FailedOut == F_ERROR:
+                    diff_html.write('<!--MajorDiffs-->\n')
+                else:
+                    diff_html.write('<!--NoDiffs-->\n')
+            with openutf8('%s.err.diff.html' % TST,'w') as diff_html:
+                Element('html', None,
+#                         Element('head', None,
+#                                 Element('style', None,
+#                                         Text('''
 # .neutral { color: black; }
 # .deleted { color: red; }
 # .added   { color: green; }
 # '''))),
-                    Element('body', None,
-                            Element('pre', None,
-                                    Text(err)))).write(diff_html, True)
-            if FailedErr == F_ERROR:
-                diff_html.write('<!--MajorDiffs-->\n')
-            else:
-                diff_html.write('<!--NoDiffs-->\n')
-            diff_html.close()
+                        Element('body', None,
+                                Element('pre', None,
+                                        Text(err)))).write(diff_html, True)
+                if FailedErr == F_ERROR:
+                    diff_html.write('<!--MajorDiffs-->\n')
+                else:
+                    diff_html.write('<!--NoDiffs-->\n')
 
             if verbosity <= 1:
                 if verbosity == 0 and (FailedOut > F_WARN or FailedErr > 
F_WARN):
@@ -4111,10 +4102,9 @@ def main(argv) :
 
         # write .monetdb file for mclient to do authentication with
         dotmonetdbfile = os.path.join(TSTTRGBASE, '.monetdb')
-        dotmonetdb = openutf8(dotmonetdbfile, 'w')
-        dotmonetdb.write('user=monetdb\n')
-        dotmonetdb.write('password=monetdb\n')
-        dotmonetdb.close()
+        with openutf8(dotmonetdbfile, 'w') as dotmonetdb:
+            dotmonetdb.write('user=monetdb\n')
+            dotmonetdb.write('password=monetdb\n')
         # and make mclient find it
         os.environ['DOTMONETDBFILE'] = dotmonetdbfile
 
@@ -4204,18 +4194,17 @@ def main(argv) :
         if not os.path.exists(os.path.join(TSTTRGBASE, TSTPREF)):
             os.mkdir(os.path.join(TSTTRGBASE, TSTPREF))
         fn = os.path.join(TSTTRGBASE, TSTPREF, 'times.')
-        fl = openutf8(fn+'lst','w')
-        Failure = [[] for i in FAILURES]
-        for TSTDIR, TST, tt, ms, FtOut, FtErr, reason in TIMES:
-            fl.write('%s:\t%s\t%s\t%s\t%s\n' % (url(os.path.join(TSTDIR, TST)),
-                                                tt,
-                                                FAILURES[FtOut][0],
-                                                FAILURES[FtErr][0],
-                                                reason or ''))
-            if TST != '':
-                Failure[max(FtOut,FtErr)].append(os.path.join(TSTDIR,TST))
-        fl.write(':\t%7.3f\t\n' % t_)
-        fl.close()
+        with openutf8(fn+'lst','w') as fl:
+            Failure = [[] for i in FAILURES]
+            for TSTDIR, TST, tt, ms, FtOut, FtErr, reason in TIMES:
+                fl.write('%s:\t%s\t%s\t%s\t%s\n' % (url(os.path.join(TSTDIR, 
TST)),
+                                                    tt,
+                                                    FAILURES[FtOut][0],
+                                                    FAILURES[FtErr][0],
+                                                    reason or ''))
+                if TST != '':
+                    Failure[max(FtOut,FtErr)].append(os.path.join(TSTDIR,TST))
+            fl.write(':\t%7.3f\t\n' % t_)
 
         fl = openutf8(fn+'sql','w')
         host = socket.gethostname()
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to