""" Testing the slave side node code (in a local way). """ from py.__.test.rsession.slave import SlaveNode, slave_main, setup from py.__.test.rsession.outcome import ReprOutcome import py, sys from py.__.test.rsession.testing.basetest import BasicRsessionTest modlevel = [] import os if sys.platform == 'win32': py.test.skip("rsession is unsupported on Windows.") # ---------------------------------------------------------------------- from py.__.test.rsession.executor import RunExecutor class TestSlave(BasicRsessionTest): def gettestnode(self): node = SlaveNode(self.config, executor=RunExecutor) return node def test_slave_run_passing(self): node = self.gettestnode() item = self.getexample("pass") outcome = node.execute(item._get_collector_trail()) assert outcome.passed assert not outcome.setupfailure ser = outcome.make_repr() reproutcome = ReprOutcome(ser) assert reproutcome.passed assert not reproutcome.setupfailure def test_slave_run_failing(self): node = self.gettestnode() item = self.getexample("fail") outcome = node.execute(item._get_collector_trail()) assert not outcome.passed assert not outcome.setupfailure assert len(outcome.excinfo.traceback) == 1 assert outcome.excinfo.traceback[-1].frame.code.name == 'funcfail' ser = outcome.make_repr() reproutcome = ReprOutcome(ser) assert not reproutcome.passed assert not reproutcome.setupfailure assert reproutcome.excinfo def test_slave_run_skipping(self): node = self.gettestnode() item = self.getexample("skip") outcome = node.execute(item._get_collector_trail()) assert not outcome.passed assert outcome.skipped ser = outcome.make_repr() reproutcome = ReprOutcome(ser) assert not reproutcome.passed assert reproutcome.skipped def test_slave_run_failing_wrapped(self): node = self.gettestnode() item = self.getexample("fail") repr_outcome = node.run(item._get_collector_trail()) outcome = ReprOutcome(repr_outcome) assert not outcome.passed assert not outcome.setupfailure assert outcome.excinfo def test_slave_run_different_stuff(self): py.test.skip("XXX not this way") node = self.gettestnode() node.run(self.rootcol._getitembynames("py doc log.txt".split()). _get_collector_trail())