File: test_slave.py

package info (click to toggle)
codespeak-lib 0.9.1-3
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 3,212 kB
  • ctags: 5,409
  • sloc: python: 33,390; ansic: 961; xml: 582; makefile: 90
file content (75 lines) | stat: -rw-r--r-- 2,575 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

""" 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())