[pypy-svn] pypy pytest2: fix interplevel/applevel selection and move according test to pypy/tool/pytest dir

hpk42 commits-noreply at bitbucket.org
Wed Jan 19 17:24:37 CET 2011


Author: holger krekel <holger at merlinux.eu>
Branch: pytest2
Changeset: r40931:51ccfd808774
Date: 2011-01-19 17:24 +0100
http://bitbucket.org/pypy/pypy/changeset/51ccfd808774/

Log:	fix interplevel/applevel selection and move according test to
	pypy/tool/pytest dir

diff --git a/pypy/tool/test/test_conftest1.py b/pypy/tool/test/test_conftest1.py
deleted file mode 100644
--- a/pypy/tool/test/test_conftest1.py
+++ /dev/null
@@ -1,32 +0,0 @@
-
-import py
-
-innertest = py.path.local(__file__).dirpath('conftest1_innertest.py')
-pytest_plugins = "pytest_pytester"
-
-class TestPyPyTests:
-    def test_select_interplevel(self, testdir): 
-        sorter = testdir.inline_run("-k", "interplevel", innertest)
-        passed, skipped, failed = sorter.listoutcomes()
-        assert len(passed) == 2
-        assert not skipped and not failed 
-        for repevent in passed: 
-            assert repevent.item.name in ('test_something', 'test_method')
-
-    def test_select_applevel(self, testdir): 
-        sorter = testdir.inline_run("-k", "applevel", innertest)
-        passed, skipped, failed = sorter.listoutcomes()
-        assert len(passed) == 2
-        assert not skipped and not failed 
-        for repevent in passed: 
-            assert repevent.item.name in ('app_test_something', 'test_method_app')
-
-    def test_appdirect(self, testdir):
-        sorter = testdir.inline_run(innertest, '-k', 'applevel', '--runappdirect')
-        passed, skipped, failed = sorter.listoutcomes()
-        assert len(passed) == 2
-        print passed
-        names = [x.item.name for x in passed]
-        assert 'app_test_something' in names 
-        assert 'test_method_app' in names 
-        

diff --git a/pypy/tool/test/conftest1_innertest.py b/pypy/tool/pytest/test/conftest1_innertest.py
copy from pypy/tool/test/conftest1_innertest.py
copy to pypy/tool/pytest/test/conftest1_innertest.py

diff --git a/pypy/tool/test/conftest1_innertest.py b/pypy/tool/test/conftest1_innertest.py
deleted file mode 100644
--- a/pypy/tool/test/conftest1_innertest.py
+++ /dev/null
@@ -1,15 +0,0 @@
-
-def test_something(space): 
-    assert space.w_None is space.w_None 
-
-def app_test_something(): 
-    assert 42 == 42 
-
-class AppTestSomething: 
-    def test_method_app(self): 
-        assert 23 == 23 
-    
-class TestSomething:
-    def test_method(self): 
-        assert self.space 
- 

diff --git a/pypy/conftest.py b/pypy/conftest.py
--- a/pypy/conftest.py
+++ b/pypy/conftest.py
@@ -383,11 +383,9 @@
 _pygame_imported = False
 
 class IntTestFunction(PyPyTestFunction):
-    def _haskeyword(self, keyword):
-        return keyword == 'interplevel' or \
-               super(IntTestFunction, self)._haskeyword(keyword)
-    def _keywords(self):
-        return super(IntTestFunction, self)._keywords() + ['interplevel']
+    def __init__(self, *args, **kwargs):
+        super(IntTestFunction, self).__init__(*args, **kwargs)
+        self.keywords['interplevel'] = True
 
     def runtest_perform(self):
         try:
@@ -415,16 +413,13 @@
         super(IntTestFunction, self).runtest_finish()
 
 class AppTestFunction(PyPyTestFunction):
+    def __init__(self, *args, **kwargs):
+        super(AppTestFunction, self).__init__(*args, **kwargs)
+        self.keywords['applevel'] = True
+
     def _prunetraceback(self, traceback):
         return traceback
 
-    def _haskeyword(self, keyword):
-        return keyword == 'applevel' or \
-               super(AppTestFunction, self)._haskeyword(keyword)
-
-    def _keywords(self):
-        return ['applevel'] + super(AppTestFunction, self)._keywords()
-
     def runtest_perform(self):
         target = self.obj
         if self.config.option.runappdirect:

diff --git a/pypy/tool/test/test_conftest1.py b/pypy/tool/pytest/test/test_conftest1.py
copy from pypy/tool/test/test_conftest1.py
copy to pypy/tool/pytest/test/test_conftest1.py
--- a/pypy/tool/test/test_conftest1.py
+++ b/pypy/tool/pytest/test/test_conftest1.py
@@ -2,31 +2,30 @@
 import py
 
 innertest = py.path.local(__file__).dirpath('conftest1_innertest.py')
-pytest_plugins = "pytest_pytester"
+pytest_plugins = "pytester"
 
 class TestPyPyTests:
-    def test_select_interplevel(self, testdir): 
-        sorter = testdir.inline_run("-k", "interplevel", innertest)
+    def test_selection_by_keyword_interp(self, testdir): 
+        sorter = testdir.inline_run("-k", "interplevel", innertest, )
         passed, skipped, failed = sorter.listoutcomes()
-        assert len(passed) == 2
+        assert len(passed) == 2, len(passed)
         assert not skipped and not failed 
-        for repevent in passed: 
-            assert repevent.item.name in ('test_something', 'test_method')
+        assert "test_something" in passed[0].nodeid
+        assert "test_method" in passed[1].nodeid
 
-    def test_select_applevel(self, testdir): 
+    def test_selection_by_keyword_app(self, testdir): 
         sorter = testdir.inline_run("-k", "applevel", innertest)
         passed, skipped, failed = sorter.listoutcomes()
         assert len(passed) == 2
         assert not skipped and not failed 
-        for repevent in passed: 
-            assert repevent.item.name in ('app_test_something', 'test_method_app')
+        assert "app_test_something" in passed[0].nodeid
+        assert "test_method_app" in passed[1].nodeid
 
     def test_appdirect(self, testdir):
         sorter = testdir.inline_run(innertest, '-k', 'applevel', '--runappdirect')
         passed, skipped, failed = sorter.listoutcomes()
         assert len(passed) == 2
         print passed
-        names = [x.item.name for x in passed]
-        assert 'app_test_something' in names 
-        assert 'test_method_app' in names 
+        assert "app_test_something" in passed[0].nodeid
+        assert "test_method_app" in passed[1].nodeid
         


More information about the Pypy-commit mailing list