def __call__(self, result):
        global testCount

        testCount += 1

        if self.nextTest is None:
            self.nextTest = self.plugin.getNextTest()
            if self.nextTest is None:
                self.nextTest = Infinite
            if self.nextTest < testCount:
                # Should never happen, but should be signalled more clearly
                self.nextTest = None
                self.plugin.sendToMaster(ResultCollector.ABORT, (None, None), ('', ''), None)
                os._exit(9)     # Just die

        if testCount < self.nextTest:
            try:
                raise SkipTest('Skipped test %d'%(testCount,))
            except:
                result.addError(self.orgtest, sys.exc_info())
                return

        self.nextTest = None
        method_name = getMethodName(self.orgtest)
        test = getattr(self.orgtest, method_name)
        res = ResultCollector(result)
        orgstdout = sys.stdout
        orgstderr = sys.stderr
        stdout = sys.stdout = StringIO()
        stderr = sys.stderr = StringIO()

        self.orgtest(res)

        sys.stdout = orgstdout
        sys.stderr = orgstderr

        data = None
        func_dict = getattr(getattr(self.orgtest, 'test', None), 'func_dict', None)
        if func_dict is not None:
            if 'suiteId' in func_dict:  # This is an asgard test copy func_dict
                data = func_dict.copy()
                del data['suiteId']

        self.plugin.sendToMaster(res._status, res._exc_info,
                          (stdout.getvalue(), stderr.getvalue()), data)
Runs the test, pickling data and outputting it to
dataset/ETHPy150Open ooici/pyon/pyon/util/insulate.py/TestSlaveWrapper.__call__