78 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
import py, pytest
 | 
						|
 | 
						|
from _pytest.tmpdir import pytest_funcarg__tmpdir, TempdirHandler
 | 
						|
from _pytest.python import FuncargRequest
 | 
						|
 | 
						|
def test_funcarg(testdir):
 | 
						|
    item = testdir.getitem("""
 | 
						|
            def pytest_generate_tests(metafunc):
 | 
						|
                metafunc.addcall(id='a')
 | 
						|
                metafunc.addcall(id='b')
 | 
						|
            def test_func(tmpdir): pass
 | 
						|
            """, 'test_func[a]')
 | 
						|
    p = pytest_funcarg__tmpdir(FuncargRequest(item))
 | 
						|
    assert p.check()
 | 
						|
    bn = p.basename.strip("0123456789")
 | 
						|
    assert bn.endswith("test_func_a_")
 | 
						|
    item.name = "qwe/\\abc"
 | 
						|
    p = pytest_funcarg__tmpdir(FuncargRequest(item))
 | 
						|
    assert p.check()
 | 
						|
    bn = p.basename.strip("0123456789")
 | 
						|
    assert bn == "qwe__abc"
 | 
						|
 | 
						|
def test_ensuretemp(recwarn):
 | 
						|
    #py.test.deprecated_call(py.test.ensuretemp, 'hello')
 | 
						|
    d1 = py.test.ensuretemp('hello')
 | 
						|
    d2 = py.test.ensuretemp('hello')
 | 
						|
    assert d1 == d2
 | 
						|
    assert d1.check(dir=1)
 | 
						|
 | 
						|
class TestTempdirHandler:
 | 
						|
    def test_mktemp(self, testdir):
 | 
						|
        config = testdir.Config()
 | 
						|
        config.option.basetemp = testdir.mkdir("hello")
 | 
						|
        t = TempdirHandler(config)
 | 
						|
        tmp = t.mktemp("world")
 | 
						|
        assert tmp.relto(t.getbasetemp()) == "world0"
 | 
						|
        tmp = t.mktemp("this")
 | 
						|
        assert tmp.relto(t.getbasetemp()).startswith("this")
 | 
						|
        tmp2 = t.mktemp("this")
 | 
						|
        assert tmp2.relto(t.getbasetemp()).startswith("this")
 | 
						|
        assert tmp2 != tmp
 | 
						|
 | 
						|
class TestConfigTmpdir:
 | 
						|
    def test_getbasetemp_custom_removes_old(self, testdir):
 | 
						|
        p = testdir.tmpdir.join("xyz")
 | 
						|
        config = testdir.parseconfigure("--basetemp=xyz")
 | 
						|
        b = config._tmpdirhandler.getbasetemp()
 | 
						|
        assert b == p
 | 
						|
        h = b.ensure("hello")
 | 
						|
        config._tmpdirhandler.getbasetemp()
 | 
						|
        assert h.check()
 | 
						|
        config = testdir.parseconfigure("--basetemp=xyz")
 | 
						|
        b2 = config._tmpdirhandler.getbasetemp()
 | 
						|
        assert b2.check()
 | 
						|
        assert not h.check()
 | 
						|
 | 
						|
    def test_reparse(self, testdir):
 | 
						|
        config2 = testdir.reparseconfig([])
 | 
						|
        config3 = testdir.reparseconfig([])
 | 
						|
        assert config2.basetemp != config3.basetemp
 | 
						|
        assert not config2.basetemp.relto(config3.basetemp)
 | 
						|
        assert not config3.basetemp.relto(config2.basetemp)
 | 
						|
 | 
						|
    def test_reparse_filename_too_long(self, testdir):
 | 
						|
        config = testdir.reparseconfig(["--basetemp=%s" % ("123"*300)])
 | 
						|
 | 
						|
 | 
						|
def test_basetemp(testdir):
 | 
						|
    mytemp = testdir.tmpdir.mkdir("mytemp")
 | 
						|
    p = testdir.makepyfile("""
 | 
						|
        import pytest
 | 
						|
        def test_1():
 | 
						|
            pytest.ensuretemp("hello")
 | 
						|
    """)
 | 
						|
    result = testdir.runpytest(p, '--basetemp=%s' % mytemp)
 | 
						|
    assert result.ret == 0
 | 
						|
    assert mytemp.join('hello').check()
 |