예제 #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 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()
예제 #4
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)