Пример #1
0
 def test_runner_from_runnable_error(self):
     try:
         runnable = Runnable('unsupported_kind', '')
         runnable.pick_runner_class()
     except ValueError as e:
         self.assertEqual(str(e),
                          'Unsupported kind of runnable: unsupported_kind')
Пример #2
0
 def test_runner_noop(self):
     runnable = Runnable('noop', None)
     runner_klass = runnable.pick_runner_class()
     runner = runner_klass()
     results = [status for status in runner.run(runnable)]
     last_result = results[-1]
     self.assertEqual(last_result['status'], 'finished')
     self.assertIn('time', last_result)
Пример #3
0
 def test_runner_noop(self):
     runnable = Runnable("noop", None)
     runner_klass = runnable.pick_runner_class()
     runner = runner_klass()
     results = [status for status in runner.run(runnable)]
     last_result = results[-1]
     self.assertEqual(last_result["status"], "finished")
     self.assertIn("time", last_result)
Пример #4
0
 def test_runner_python_unittest_empty_uri_error(self):
     runnable = Runnable("python-unittest", "")
     runner_klass = runnable.pick_runner_class()
     runner = runner_klass()
     results = [status for status in runner.run(runnable)]
     output = "Invalid URI: could not be converted to an unittest dotted name."
     result = results[-1]
     self.assertEqual(result["status"], "finished")
     self.assertEqual(result["result"], "error")
     self.assertEqual(result["output"], output)
Пример #5
0
 def test_runner_python_unittest_empty_uri_error(self):
     runnable = Runnable('python-unittest', '')
     runner_klass = runnable.pick_runner_class()
     runner = runner_klass()
     results = [status for status in runner.run(runnable)]
     output = ("Invalid URI: could not be converted to an unittest "
               "dotted name.")
     result = results[-1]
     self.assertEqual(result['status'], 'finished')
     self.assertEqual(result['result'], 'error')
     self.assertEqual(result['output'], output)
Пример #6
0
 def test_runner_exec_test_fail(self):
     runnable = Runnable('exec-test', '/bin/false')
     runner_klass = runnable.pick_runner_class()
     runner = runner_klass()
     results = [status for status in runner.run(runnable)]
     stdout_result = results[-3]
     stderr_result = results[-2]
     last_result = results[-1]
     self.assertEqual(stdout_result['type'], 'stdout')
     self.assertEqual(stdout_result['log'], b'')
     self.assertEqual(stderr_result['type'], 'stderr')
     self.assertEqual(stderr_result['log'], b'')
     self.assertEqual(last_result['status'], 'finished')
     self.assertEqual(last_result['result'], 'fail')
     self.assertEqual(last_result['returncode'], 1)
     self.assertIn('time', last_result)
Пример #7
0
 def test_runner_exec(self):
     runnable = Runnable('exec-test', sys.executable, '-c',
                         'import time; time.sleep(0.01)')
     runner_klass = runnable.pick_runner_class()
     runner = runner_klass()
     results = [status for status in runner.run(runnable)]
     stdout_result = results[-3]
     stderr_result = results[-2]
     last_result = results[-1]
     self.assertEqual(stdout_result['type'], 'stdout')
     self.assertEqual(stdout_result['log'], b'')
     self.assertEqual(stderr_result['type'], 'stderr')
     self.assertEqual(stderr_result['log'], b'')
     self.assertEqual(last_result['status'], 'finished')
     self.assertEqual(last_result['returncode'], 0)
     self.assertIn('time', last_result)
Пример #8
0
 def test_runner_exec_test_fail(self):
     runnable = Runnable("exec-test", "/bin/false")
     runner_klass = runnable.pick_runner_class()
     runner = runner_klass()
     results = [status for status in runner.run(runnable)]
     stdout_result = results[-3]
     stderr_result = results[-2]
     last_result = results[-1]
     self.assertEqual(stdout_result["type"], "stdout")
     self.assertEqual(stdout_result["log"], b"")
     self.assertEqual(stderr_result["type"], "stderr")
     self.assertEqual(stderr_result["log"], b"")
     self.assertEqual(last_result["status"], "finished")
     self.assertEqual(last_result["result"], "fail")
     self.assertEqual(last_result["returncode"], 1)
     self.assertIn("time", last_result)
Пример #9
0
 def test_runner_exec(self):
     runnable = Runnable(
         "exec-test", sys.executable, "-c", "import time; time.sleep(0.01)"
     )
     runner_klass = runnable.pick_runner_class()
     runner = runner_klass()
     results = [status for status in runner.run(runnable)]
     stdout_result = results[-3]
     stderr_result = results[-2]
     last_result = results[-1]
     self.assertEqual(stdout_result["type"], "stdout")
     self.assertEqual(stdout_result["log"], b"")
     self.assertEqual(stderr_result["type"], "stderr")
     self.assertEqual(stderr_result["log"], b"")
     self.assertEqual(last_result["status"], "finished")
     self.assertEqual(last_result["returncode"], 0)
     self.assertIn("time", last_result)
Пример #10
0
 def test_runner_python_unittest_skip(self):
     runnable = Runnable(
         "python-unittest", "selftests/.data/unittests.py:Second.test_skip"
     )
     runner_klass = runnable.pick_runner_class()
     runner = runner_klass()
     results = [status for status in runner.run(runnable)]
     output1 = (
         b"----------------------------------------------------------------------\n"
         b"Ran 1 test in "
     )
     output2 = b"s\n\nOK (skipped=1)\n"
     output = results[-2]
     result = results[-1]
     self.assertEqual(result["status"], "finished")
     self.assertEqual(result["result"], "skip")
     self.assertTrue(output["log"].startswith(output1), "Start of output differs")
     self.assertTrue(output["log"].endswith(output2), "End of output differs")
Пример #11
0
 def test_runner_python_unittest_fail(self):
     runnable = Runnable(
         "python-unittest", "selftests/.data/unittests.py:Second.test_fail"
     )
     runner_klass = runnable.pick_runner_class()
     runner = runner_klass()
     results = [status for status in runner.run(runnable)]
     if sys.version_info < (3, 11):
         output1 = (
             b"======================================================================\n"
             b"FAIL: test_fail (unittests.Second)\n"
         )
     else:
         output1 = (
             b"======================================================================\n"
             b"FAIL: test_fail (unittests.Second.test_fail)\n"
         )
     output2 = b"\n\nFAILED (failures=1)\n"
     output = results[-2]
     result = results[-1]
     self.assertEqual(result["status"], "finished")
     self.assertEqual(result["result"], "fail")
     self.assertTrue(output["log"].startswith(output1), "Start of output differs")
     self.assertTrue(output["log"].endswith(output2), "End of output differs")