Mercurial > ~astiob > upreckon > hgweb
comparison testcases.py @ 136:ed4035661b85
Added a C implementation of the unix module (called _unix)
author | Oleg Oshmyan <chortos@inbox.lv> |
---|---|
date | Tue, 24 May 2011 20:51:01 +0100 |
parents | e84f33a60a5c |
children |
comparison
equal
deleted
inserted
replaced
135:523ba6907f3a | 136:ed4035661b85 |
---|---|
32 class DummySignalIgnorer(object): | 32 class DummySignalIgnorer(object): |
33 def __enter__(self): pass | 33 def __enter__(self): pass |
34 def __exit__(self, exc_type, exc_value, traceback): pass | 34 def __exit__(self, exc_type, exc_value, traceback): pass |
35 signal_ignorer = DummySignalIgnorer() | 35 signal_ignorer = DummySignalIgnorer() |
36 | 36 |
37 try: | 37 # win32 and unix are imported a bit later |
38 from win32 import * | |
39 except Exception: | |
40 from unix import * | |
41 | 38 |
42 __all__ = ('TestCase', 'load_problem', 'TestCaseNotPassed', | 39 __all__ = ('TestCase', 'load_problem', 'TestCaseNotPassed', |
43 'TimeLimitExceeded', 'CanceledByUser', 'WrongAnswer', | 40 'TimeLimitExceeded', 'CanceledByUser', 'WrongAnswer', |
44 'NonZeroExitCode', 'CannotStartTestee', | 41 'NonZeroExitCode', 'CannotStartTestee', |
45 'CannotStartValidator', 'CannotReadOutputFile', | 42 'CannotStartValidator', 'CannotReadOutputFile', |
77 class CannotStartTestee(ExceptionWrapper): __slots__ = () | 74 class CannotStartTestee(ExceptionWrapper): __slots__ = () |
78 class CannotStartValidator(ExceptionWrapper): __slots__ = () | 75 class CannotStartValidator(ExceptionWrapper): __slots__ = () |
79 class CannotReadOutputFile(ExceptionWrapper): __slots__ = () | 76 class CannotReadOutputFile(ExceptionWrapper): __slots__ = () |
80 class CannotReadInputFile(ExceptionWrapper): __slots__ = () | 77 class CannotReadInputFile(ExceptionWrapper): __slots__ = () |
81 class CannotReadAnswerFile(ExceptionWrapper): __slots__ = () | 78 class CannotReadAnswerFile(ExceptionWrapper): __slots__ = () |
79 | |
80 # Import platform-specific code now that exception classes are defined | |
81 try: | |
82 from win32 import * | |
83 except Exception: | |
84 from unix import * | |
82 | 85 |
83 | 86 |
84 | 87 |
85 # Helper context managers | 88 # Helper context managers |
86 | 89 |
183 if not case.has_called_back: | 186 if not case.has_called_back: |
184 callback() | 187 callback() |
185 case.cleanup() | 188 case.cleanup() |
186 | 189 |
187 def cleanup(case): | 190 def cleanup(case): |
191 # Note that native extensions clean up on their own | |
192 # and never let this condition be satisfied | |
188 if getattr(case, 'process', None) and case.process.returncode is None: | 193 if getattr(case, 'process', None) and case.process.returncode is None: |
189 kill(case.process) | 194 kill(case.process) |
190 for name in case.files_to_delete: | 195 for name in case.files_to_delete: |
191 try: | 196 try: |
192 os.remove(name) | 197 os.remove(name) |