Beispiel #1
0
 def test_run_cleaner_after_exception(self):
     rec = CleanerCallRecorder()
     with self.assertRaises(Exception) as content:
         execute(
             "python", {
                 ex.OPTIONS: ["mockprog.py", "24"],
                 ex.EXIT_CODE: 0,
                 ex.PREPARERS: [lambda a: 1 / 0],
                 ex.CLEANERS: [rec, rec]
             })
     self.assertEqual(rec.cnt, 2)
     self.assertEqual(rec.params[ex.EXIT_CODE], 0)
     self.assertEqual(rec.received, None)
Beispiel #2
0
 def test_checker_overwritten(self):
     params = {
         ex.OPTIONS: ["echoprog.py"],
         ex.INPUT: "42",
         ex.EXIT_CODE: 0,
         ex.STDOUT: "41"
     }
     #canary:
     res, mes = execute("python", params)
     self.assertEqual(res, False)
     #test:
     params[ex.CHECKERS] = [DoubleChecker(abs_tolerance=1.1)]
     res, mes = execute("python", params)
     self.assertEqual(mes, "")
     self.assertEqual(res, True)
Beispiel #3
0
 def test_no_checkers(self):
     #canary:
     res, mes = execute("python", {
         ex.OPTIONS: ["echoprog.py"],
         ex.EXIT_CODE: 0
     })
     self.assertEqual(res, False)
     #test:
     res, mes = execute("python", {
         ex.OPTIONS: ["echoprog.py"],
         ex.EXIT_CODE: 0,
         ex.CHECKERS: []
     })
     self.assertEqual(mes, "")
     self.assertEqual(res, True)
Beispiel #4
0
 def test_exitcode(self):
     res, mes = execute("python", {
         ex.OPTIONS: ["mockprog.py", "24"],
         ex.EXIT_CODE: 1
     })
     self.assertEqual(mes, "Wrong return code! Expected: 1 but received 0")
     self.assertEqual(res, False)
Beispiel #5
0
 def test_additional_checker_used(self):
     params = {
         ex.OPTIONS: ["echoprog.py"],
         ex.INPUT: "42",
         ex.EXIT_CODE: 0,
         ex.STDOUT: "41",
         ex.CHECKERS: [DoubleChecker(abs_tolerance=1.1)]
     }
     #canary:
     res, mes = execute("python", params)
     self.assertEqual(res, True)
     #test:
     params[ex.CHECKERS] = [DoubleChecker(abs_tolerance=1.1)]
     params[ex.ADDITIONAL_CHECKERS] = [DefaultChecker()]
     res, mes = execute("python", params)
     self.assertEqual(res, False)
Beispiel #6
0
 def test_stderr(self):
     res, mes = execute("python", {
         ex.OPTIONS: ["mockprog.py", "24"],
         ex.STDERR: "nono"
     })
     self.assertEqual(
         mes, "Wrong stderr output! Expected: [nono] but received [2424\n]")
     self.assertEqual(res, False)
Beispiel #7
0
 def test_return_empty_in_preparer(self):
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["mockprog.py", "24"],
             ex.EXIT_CODE: 0,
             ex.PREPARERS: [lambda a: ""]
         })
     self.assertEqual(mes, "")
     self.assertEqual(res, True)
Beispiel #8
0
 def test_error_in_preparer(self):
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["mockprog.py", "24"],
             ex.EXIT_CODE: 0,
             ex.PREPARERS: [lambda a: "Error"]
         })
     self.assertEqual(mes, "Error")
     self.assertEqual(res, False)
Beispiel #9
0
 def test_error_in_cleaner(self):
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["mockprog.py", "24"],
             ex.EXIT_CODE: 0,
             ex.CLEANERS: [lambda a, b: "Error"]
         })
     self.assertEqual(mes, "Error")
     self.assertEqual(res, False)
Beispiel #10
0
 def test_return_empty_in_cleaner(self):
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["mockprog.py", "24"],
             ex.EXIT_CODE: 0,
             ex.CLEANERS: [lambda a, b: None]
         })
     self.assertEqual(mes, "")
     self.assertEqual(res, True)
Beispiel #11
0
 def test_mockprog2(self):
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["mockprog.py", "24"],
             ex.STDERR: "2424\n",
             ex.STDOUT: "24\n",
             ex.EXIT_CODE: 0
         })
     self.assertEqual(mes, "")
     self.assertTrue(res)
Beispiel #12
0
 def test_emptyinput(self):
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["echoprog.py"],
             ex.STDERR: "",
             ex.STDOUT: "",
             ex.EXIT_CODE: 42
         })
     self.assertEqual(mes, "")
     self.assertEqual(res, True)
Beispiel #13
0
 def test_with_default_parameters_not_overwritten(self):
     res, mes = execute("python", {ex.EXIT_CODE: 0}, {
         ex.OPTIONS: ["echoprog.py"],
         ex.STDERR: "my_inputmy_input\n",
         ex.STDOUT: "my_input\n",
         ex.EXIT_CODE: 22,
         ex.INPUT: "my_input"
     })
     self.assertEqual(mes, "")
     self.assertEqual(res, True)
Beispiel #14
0
 def test_errorcode(self):
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["mockprog.py"],
             ex.STDERR: "",
             ex.STDOUT: "",
             ex.EXIT_CODE: 42
         })
     self.assertEqual(mes, "")
     self.assertEqual(res, True)
Beispiel #15
0
 def test_rel_tolerance_not_ok(self):
     params = {
         ex.OPTIONS: ["echoprog.py"],
         ex.INPUT: "0.1",
         ex.EXIT_CODE: 0,
         ex.STDOUT: .081,
         ex.CHECKERS: [DoubleChecker(rel_tolerance=0.1)]
     }
     res, mes = execute("python", params)
     self.assertEqual(res, False)
Beispiel #16
0
 def test_checker_used_first(self):
     double_checker = DoubleChecker(abs_tolerance=0.9)
     params = {
         ex.OPTIONS: ["echoprog.py"],
         ex.INPUT: "42",
         ex.EXIT_CODE: 0,
         ex.STDOUT: "41",
         ex.CHECKERS: [double_checker]
     }
     expected_err_msg = "Wrong stdout output! Expected: [41] but received [42\n]"  #default checker message
     #canary:
     res, msg = execute("python", params)
     self.assertEqual(res, False)
     self.assertFalse(msg == expected_err_msg)
     #test:
     params[ex.CHECKERS] = [DefaultChecker()]
     params[ex.ADDITIONAL_CHECKERS] = [double_checker]
     res, msg = execute("python", params)
     self.assertEqual(res, False)
     self.assertEqual(msg, expected_err_msg)
Beispiel #17
0
 def test_input2(self):
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["echoprog.py"],
             ex.STDERR: "my_inputmy_input\n",
             ex.STDOUT: "my_input\n",
             ex.EXIT_CODE: 0,
             ex.INPUT: "my_input"
         })
     self.assertEqual(mes, "")
     self.assertEqual(res, True)
Beispiel #18
0
 def test_expected_output_not_double(self):
     params = {
         ex.OPTIONS: ["echoprog.py"],
         ex.INPUT: "1.0",
         ex.EXIT_CODE: 0,
         ex.STDOUT: "1a.0",
         ex.CHECKERS: [DoubleChecker(abs_tolerance=0.9)]
     }
     res, mes = execute("python", params)
     self.assertEqual(res, False)
     self.assertEqual(mes, "Expected value [1a.0] isn't a float value")
Beispiel #19
0
 def setUp(self):
     #remove old data, if needed:
     prog = os.path.join(self.my_path, self.EXE_NAME)
     rm = os.path.join(self.my_path, self.program_name+".rm")
     silent_remove(prog)
     silent_remove(os.path.join(self.my_path, self.program_name+".o"))
     silent_remove(os.path.join(self.my_path, self.program_name+".s"))
     build_pars={ex.EXIT_CODE: 0, ex.STDERR: "", ex.INPUT: "", ex.STDOUT: "", 
                 ex.OPTIONS: [os.environ["RMC"], "-c", rm, "-o", prog]}
     res, msg = exe.execute("python", build_pars)
     self.assertTrue(res, msg="Could not set up: "+msg)
Beispiel #20
0
 def test_abs_tolerance_ok(self):
     params = {
         ex.OPTIONS: ["echoprog.py"],
         ex.INPUT: "1.0",
         ex.EXIT_CODE: 0,
         ex.STDOUT: .91,
         ex.CHECKERS: [DoubleChecker(abs_tolerance=0.1)]
     }
     res, mes = execute("python", params)
     self.assertEqual(res, True)
     self.assertEqual(mes, "")
Beispiel #21
0
 def test_call_twice(self):
     rec = PreparerCallRecorder()
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["mockprog.py", "24"],
             ex.EXIT_CODE: 0,
             ex.PREPARERS: [rec, rec]
         })
     self.assertEqual(mes, "")
     self.assertEqual(res, True)
     self.assertEqual(rec.cnt, 2)
     self.assertEqual(rec.params[ex.EXIT_CODE], 0)
Beispiel #22
0
 def test_call_ones(self):
     rec = CleanerCallRecorder()
     res, mes = execute("python", {
         ex.OPTIONS: ["mockprog.py", "24"],
         ex.EXIT_CODE: 0,
         ex.CLEANERS: [rec]
     })
     self.assertEqual(mes, "")
     self.assertEqual(res, True)
     self.assertEqual(rec.cnt, 1)
     self.assertEqual(rec.params[ex.EXIT_CODE], 0)
     self.assertEqual(rec.received.exit_code, 0)
Beispiel #23
0
 def test_run_cleaner_wrong_answer(self):
     rec = CleanerCallRecorder()
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["mockprog.py", "24"],
             ex.EXIT_CODE: 42,
             ex.CLEANERS: [rec, rec]
         })
     self.assertEqual(mes, "Wrong return code! Expected: 42 but received 0")
     self.assertEqual(res, False)
     self.assertEqual(rec.cnt, 2)
     self.assertEqual(rec.params[ex.EXIT_CODE], 42)
     self.assertEqual(rec.received.exit_code, 0)
Beispiel #24
0
 def test_run_cleaner_error_in_preparer(self):
     rec = CleanerCallRecorder()
     res, mes = execute(
         "python", {
             ex.OPTIONS: ["mockprog.py", "24"],
             ex.EXIT_CODE: 0,
             ex.PREPARERS: [lambda a: "Error"],
             ex.CLEANERS: [rec, rec]
         })
     self.assertEqual(mes, "Error")
     self.assertEqual(res, False)
     self.assertEqual(rec.cnt, 2)
     self.assertEqual(rec.params[ex.EXIT_CODE], 0)
     self.assertEqual(rec.received, None)
Beispiel #25
0
 def test_pwd(self):
     res, mes = execute("pwd", {ex.STDERR: "", ex.EXIT_CODE: 0})
     self.assertEqual(res, True)
     self.assertEqual(mes, "")
Beispiel #26
0
def unit_test_prototype(x, exe, data, defaults):  #x=>self
    res, msg = ex.execute(exe, data, defaults)
    x.assertTrue(res, msg="Wrong test with message: " + msg)