示例#1
0
 def testAutomaticCorrectionRunnerMustCreateDirectoryToRunScript(self):
     runner = AutomaticCorrectionRunner()
     runner.setup_enviroment(self.delivery, self.script)
     self.assertTrue(os.path.isfile(AutomaticCorrectionRunner.TMP_DIR + "/" + os.path.basename(self.script.file.name)))
     zipfile = ZipFile(self.delivery.file.name)
     for name in zipfile.namelist():
         self.assertTrue(os.path.isfile(AutomaticCorrectionRunner.TMP_DIR + "/" + name))
示例#2
0
    def testEjecutarDeberiaInvocarAlCorregirCuandoHayCorreccionesPendientes(
            self):
        corrector = AutomaticCorrectionRunner()
        automatic_correction = Mock()
        return_value = Mock()
        automatic_correction.delivery.practice.get_script.return_value = return_value
        automatic_correction.script = "test_script.sh"
        selection_strategy_mock = Mock()
        selection_strategy_mock.get_automatic_corrections.return_value = (
            automatic_correction, )
        setup_enviroment_mock = Mock()
        script_result = ScriptResult()
        script_result.exit_value = 0
        script_result.captured_stdout = "some stdout"
        execution_command_mock = Mock()
        execution_command_mock.execute.return_value = script_result

        publication_visitor = Mock()

        corrector.selection_strategy = selection_strategy_mock
        corrector.setup_enviroment = setup_enviroment_mock
        corrector.run_script_command = execution_command_mock
        corrector.publish_result_visitors = (publication_visitor, )

        corrector.run()

        selection_strategy_mock.get_automatic_corrections.assert_called()
        setup_enviroment_mock.setup_enviroment.assert_called()
        execution_command_mock.execute.assert_called()
        publication_visitor.visit.assert_called()
示例#3
0
    def testEjecutarDeberiaConsultarCorreccionesPendientes(self):
        corrector = AutomaticCorrectionRunner()
        selection_strategy_mock = Mock()
        selection_strategy_mock.get_automatic_corrections.return_value = list()
        corrector.selection_strategy = selection_strategy_mock

        corrector.run()

        corrector.selection_strategy.get_automatic_corrections.assert_called()
示例#4
0
 def __init__(self):
     logger_manager = LoggerManager()
     self.log = logger_manager.get_new_logger("loop runner")
     self.loop_interval = LoopRunner.LOOP_INTERVAL  # in seconds
     self.stdin_path = '/dev/null'
     self.stdout_path = '/dev/tty'
     self.stderr_path = '/dev/tty'
     self.pidfile_path = '/tmp/foo.pid'
     self.pidfile_timeout = 5
     self.automatic_correction_runner = AutomaticCorrectionRunner()
     self.administrator_mail = AdministratorMail()
示例#5
0
 def testRunScriptMustTurnPendingAutomaticCorrectionToSuccessfull(self):
     runner = AutomaticCorrectionRunner()
     runner.setup_enviroment(self.delivery, self.script)
     runner.run_script(self.automatic_correction, self.script)
     runner.clean_up_tmp_dir()
     self.assertEquals(self.automatic_correction.status, 1)
示例#6
0
 def testAutomaticCorrectionRunnerMustCleanUpDirectoryAfterRunningScript(self):
     runner = AutomaticCorrectionRunner()
     runner.clean_up_tmp_dir()
     self.assertFalse(os.path.isfile(AutomaticCorrectionRunner.TMP_DIR + "/" + os.path.basename(self.script.file.name)))
示例#7
0
 def testTheMethodMustReturnOnlyOneElementInTheList(self):
     runner = AutomaticCorrectionRunner()
     pending_automatic_corrections = runner.get_pending_automatic_corrections()
     self.assertEquals(len(pending_automatic_corrections), 1)