mirror of
https://github.com/samba-team/samba.git
synced 2025-01-08 21:18:16 +03:00
Add RemoteTestCase and RemoteError to samba.subunit.
Change-Id: Ib3946cf4eae69f53270a299660f6029290d3791a Signed-off-by: Jelmer Vernooij <jelmer@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
ed65e04fa3
commit
84922852c3
@ -18,6 +18,7 @@
|
||||
"""Subunit test protocol."""
|
||||
|
||||
import datetime
|
||||
import unittest
|
||||
|
||||
|
||||
PROGRESS_SET = 0
|
||||
@ -44,3 +45,61 @@ class UTC(datetime.tzinfo):
|
||||
return _ZERO
|
||||
|
||||
utc = UTC()
|
||||
|
||||
|
||||
def RemoteError(description=""):
|
||||
return (Exception, Exception(description), None)
|
||||
|
||||
|
||||
class RemotedTestCase(unittest.TestCase):
|
||||
"""A class to represent test cases run in child processes.
|
||||
|
||||
Instances of this class are used to provide the Python test API a TestCase
|
||||
that can be printed to the screen, introspected for metadata and so on.
|
||||
However, as they are a simply a memoisation of a test that was actually
|
||||
run in the past by a separate process, they cannot perform any interactive
|
||||
actions.
|
||||
"""
|
||||
|
||||
def __eq__ (self, other):
|
||||
try:
|
||||
return self.__description == other.__description
|
||||
except AttributeError:
|
||||
return False
|
||||
|
||||
def __init__(self, description):
|
||||
"""Create a psuedo test case with description description."""
|
||||
self.__description = description
|
||||
|
||||
def error(self, label):
|
||||
raise NotImplementedError("%s on RemotedTestCases is not permitted." %
|
||||
label)
|
||||
|
||||
def setUp(self):
|
||||
self.error("setUp")
|
||||
|
||||
def tearDown(self):
|
||||
self.error("tearDown")
|
||||
|
||||
def shortDescription(self):
|
||||
return self.__description
|
||||
|
||||
def id(self):
|
||||
return "%s" % (self.__description,)
|
||||
|
||||
def __str__(self):
|
||||
return "%s (%s)" % (self.__description, self._strclass())
|
||||
|
||||
def __repr__(self):
|
||||
return "<%s description='%s'>" % \
|
||||
(self._strclass(), self.__description)
|
||||
|
||||
def run(self, result=None):
|
||||
if result is None: result = self.defaultTestResult()
|
||||
result.startTest(self)
|
||||
result.addError(self, RemoteError("Cannot run RemotedTestCases.\n"))
|
||||
result.stopTest(self)
|
||||
|
||||
def _strclass(self):
|
||||
cls = self.__class__
|
||||
return "%s.%s" % (cls.__module__, cls.__name__)
|
||||
|
Loading…
Reference in New Issue
Block a user