[svn r62252] renaming "py.test.keywords" to "py.test.mark".
--HG-- branch : trunk
This commit is contained in:
		
							parent
							
								
									82044fd873
								
							
						
					
					
						commit
						6f145b7c3c
					
				| 
						 | 
					@ -27,8 +27,8 @@ version = "1.0.0a1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
initpkg(__name__,
 | 
					initpkg(__name__,
 | 
				
			||||||
    description = "pylib and py.test: agile development and test support library",
 | 
					    description = "pylib and py.test: agile development and test support library",
 | 
				
			||||||
    revision = int('$LastChangedRevision: 62211 $'.split(':')[1][:-1]),
 | 
					    revision = int('$LastChangedRevision: 62252 $'.split(':')[1][:-1]),
 | 
				
			||||||
    lastchangedate = '$LastChangedDate: 2009-02-27 11:18:27 +0100 (Fri, 27 Feb 2009) $',
 | 
					    lastchangedate = '$LastChangedDate: 2009-02-27 20:56:51 +0100 (Fri, 27 Feb 2009) $',
 | 
				
			||||||
    version = version, 
 | 
					    version = version, 
 | 
				
			||||||
    url = "http://pylib.org", 
 | 
					    url = "http://pylib.org", 
 | 
				
			||||||
    download_url = "http://codespeak.net/py/0.9.2/download.html",
 | 
					    download_url = "http://codespeak.net/py/0.9.2/download.html",
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,7 @@ initpkg(__name__,
 | 
				
			||||||
    'test.__doc__'           : ('./test/__init__.py', '__doc__'),
 | 
					    'test.__doc__'           : ('./test/__init__.py', '__doc__'),
 | 
				
			||||||
    'test._PytestPlugins'    : ('./test/pytestplugin.py', 'PytestPlugins'),
 | 
					    'test._PytestPlugins'    : ('./test/pytestplugin.py', 'PytestPlugins'),
 | 
				
			||||||
    'test.raises'            : ('./test/outcome.py', 'raises'),
 | 
					    'test.raises'            : ('./test/outcome.py', 'raises'),
 | 
				
			||||||
    'test.keywords'          : ('./test/outcome.py', 'keywords',),
 | 
					    'test.mark'              : ('./test/outcome.py', 'mark',),
 | 
				
			||||||
    'test.deprecated_call'   : ('./test/outcome.py', 'deprecated_call'), 
 | 
					    'test.deprecated_call'   : ('./test/outcome.py', 'deprecated_call'), 
 | 
				
			||||||
    'test.skip'              : ('./test/outcome.py', 'skip'),
 | 
					    'test.skip'              : ('./test/outcome.py', 'skip'),
 | 
				
			||||||
    'test.importorskip'      : ('./test/outcome.py', 'importorskip'),
 | 
					    'test.importorskip'      : ('./test/outcome.py', 'importorskip'),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -166,7 +166,7 @@ class/function names of a test function are put into the set
 | 
				
			||||||
of keywords for a given test.  You may specify additional 
 | 
					of keywords for a given test.  You may specify additional 
 | 
				
			||||||
kewords like this::
 | 
					kewords like this::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @py.test.keywords("webtest")
 | 
					    @py.test.mark(webtest=True)
 | 
				
			||||||
    def test_send_http():
 | 
					    def test_send_http():
 | 
				
			||||||
        ... 
 | 
					        ... 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -72,7 +72,7 @@ class TestPyPlugins:
 | 
				
			||||||
        assert not plugins.isregistered(my)
 | 
					        assert not plugins.isregistered(my)
 | 
				
			||||||
        assert plugins.getplugins() == [my2]
 | 
					        assert plugins.getplugins() == [my2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #@py.test.keywords(xfail=True)
 | 
					    #@py.test.mark.xfail
 | 
				
			||||||
    def test_onregister(self):
 | 
					    def test_onregister(self):
 | 
				
			||||||
        py.test.skip("implement exitfirst plugin and "
 | 
					        py.test.skip("implement exitfirst plugin and "
 | 
				
			||||||
                     "modify xfail plugin to override exitfirst behaviour?")
 | 
					                     "modify xfail plugin to override exitfirst behaviour?")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -139,14 +139,34 @@ def deprecated_call(func, *args, **kwargs):
 | 
				
			||||||
        raise AssertionError("%r did not produce DeprecationWarning" %(func,))
 | 
					        raise AssertionError("%r did not produce DeprecationWarning" %(func,))
 | 
				
			||||||
    return ret
 | 
					    return ret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class keywords:
 | 
					class KeywordDecorator:
 | 
				
			||||||
    """ decorator for setting function attributes. """
 | 
					    """ decorator for setting function attributes. """
 | 
				
			||||||
    def __init__(self, **kw):
 | 
					    def __init__(self, keywords, lastname=None):
 | 
				
			||||||
        self.kw = kw
 | 
					        self._keywords = keywords
 | 
				
			||||||
    def __call__(self, func):
 | 
					        self._lastname = lastname
 | 
				
			||||||
        func.func_dict.update(self.kw)
 | 
					
 | 
				
			||||||
 | 
					    def __call__(self, func=None, **kwargs):
 | 
				
			||||||
 | 
					        if func is None:
 | 
				
			||||||
 | 
					            kw = self._keywords.copy()
 | 
				
			||||||
 | 
					            kw.update(kwargs)
 | 
				
			||||||
 | 
					            return KeywordDecorator(kw)
 | 
				
			||||||
 | 
					        elif not hasattr(func, 'func_dict'):
 | 
				
			||||||
 | 
					            kw = self._keywords.copy()
 | 
				
			||||||
 | 
					            name = self._lastname
 | 
				
			||||||
 | 
					            if name is None:
 | 
				
			||||||
 | 
					                name = "mark"
 | 
				
			||||||
 | 
					            kw[name] = func
 | 
				
			||||||
 | 
					            return KeywordDecorator(kw)
 | 
				
			||||||
 | 
					        func.func_dict.update(self._keywords)
 | 
				
			||||||
        return func 
 | 
					        return func 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __getattr__(self, name):
 | 
				
			||||||
 | 
					        kw = self._keywords.copy()
 | 
				
			||||||
 | 
					        kw[name] = True
 | 
				
			||||||
 | 
					        return self.__class__(kw, lastname=name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mark = KeywordDecorator({})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# exitcodes for the command line
 | 
					# exitcodes for the command line
 | 
				
			||||||
EXIT_OK = 0
 | 
					EXIT_OK = 0
 | 
				
			||||||
EXIT_TESTSFAILED = 1
 | 
					EXIT_TESTSFAILED = 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
for marking and reporting "expected to fail" tests. 
 | 
					for marking and reporting "expected to fail" tests. 
 | 
				
			||||||
    @py.test.keywords(xfail="needs refactoring")
 | 
					    @py.test.mark(xfail="needs refactoring")
 | 
				
			||||||
    def test_hello():
 | 
					    def test_hello():
 | 
				
			||||||
        ...
 | 
					        ...
 | 
				
			||||||
        assert 0
 | 
					        assert 0
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,7 @@ def test_xfail(plugintester, linecomp):
 | 
				
			||||||
    p = testdir.makepyfile(test_one="""
 | 
					    p = testdir.makepyfile(test_one="""
 | 
				
			||||||
        import py
 | 
					        import py
 | 
				
			||||||
        pytest_plugins="pytest_xfail",
 | 
					        pytest_plugins="pytest_xfail",
 | 
				
			||||||
        @py.test.keywords(xfail=True)
 | 
					        @py.test.mark.xfail
 | 
				
			||||||
        def test_this():
 | 
					        def test_this():
 | 
				
			||||||
            assert 0
 | 
					            assert 0
 | 
				
			||||||
    """)
 | 
					    """)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@ import py
 | 
				
			||||||
pytest_plugins = 'pytest_iocapture'
 | 
					pytest_plugins = 'pytest_iocapture'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TestConfigCmdlineParsing:
 | 
					class TestConfigCmdlineParsing:
 | 
				
			||||||
    @py.test.keywords(xfail="commit parser")
 | 
					    @py.test.mark(xfail="commit parser")
 | 
				
			||||||
    def test_config_addoption(self, stdcapture):
 | 
					    def test_config_addoption(self, stdcapture):
 | 
				
			||||||
        from py.__.test.config import Config
 | 
					        from py.__.test.config import Config
 | 
				
			||||||
        config = Config()
 | 
					        config = Config()
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,7 @@ class TestConfigCmdlineParsing:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TestConfigAPI: 
 | 
					class TestConfigAPI: 
 | 
				
			||||||
    @py.test.keywords(issue="ensuretemp should call config.maketemp(basename)")
 | 
					    @py.test.mark(issue="ensuretemp should call config.maketemp(basename)")
 | 
				
			||||||
    def test_tmpdir(self):
 | 
					    def test_tmpdir(self):
 | 
				
			||||||
        d1 = py.test.ensuretemp('hello') 
 | 
					        d1 = py.test.ensuretemp('hello') 
 | 
				
			||||||
        d2 = py.test.ensuretemp('hello') 
 | 
					        d2 = py.test.ensuretemp('hello') 
 | 
				
			||||||
| 
						 | 
					@ -263,7 +263,7 @@ class TestConfig_gettopdir:
 | 
				
			||||||
        assert gettopdir([c, Z]) == tmp 
 | 
					        assert gettopdir([c, Z]) == tmp 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TestConfigPickling:
 | 
					class TestConfigPickling:
 | 
				
			||||||
    @py.test.keywords(xfail=True, issue="config's pytestplugins/bus initialization")
 | 
					    @py.test.mark(xfail=True, issue="config's pytestplugins/bus initialization")
 | 
				
			||||||
    def test_config_initafterpickle_plugin(self, testdir):
 | 
					    def test_config_initafterpickle_plugin(self, testdir):
 | 
				
			||||||
        testdir.makepyfile(__init__="", conftest="x=1; y=2")
 | 
					        testdir.makepyfile(__init__="", conftest="x=1; y=2")
 | 
				
			||||||
        hello = testdir.makepyfile(hello="")
 | 
					        hello = testdir.makepyfile(hello="")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -81,3 +81,22 @@ def test_importorskip():
 | 
				
			||||||
        print py.code.ExceptionInfo()
 | 
					        print py.code.ExceptionInfo()
 | 
				
			||||||
        py.test.fail("spurious skip")
 | 
					        py.test.fail("spurious skip")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def test_pytest_mark():
 | 
				
			||||||
 | 
					    from py.__.test.outcome import mark
 | 
				
			||||||
 | 
					    def f(): pass
 | 
				
			||||||
 | 
					    mark(x=3)(f)
 | 
				
			||||||
 | 
					    assert f.x == 3
 | 
				
			||||||
 | 
					    def g(): pass
 | 
				
			||||||
 | 
					    mark(g)
 | 
				
			||||||
 | 
					    assert not g.func_dict
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mark.hello(f)
 | 
				
			||||||
 | 
					    assert f.hello == True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mark.hello("test")(f)
 | 
				
			||||||
 | 
					    assert f.hello == "test"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mark("x1")(f)
 | 
				
			||||||
 | 
					    assert f.mark == "x1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -248,7 +248,7 @@ class TestPytestPluginInteractions:
 | 
				
			||||||
        assert not plugins.listattr("hello")
 | 
					        assert not plugins.listattr("hello")
 | 
				
			||||||
        assert plugins.listattr("x") == [42]
 | 
					        assert plugins.listattr("x") == [42]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @py.test.keywords(xfail="implement setupcall")
 | 
					    @py.test.mark(xfail="implement setupcall")
 | 
				
			||||||
    def test_call_setup_participants(self, testdir):
 | 
					    def test_call_setup_participants(self, testdir):
 | 
				
			||||||
        testdir.makepyfile(
 | 
					        testdir.makepyfile(
 | 
				
			||||||
            conftest="""
 | 
					            conftest="""
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@ class BaseTests:
 | 
				
			||||||
    def test_funcattr(self, testdir):
 | 
					    def test_funcattr(self, testdir):
 | 
				
			||||||
        ev = testdir.runitem("""
 | 
					        ev = testdir.runitem("""
 | 
				
			||||||
            import py
 | 
					            import py
 | 
				
			||||||
            @py.test.keywords(xfail="needs refactoring")
 | 
					            @py.test.mark(xfail="needs refactoring")
 | 
				
			||||||
            def test_func():
 | 
					            def test_func():
 | 
				
			||||||
                raise Exit()
 | 
					                raise Exit()
 | 
				
			||||||
        """)
 | 
					        """)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue