changeset 868:9309530ee279

Fix the unit test for execution of statements containing with statements so that it also works on Windows. Thanks to cboos for the patch.
author cmlenz
date Sat, 28 Nov 2009 15:37:30 +0000
parents efc03d0719f3
children 38c44e2f4232
files genshi/template/tests/eval.py
diffstat 1 files changed, 13 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/genshi/template/tests/eval.py
+++ b/genshi/template/tests/eval.py
@@ -16,7 +16,7 @@
 import pickle
 from StringIO import StringIO
 import sys
-from tempfile import NamedTemporaryFile
+from tempfile import mkstemp
 import unittest
 
 from genshi.core import Markup
@@ -787,19 +787,24 @@
 
     if sys.version_info >= (2, 5):
         def test_with_statement(self):
-            f = NamedTemporaryFile()
-            f.write('foo\nbar\n')
-            f.seek(0)
+            fd, path = mkstemp()
+            f = os.fdopen(fd, "w")
+            try:
+                f.write('foo\nbar\n')
+                f.seek(0)
+                f.close()
 
-            d = {'path': f.name}
-            suite = Suite("""from __future__ import with_statement
+                d = {'path': path}
+                suite = Suite("""from __future__ import with_statement
 lines = []
 with open(path) as file:
     for line in file:
         lines.append(line)
 """)
-            suite.execute(d)
-            self.assertEqual(['foo\n', 'bar\n'], d['lines'])
+                suite.execute(d)
+                self.assertEqual(['foo\n', 'bar\n'], d['lines'])
+            finally:
+                os.remove(path)
 
         def test_yield_expression(self):
             d = {}
Copyright (C) 2012-2017 Edgewall Software