summaryrefslogtreecommitdiffstats
path: root/testsuite/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/common.py')
-rw-r--r--testsuite/common.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/testsuite/common.py b/testsuite/common.py
index fc2397560..4c7337e0d 100644
--- a/testsuite/common.py
+++ b/testsuite/common.py
@@ -14,6 +14,7 @@ import sys
import codecs
import lxml.etree
import Bcfg2.Options
+import Bcfg2.Utils
from mock import patch, MagicMock, _patch, DEFAULT
try:
from unittest2 import skip, skipIf, skipUnless, TestCase
@@ -119,6 +120,29 @@ else:
return codecs.unicode_escape_decode(s)[0]
+class MockExecutor(object):
+ """mock object for :class:`Bcfg2.Utils.Executor` objects."""
+ def __init__(self, timeout=None):
+ self.timeout = timeout
+
+ # variables that can be set to control the result returned
+ self.stdout = ''
+ self.stderr = ''
+ self.retval = 0
+
+ # variables that record how run() was called
+ self.calls = []
+
+ def run(self, command, inputdata=None, timeout=None, **kwargs):
+ self.calls.append({"command": command,
+ "inputdata": inputdata,
+ "timeout": timeout or self.timeout,
+ "kwargs": kwargs})
+
+ return Bcfg2.Utils.ExecutorResult(self.stdout, self.stderr,
+ self.retval)
+
+
class Bcfg2TestCase(TestCase):
""" Base TestCase class that inherits from
:class:`unittest.TestCase`. This class adds
@@ -138,6 +162,9 @@ class Bcfg2TestCase(TestCase):
if cls.capture_stderr:
sys.stderr = cls._stderr
+ if hasattr(TestCase, "assertCountEqual"):
+ assertItemsEqual = assertCountEqual
+
def assertXMLEqual(self, el1, el2, msg=None):
""" Test that the two XML trees given are equal. """
if msg is None: