def test_runner_from_runnable_error(self): runnable = nrunner.Runnable('unsupported_kind', '') try: nrunner.runner_from_runnable( runnable, nrunner.RunnerApp.RUNNABLE_KINDS_CAPABLE) except ValueError as e: self.assertEqual(str(e), 'Unsupported kind of runnable: unsupported_kind')
def test_runner_noop(self): runnable = nrunner.Runnable('noop', None) runner = nrunner.runner_from_runnable(runnable) results = [status for status in runner.run()] last_result = results[-1] self.assertEqual(last_result['status'], 'finished') self.assertIn('time_end', last_result)
def test_runner_python_unittest_empty_uri_error(self): runnable = nrunner.Runnable('python-unittest', '') runner = nrunner.runner_from_runnable( runnable, nrunner.RunnerApp.RUNNABLE_KINDS_CAPABLE) results = [status for status in runner.run()] output = 'uri is required but was not given' result = results[-1] self.assertEqual(result['status'], 'finished') self.assertEqual(result['result'], 'error') self.assertEqual(result['output'], output)
def test_runner_python_unittest(self): runnable = nrunner.Runnable('python-unittest', 'unittest.TestCase') runner = nrunner.runner_from_runnable(runnable) results = [status for status in runner.run()] output1 = ('----------------------------------------------------------' '------------\nRan 0 tests in ') output2 = 's\n\nOK\n' result = results[-1] self.assertEqual(result['status'], 'pass') self.assertTrue(result['output'].startswith(output1)) self.assertTrue(result['output'].endswith(output2))
def test_runner_exec_test(self): runnable = nrunner.Runnable('exec-test', sys.executable, '-c', '"import time; time.sleep(0.01)"') runner = nrunner.runner_from_runnable(runnable) results = [status for status in runner.run()] last_result = results[-1] self.assertEqual(last_result['status'], 'pass') self.assertEqual(last_result['returncode'], 0) self.assertEqual(last_result['stdout'], b'') self.assertEqual(last_result['stderr'], b'') self.assertIn('time_end', last_result)
def test_runner_exec_test(self): runnable = nrunner.Runnable('exec-test', sys.executable, '-c', '"import time; time.sleep(0.01)"') runner = nrunner.runner_from_runnable(runnable) results = [status for status in runner.run()] self.assertEqual(results[-1], { 'status': 'pass', 'returncode': 0, 'stdout': b'', 'stderr': b'' })
def test_runner_exec_test_fail(self): runnable = nrunner.Runnable('exec-test', '/bin/false') runner = nrunner.runner_from_runnable( runnable, nrunner.RunnerApp.RUNNABLE_KINDS_CAPABLE) results = [status for status in runner.run()] last_result = results[-1] self.assertEqual(last_result['status'], 'finished') self.assertEqual(last_result['result'], 'fail') self.assertEqual(last_result['returncode'], 1) self.assertEqual(last_result['stdout'], b'') self.assertEqual(last_result['stderr'], b'') self.assertIn('time_end', last_result)
def test_runner_exec(self): runnable = nrunner.Runnable('exec', sys.executable, '-c', 'import time; time.sleep(0.01)') runner = nrunner.runner_from_runnable( runnable, nrunner.RunnerApp.RUNNABLE_KINDS_CAPABLE) results = [status for status in runner.run()] last_result = results[-1] self.assertEqual(last_result['status'], 'finished') self.assertEqual(last_result['returncode'], 0) self.assertEqual(last_result['stdout'], b'') self.assertEqual(last_result['stderr'], b'') self.assertIn('time_end', last_result)
def test_runner_python_unittest_error(self): runnable = nrunner.Runnable('python-unittest', 'error') runner = nrunner.runner_from_runnable( runnable, nrunner.RunnerApp.RUNNABLE_KINDS_CAPABLE) results = [status for status in runner.run()] output1 = ('=============================================================' '=========\nERROR: error') output2 = '\n\nFAILED (errors=1)\n' result = results[-1] self.assertEqual(result['status'], 'finished') self.assertEqual(result['result'], 'error') self.assertTrue(result['output'].startswith(output1)) self.assertTrue(result['output'].endswith(output2))
def test_runner_python_unittest_fail(self): runnable = nrunner.Runnable('python-unittest', 'unittest.TestCase.fail') runner = nrunner.runner_from_runnable( runnable, nrunner.RunnerApp.RUNNABLE_KINDS_CAPABLE) results = [status for status in runner.run()] output1 = ('=============================================================' '=========\nFAIL: fail (unittest.case.TestCase)' '\nFail immediately, with the given message.') output2 = '\n\nFAILED (failures=1)\n' result = results[-1] self.assertEqual(result['status'], 'finished') self.assertEqual(result['result'], 'fail') self.assertTrue(result['output'].startswith(output1)) self.assertTrue(result['output'].endswith(output2))
def test_runner_python_unittest_skip(self): runnable = nrunner.Runnable( 'python-unittest', 'selftests.unit.test_test.TestClassTestUnit.DummyTest.skip') runner = nrunner.runner_from_runnable( runnable, nrunner.RunnerApp.RUNNABLE_KINDS_CAPABLE) results = [status for status in runner.run()] output1 = ('----------------------------------------------------------' '------------\nRan 1 test in ') output2 = 's\n\nOK (skipped=1)\n' result = results[-1] self.assertEqual(result['status'], 'finished') self.assertEqual(result['result'], 'skip') self.assertTrue(result['output'].startswith(output1)) self.assertTrue(result['output'].endswith(output2))
def subcommand_runnable_run(args, echo=print): runnable = runnable_from_args(args) runner = runner_from_runnable(runnable, RUNNABLE_KIND_CAPABLE) for status in runner.run(): echo(status)
def test_runner_noop(self): runnable = nrunner.Runnable('noop') runner = nrunner.runner_from_runnable(runnable) results = [status for status in runner.run()] self.assertEqual(results, [{'status': 'finished'}])