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*",
 | |
|     ])
 |