def test_one_dir_dry_run(self): test_driver = [py.path.local(py.__file__).dirpath('bin', 'py.test')] log = cStringIO.StringIO() out = cStringIO.StringIO() run_param = runner.RunParam(self.one_test_dir) run_param.test_driver = test_driver run_param.parallel_runs = 3 run_param.dry_run = True res = runner.execute_tests(run_param, ['test_normal'], log, out) assert not res assert log.getvalue() == "" out_lines = out.getvalue().splitlines() assert len(out_lines) == 5 assert out_lines[2].startswith("++ starting") assert out_lines[4].startswith("run [") for line in out_lines[2:]: assert "test_normal" in line
def test_one_dir(self): test_driver = [py.path.local(py.__file__).dirpath('bin', 'py.test')] log = cStringIO.StringIO() out = cStringIO.StringIO() run_param = runner.RunParam(self.one_test_dir) run_param.test_driver = test_driver run_param.parallel_runs = 3 res = runner.execute_tests(run_param, ['test_normal'], log, out) assert res out = out.getvalue() assert out assert '\r\n' not in out assert '\n' in out log = log.getvalue() assert '\r\n' not in log assert '\n' in log log_lines = log.splitlines() assert log_lines[0] == ". test_normal/test_example.py:test_one" nfailures = 0 noutcomes = 0 for line in log_lines: if line[0] != ' ': noutcomes += 1 if line[0] != '.': nfailures += 1 assert noutcomes == 107 assert nfailures == 6
def test_one_dir_dry_run(self): test_driver = [pytest_script] log = cStringIO.StringIO() out = cStringIO.StringIO() run_param = runner.RunParam(self.one_test_dir) run_param.test_driver = test_driver run_param.parallel_runs = 3 run_param.dry_run = True res = runner.execute_tests(run_param, ['test_normal'], log, out) assert not res assert log.getvalue() == "" out_lines = out.getvalue().splitlines() assert len(out_lines) == 7 assert 'starting' in out_lines[4] assert out_lines[6].startswith("run [") for line in out_lines[4:]: assert "test_normal" in line
def test_one_dir(self): test_driver = [pytest_script] log = cStringIO.StringIO() out = cStringIO.StringIO() run_param = runner.RunParam(self.one_test_dir) run_param.test_driver = test_driver run_param.parallel_runs = 3 res = runner.execute_tests(run_param, ['test_normal'], log, out) assert res out = out.getvalue() assert out assert '\r\n' not in out assert '\n' in out log = log.getvalue() assert '\r\n' not in log assert '\n' in log log_lines = log.splitlines() assert ". test_example.py::test_one" in log_lines nfailures = 0 noutcomes = 0 for line in log_lines: if line[0] != ' ': noutcomes += 1 if line[0] != '.': nfailures += 1 assert noutcomes == 107 assert nfailures == 6
def test_run_wrong_interp(self): log = cStringIO.StringIO() out = cStringIO.StringIO() run_param = runner.RunParam(self.one_test_dir) run_param.interp = ['wrong-interp'] run_param.parallel_runs = 3 testdirs = [] run_param.collect_testdirs(testdirs) res = runner.execute_tests(run_param, testdirs, log, out) assert res log_lines = log.getvalue().splitlines() assert log_lines[1] == ' Failed to run interp'
def test_timeout(self): test_driver = [py.path.local(py.__file__).dirpath('bin', 'py.test')] log = cStringIO.StringIO() out = cStringIO.StringIO() run_param = runner.RunParam(self.test_stall_dir) run_param.test_driver = test_driver run_param.parallel_runs = 3 run_param.timeout = 3 testdirs = [] run_param.collect_testdirs(testdirs) res = runner.execute_tests(run_param, testdirs, log, out) assert res log_lines = log.getvalue().splitlines() assert log_lines[1] == ' TIMEOUT'
def test_run_bad_get_test_driver(self): test_driver = [py.path.local(py.__file__).dirpath('bin', 'py.test')] log = cStringIO.StringIO() out = cStringIO.StringIO() run_param = runner.RunParam(self.one_test_dir) run_param.parallel_runs = 3 def boom(testdir): raise RuntimeError("Boom") run_param.get_test_driver = boom testdirs = [] run_param.collect_testdirs(testdirs) res = runner.execute_tests(run_param, testdirs, log, out) assert res log_lines = log.getvalue().splitlines() assert log_lines[1] == ' Failed with exception in execute-test'
def test_run_bad_get_test_driver(self): test_driver = [pytest_script] log = cStringIO.StringIO() out = cStringIO.StringIO() run_param = runner.RunParam(self.one_test_dir) run_param.parallel_runs = 3 def boom(testdir): raise RuntimeError("Boom") run_param.get_test_driver = boom testdirs = [] run_param.collect_testdirs(testdirs) res = runner.execute_tests(run_param, testdirs, log, out) assert res log_lines = log.getvalue().splitlines() assert log_lines[1] == ' Failed with exception in execute-test'
def test_many_dirs(self): test_driver = [py.path.local(py.__file__).dirpath('bin', 'py.test')] log = cStringIO.StringIO() out = cStringIO.StringIO() cleanedup = [] def cleanup(testdir): cleanedup.append(testdir) run_param = runner.RunParam(self.manydir) run_param.test_driver = test_driver run_param.parallel_runs = 3 run_param.cleanup = cleanup testdirs = [] run_param.collect_testdirs(testdirs) alltestdirs = testdirs[:] res = runner.execute_tests(run_param, testdirs, log, out) assert res assert out.getvalue() log_lines = log.getvalue().splitlines() nfailures = 0 noutcomes = 0 for line in log_lines: if line[0] != ' ': noutcomes += 1 if line[0] != '.': nfailures += 1 assert noutcomes == 3 * 107 assert nfailures == 3 * 6 assert set(cleanedup) == set(alltestdirs)
def test_many_dirs(self): test_driver = [py.path.local(py.__file__).dirpath('bin', 'py.test')] log = cStringIO.StringIO() out = cStringIO.StringIO() cleanedup = [] def cleanup(testdir): cleanedup.append(testdir) run_param = runner.RunParam(self.manydir) run_param.test_driver = test_driver run_param.parallel_runs = 3 run_param.cleanup = cleanup testdirs = [] run_param.collect_testdirs(testdirs) alltestdirs = testdirs[:] res = runner.execute_tests(run_param, testdirs, log, out) assert res assert out.getvalue() log_lines = log.getvalue().splitlines() nfailures = 0 noutcomes = 0 for line in log_lines: if line[0] != ' ': noutcomes += 1 if line[0] != '.': nfailures += 1 assert noutcomes == 3*107 assert nfailures == 3*6 assert set(cleanedup) == set(alltestdirs)