71 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
import py
 | 
						|
from py.__.test.plugin.pytest_pytester import LineMatcher, LineComp
 | 
						|
 | 
						|
def test_reportrecorder(testdir):
 | 
						|
    registry = py._com.Registry()
 | 
						|
    recorder = testdir.getreportrecorder(registry)
 | 
						|
    assert not recorder.getfailures()
 | 
						|
    item = testdir.getitem("def test_func(): pass")
 | 
						|
    class rep:
 | 
						|
        excinfo = None
 | 
						|
        passed = False
 | 
						|
        failed = True 
 | 
						|
        skipped = False
 | 
						|
        when = "call" 
 | 
						|
 | 
						|
    recorder.hook.pytest_runtest_logreport(report=rep)
 | 
						|
    failures = recorder.getfailures()
 | 
						|
    assert failures == [rep]
 | 
						|
    failures = recorder.getfailures()
 | 
						|
    assert failures == [rep]
 | 
						|
 | 
						|
    class rep:
 | 
						|
        excinfo = None
 | 
						|
        passed = False
 | 
						|
        failed = False
 | 
						|
        skipped = True
 | 
						|
        when = "call" 
 | 
						|
    rep.passed = False
 | 
						|
    rep.skipped = True
 | 
						|
    recorder.hook.pytest_runtest_logreport(report=rep)
 | 
						|
 | 
						|
    modcol = testdir.getmodulecol("")
 | 
						|
    rep = modcol.config.hook.pytest_make_collect_report(collector=modcol)
 | 
						|
    rep.passed = False
 | 
						|
    rep.failed = True
 | 
						|
    rep.skipped = False
 | 
						|
    recorder.hook.pytest_collectreport(report=rep)
 | 
						|
 | 
						|
    passed, skipped, failed = recorder.listoutcomes()
 | 
						|
    assert not passed and skipped and failed
 | 
						|
 | 
						|
    numpassed, numskipped, numfailed = recorder.countoutcomes()
 | 
						|
    assert numpassed == 0
 | 
						|
    assert numskipped == 1
 | 
						|
    assert numfailed == 1
 | 
						|
    assert len(recorder.getfailedcollections()) == 1
 | 
						|
 | 
						|
    recorder.unregister()
 | 
						|
    recorder.clear() 
 | 
						|
    recorder.hook.pytest_runtest_logreport(report=rep)
 | 
						|
    py.test.raises(ValueError, "recorder.getfailures()")
 | 
						|
 | 
						|
 | 
						|
def test_parseconfig(testdir):
 | 
						|
    config1 = testdir.parseconfig()
 | 
						|
    config2 = testdir.parseconfig()
 | 
						|
    assert config2 != config1
 | 
						|
    assert config1 != py.test.config
 | 
						|
 | 
						|
def test_testdir_runs_with_plugin(testdir):
 | 
						|
    testdir.makepyfile("""
 | 
						|
        pytest_plugins = "pytest_pytester" 
 | 
						|
        def test_hello(testdir):
 | 
						|
            assert 1
 | 
						|
    """)
 | 
						|
    result = testdir.runpytest()
 | 
						|
    assert result.stdout.fnmatch_lines([
 | 
						|
        "*1 passed*"
 | 
						|
    ])
 | 
						|
 |