view upreckon/exceptions.py @ 150:006dce02752c

Added the testee configuration variable and the config.nativize_path function The testee configuration variable stores the string or iterable of strings to pass to subprocess.Popen except that the first/only string always follows the POSIX pathname format or, if the native format is really needed, is prefixed by slash-slash-colon (the same format is used in Boost.Filesystem). config.nativize_path is now a part of the public API of the config module. It converts a path in the format described above into the native format and can be used in testconf if it needs to use paths other than testee[0].
author Oleg Oshmyan <chortos@inbox.lv>
date Fri, 03 Jun 2011 02:39:02 +0100
parents d5b6708c1955
children 65b5c9390010
line wrap: on
line source

# Copyright (c) 2010-2011 Chortos-2 <chortos@inbox.lv>

__all__ = ('TestCaseNotPassed', 'TestCaseSkipped', 'TimeLimitExceeded',
           'CPUTimeLimitExceeded', 'WallTimeLimitExceeded',
           'MemoryLimitExceeded', 'CanceledByUser', 'WrongAnswer',
           'NonZeroExitCode', 'ExceptionWrapper', 'CannotStartTestee',
           'CannotStartValidator', 'CannotReadOutputFile',
           'CannotReadInputFile', 'CannotReadAnswerFile')

class TestCaseNotPassed(Exception): __slots__ = ()
class TestCaseSkipped(TestCaseNotPassed): __slots__ = ()
class TimeLimitExceeded(TestCaseNotPassed): __slots__ = ()
class CPUTimeLimitExceeded(TimeLimitExceeded): __slots__ = ()
class WallTimeLimitExceeded(TimeLimitExceeded): __slots__ = ()
class MemoryLimitExceeded(TestCaseNotPassed): __slots__ = ()
class CanceledByUser(TestCaseNotPassed): __slots__ = ()

class WrongAnswer(TestCaseNotPassed):
	__slots__ = 'comment'
	def __init__(self, comment=''):
		self.comment = comment

class NonZeroExitCode(TestCaseNotPassed):
	__slots__ = 'exitcode'
	def __init__(self, exitcode):
		self.exitcode = exitcode

class ExceptionWrapper(TestCaseNotPassed):
	__slots__ = 'upstream'
	def __init__(self, upstream):
		self.upstream = upstream

class CannotStartTestee(ExceptionWrapper): __slots__ = ()
class CannotStartValidator(ExceptionWrapper): __slots__ = ()
class CannotReadOutputFile(ExceptionWrapper): __slots__ = ()
class CannotReadInputFile(ExceptionWrapper): __slots__ = ()
class CannotReadAnswerFile(ExceptionWrapper): __slots__ = ()