changeset 160:93bf6b333c99 2.01

Some broken output validators on Win32 no longer get access-denied errors
author Oleg Oshmyan <chortos@inbox.lv>
date Fri, 10 Jun 2011 21:22:53 +0100
parents 8f02b97f8073
children 43e1f2d5d5a4
files upreckon/testcases.py
diffstat 1 files changed, 8 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/upreckon/testcases.py	Wed Jun 08 21:22:20 2011 +0100
+++ b/upreckon/testcases.py	Fri Jun 10 21:22:53 2011 +0100
@@ -238,15 +238,15 @@
 				inputdatafname = case.problem.config.inname
 				contextmgr = Copying(case.infile, inputdatafname)
 			with contextmgr:
-				with open(inputdatafname) as infile:
-					with tempfile.TemporaryFile('w+') if options.erase and (not case.validator or callable(case.validator)) else open(case.problem.config.outname, 'w+') as outfile:
+				with tempfile.TemporaryFile('w+') if options.erase and (not case.validator or callable(case.validator)) else open(case.problem.config.outname, 'w+') as outfile:
+					with open(inputdatafname) as infile:
 						call(case.problem.config.path, case=case, stdin=infile, stdout=outfile, stderr=devnull)
-						if config.globalconf.force_zero_exitcode and case.process.returncode or case.process.returncode < 0:
-							raise NonZeroExitCode(case.process.returncode)
-						case.has_called_back = True
-						callback()
-						outfile.seek(0)
-						return case.validate(outfile)
+					if config.globalconf.force_zero_exitcode and case.process.returncode or case.process.returncode < 0:
+						raise NonZeroExitCode(case.process.returncode)
+					case.has_called_back = True
+					callback()
+					outfile.seek(0)
+					return case.validate(outfile)
 		else:
 			case.infile.copy(case.problem.config.inname)
 			call(case.problem.config.path, case=case, stdin=devnull, stdout=devnull, stderr=STDOUT)