[py-svn] r38029 - py/trunk/py/test/rsession/testing

fijal at codespeak.net fijal at codespeak.net
Tue Feb 6 21:06:03 CET 2007


Author: fijal
Date: Tue Feb  6 21:05:55 2007
New Revision: 38029

Added:
   py/trunk/py/test/rsession/testing/runtest.py
Modified:
   py/trunk/py/test/rsession/testing/test_slave.py
Log:
Move funcxxxspec out of pylib itself.


Added: py/trunk/py/test/rsession/testing/runtest.py
==============================================================================
--- (empty file)
+++ py/trunk/py/test/rsession/testing/runtest.py	Tue Feb  6 21:05:55 2007
@@ -0,0 +1,54 @@
+
+""" Support module for running tests
+"""
+
+import py
+
+def func_source():
+    import py
+    import time
+    def funcpass(): 
+        pass
+
+    def funcfail():
+        raise AssertionError("hello world")
+
+    def funcskip():
+        py.test.skip("skipped")
+
+    def funcprint():
+        print "samfing"
+
+    def funcprintfail():
+        print "samfing elz"
+        asddsa
+
+    def funcoptioncustom():
+        assert py.test.config.getvalue("custom")
+
+    def funchang():
+        import time
+        time.sleep(1000)
+
+class BasicRsessionTest(object):
+    def setup_class(cls):
+        tmptop = py.test.ensuretemp("test_suite")
+        name = cls.__name__
+        tmpdir = tmptop.ensure(name, dir=1)
+        source = py.code.Source(func_source)[1:].deindent()
+        tmpdir.ensure("test_one.py").write(source)
+        tmpdir.ensure("__init__.py")
+        cls.rootdir = tmpdir
+        cls.config = py.test.config._reparse([cls.rootdir])
+        cls.rootcol = cls.config._getcollector(tmpdir)
+        #cls.rootcol._config = cls.config
+        BASE = "test_one.py/"
+        cls.funcpass_spec = (BASE + "funcpass").split("/")
+        cls.funcfail_spec = (BASE + "funcfail").split("/")
+        cls.funcskip_spec = (BASE + "funcskip").split("/")
+        cls.funcprint_spec = (BASE + "funcprint").split("/")
+        cls.funcprintfail_spec = (BASE + "funcprintfail").split("/")
+        cls.funcoptioncustom_spec = (BASE + "funcoptioncustom").split("/")
+        cls.funchang_spec = (BASE + "funchang").split("/")
+        cls.mod_spec = BASE[:-1].split("/")
+

Modified: py/trunk/py/test/rsession/testing/test_slave.py
==============================================================================
--- py/trunk/py/test/rsession/testing/test_slave.py	(original)
+++ py/trunk/py/test/rsession/testing/test_slave.py	Tue Feb  6 21:05:55 2007
@@ -3,6 +3,7 @@
 from py.__.test.rsession.slave import SlaveNode, slave_main, setup, PidInfo
 from py.__.test.rsession.outcome import ReprOutcome
 import py, sys
+from py.__.test.rsession.testing.runtest import BasicRsessionTest
 
 modlevel = []
 import os
@@ -10,108 +11,69 @@
 if sys.platform == 'win32':
     py.test.skip("rsession is unsupported on Windows.")
 
-def setup_module(module):
-    module.tmpdir = py.test.ensuretemp(module.__name__)
-    module.rootdir = py.path.local(py.__file__).dirpath().dirpath()
-    module.rootcol = py.test.collect.Directory(rootdir)
-
-# ----------------------------------------------------------------------
-# inlined testing functions used below
-def funcpass(): 
-    pass
-
-def funcfail():
-    raise AssertionError("hello world")
-
-def funcskip():
-    py.test.skip("skipped")
-
-def funcprint():
-    print "samfing"
-
-def funcprintfail():
-    print "samfing elz"
-    asddsa
-
-def funcoptioncustom():
-    assert py.test.config.getvalue("custom")
-
-def funchang():
-    import time
-    time.sleep(1000)
-
-BASE = "py/test/rsession/testing/test_slave.py/"
-funcpass_spec = (BASE + "funcpass").split("/")
-funcfail_spec = (BASE + "funcfail").split("/")
-funcskip_spec = (BASE + "funcskip").split("/")
-funcprint_spec = (BASE + "funcprint").split("/")
-funcprintfail_spec = (BASE + "funcprintfail").split("/")
-funcoptioncustom_spec = (BASE + "funcoptioncustom").split("/")
-funchang_spec = (BASE + "funchang").split("/")
-mod_spec = BASE[:-1].split("/")
-
 # ----------------------------------------------------------------------
 
 from py.__.test.rsession.executor import RunExecutor
 
-def gettestnode():
-    config = py.test.config._reparse([rootdir])
-    pidinfo = PidInfo()
-    node = SlaveNode(config, pidinfo, executor=RunExecutor) 
-    return node
-
-def test_slave_run_passing():
-    node = gettestnode()
-    item = rootcol._getitembynames(funcpass_spec)
-    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():
-    node = gettestnode()
-    item = rootcol._getitembynames(funcfail_spec)
-    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
+class TestSlave(BasicRsessionTest):
+    def gettestnode(self):
+        pidinfo = PidInfo()
+        node = SlaveNode(self.config, pidinfo, executor=RunExecutor) 
+        return node
+
+    def test_slave_run_passing(self):
+        node = self.gettestnode()
+        item = self.rootcol._getitembynames(self.funcpass_spec)
+        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.rootcol._getitembynames(self.funcfail_spec)
+        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():
-    node = gettestnode()
-    item = rootcol._getitembynames(funcskip_spec)    
-    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():
-    node = gettestnode()
-    item = rootcol._getitembynames(funcfail_spec)
-    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():
-    node = gettestnode()
-    node.run(rootcol._getitembynames("py doc log.txt".split()).
-             _get_collector_trail())
+    def test_slave_run_skipping(self):
+        node = self.gettestnode()
+        item = self.rootcol._getitembynames(self.funcskip_spec)    
+        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.rootcol._getitembynames(self.funcfail_spec)
+        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())
 
 def test_pidinfo():
     if not hasattr(os, 'fork') or not hasattr(os, 'waitpid'):



More information about the pytest-commit mailing list