32 lines
		
	
	
		
			779 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			779 B
		
	
	
	
		
			Python
		
	
	
	
"""Tests for fixtures with different scoping."""
 | 
						|
import py.code
 | 
						|
 | 
						|
 | 
						|
def test_fixture_finalizer(testdir):
 | 
						|
    testdir.makeconftest("""
 | 
						|
    import pytest
 | 
						|
    import sys
 | 
						|
 | 
						|
    @pytest.fixture
 | 
						|
    def browser(request):
 | 
						|
 | 
						|
        def finalize():
 | 
						|
            sys.stdout.write('Finalized')
 | 
						|
        request.addfinalizer(finalize)
 | 
						|
        return {}
 | 
						|
    """)
 | 
						|
    b = testdir.mkdir("subdir")
 | 
						|
    b.join("test_overriden_fixture_finalizer.py").write(py.code.Source("""
 | 
						|
    import pytest
 | 
						|
    @pytest.fixture
 | 
						|
    def browser(browser):
 | 
						|
        browser['visited'] = True
 | 
						|
        return browser
 | 
						|
 | 
						|
    def test_browser(browser):
 | 
						|
        assert browser['visited'] is True
 | 
						|
    """))
 | 
						|
    reprec = testdir.runpytest("-s")
 | 
						|
    for test in ['test_browser']:
 | 
						|
        reprec.stdout.fnmatch_lines('*Finalized*')
 |