39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
import py, os, sys
 | 
						|
import subprocess
 | 
						|
 | 
						|
def pytest_funcarg__standalone(request):
 | 
						|
    return request.cached_setup(scope="module", setup=lambda: Standalone(request))
 | 
						|
 | 
						|
class Standalone:
 | 
						|
    def __init__(self, request):
 | 
						|
        self.testdir = request.getfuncargvalue("testdir")
 | 
						|
        self.script = self.testdir.tmpdir.join("mypytest")
 | 
						|
        result = self.testdir.runpytest("--genscript=%s" % self.script)
 | 
						|
        assert result.ret == 0
 | 
						|
        assert self.script.check()
 | 
						|
 | 
						|
    def run(self, anypython, testdir, *args):
 | 
						|
        testdir.chdir()
 | 
						|
        return testdir._run(anypython, self.script, *args)
 | 
						|
 | 
						|
def test_gen(testdir, anypython, standalone):
 | 
						|
    result = standalone.run(anypython, testdir, '-h')
 | 
						|
    assert result.ret == 0
 | 
						|
    result = standalone.run(anypython, testdir, '--version')
 | 
						|
    assert result.ret == 0
 | 
						|
    result.stderr.fnmatch_lines([
 | 
						|
        "*imported from*mypytest"
 | 
						|
    ])
 | 
						|
 | 
						|
def test_rundist(testdir, pytestconfig, standalone):
 | 
						|
    pytestconfig.pluginmanager.skipifmissing("xdist")
 | 
						|
    testdir.makepyfile("""
 | 
						|
        def test_one():
 | 
						|
            pass
 | 
						|
    """)
 | 
						|
    result = standalone.run(sys.executable, testdir, '-n', '3')
 | 
						|
    assert result.ret == 0
 | 
						|
    result.stdout.fnmatch_lines([
 | 
						|
        "*1 passed*",
 | 
						|
    ])
 |