X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=test%2Fexecution%2Fec.py;h=ff7a8fa7df095885672edb49157390f78eb7943c;hb=1d2350d56f314a6e3de43517a66f7e2f48128d44;hp=b45f06e2f35944050c52c949af2659e404783c2f;hpb=4896d77f40a611a22f9f1f8f2ae0e63e9008fee1;p=nepi.git diff --git a/test/execution/ec.py b/test/execution/ec.py index b45f06e2..ff7a8fa7 100755 --- a/test/execution/ec.py +++ b/test/execution/ec.py @@ -1,23 +1,22 @@ -""" - NEPI, a framework to manage network experiments - Copyright (C) 2013 INRIA - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -""" - #!/usr/bin/env python +# +# NEPI, a framework to manage network experiments +# Copyright (C) 2013 INRIA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation; +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Author: Alina Quereilhac + from nepi.execution.ec import ExperimentController, ECState from nepi.execution.scheduler import TaskStatus @@ -42,7 +41,7 @@ class ExecuteControllersTestCase(unittest.TestCase): time.sleep(1) - self.assertEquals('hola!', task.result) + self.assertEqual('hola!', task.result) ec.shutdown() @@ -72,17 +71,23 @@ class ExecuteControllersTestCase(unittest.TestCase): def test_schedule_exception(self): def raise_error(): - raise RuntimeError, "the error" + # When this task is executed and the error raise, + # the FailureManager should set its failure level to + # TASK_FAILURE + raise RuntimeError("NOT A REAL ERROR. JUST TESTING!") ec = ExperimentController() - ec.schedule("2s", raise_error) - while ec.ecstate not in [ECState.FAILED, ECState.TERMINATED]: - time.sleep(1) + tid = ec.schedule("2s", raise_error, track = True) - self.assertEquals(ec.ecstate, ECState.FAILED) - ec.shutdown() + while True: + task = ec.get_task(tid) + if task.status != TaskStatus.NEW: + break + + time.sleep(1) + self.assertEqual(task.status, TaskStatus.ERROR) if __name__ == '__main__': unittest.main()