def test_pid(self): # Test auto generation of pid process = test_utils.DummyProcessWithOutput() self.assertIsNotNone(process.pid) # Test using integer as pid process = test_utils.DummyProcessWithOutput(pid=5) self.assertEquals(process.pid, 5) # Test using string as pid process = test_utils.DummyProcessWithOutput(pid='a') self.assertEquals(process.pid, 'a')
def test_execute(self): proc = test_utils.DummyProcessWithOutput() proc.execute() self.assertTrue(proc.done()) self.assertEqual(proc.state, ProcessState.FINISHED) self.assertEqual(proc.outputs, {'default': 5})
def test_continue(self): process = test_utils.DummyProcessWithOutput() self.persister.save_checkpoint(process) pid = process.pid del process action = plum.ContinueProcessAction(pid) action.execute(self.communicator) result = self.communicator. await (action, timeout=AWAIT_TIMEOUT) self.assertEqual(result, test_utils.DummyProcessWithOutput.EXPECTED_OUTPUTS)
def test_created_bundle(self): """ Check that the bundle after just creating a process is as we expect """ proc1 = test_utils.DummyProcessWithOutput() bundle1 = plum.Bundle(proc1) proc2 = bundle1.unbundle() bundle2 = plum.Bundle(proc2) self.assertEqual(proc1.pid, proc2.pid) self.assertDictEqual(bundle1, bundle2)
def test_instance_state(self): proc = test_utils.DummyProcessWithOutput() saver = test_utils.ProcessSaver(proc) proc.play() proc.execute() for bundle, outputs in zip(saver.snapshots, saver.outputs): # Check that it is a copy self.assertIsNot(outputs, bundle['_outputs']) # Check the contents are the same self.assertDictEqual(outputs, bundle['_outputs']) self.assertIsNot(proc.outputs, saver.snapshots[-1]['_outputs'])
def setUp(self): super(TestProcessEvents, self).setUp() self.proc = test_utils.DummyProcessWithOutput()
def test_run_from_class(self): # Test running through class method proc = test_utils.DummyProcessWithOutput() proc.execute() results = proc.outputs self.assertEqual(results['default'], 5)