コード例 #1
0
ファイル: test_processes.py プロジェクト: greschd/plumpy
    def test_broadcast(self):
        communicator = kiwipy.LocalCommunicator()

        messages = []

        def on_broadcast_receive(_comm, body, sender, subject, correlation_id):
            messages.append({
                'body': body,
                'subject': subject,
                'sender': sender,
                'correlation_id': correlation_id
            })

        communicator.add_broadcast_subscriber(on_broadcast_receive)
        proc = test_utils.DummyProcess(communicator=communicator)
        proc.execute()

        expected_subjects = []
        for i, state in enumerate(
                test_utils.DummyProcess.EXPECTED_STATE_SEQUENCE):
            from_state = test_utils.DummyProcess.EXPECTED_STATE_SEQUENCE[
                i - 1].value if i != 0 else None
            expected_subjects.append("state_changed.{}.{}".format(
                from_state, state.value))

        for i, message in enumerate(messages):
            self.assertEqual(message['subject'], expected_subjects[i])
コード例 #2
0
ファイル: test_processes.py プロジェクト: greschd/plumpy
    def test_kill(self):
        proc = test_utils.DummyProcess(loop=self.loop)

        proc.kill('Farewell!')
        self.assertTrue(proc.killed())
        self.assertEqual(proc.killed_msg(), 'Farewell!')
        self.assertEqual(proc.state, ProcessState.KILLED)
コード例 #3
0
ファイル: test_persistence.py プロジェクト: unkcpz/plumpy
    def test_bundle_load_context(self):
        """ Check that the loop from the load context is used """
        proc = test_utils.DummyProcess(loop=self.loop)
        bundle = plumpy.Bundle(proc)

        loop2 = plumpy.new_event_loop()
        proc2 = bundle.unbundle(plumpy.LoadSaveContext(loop=loop2))
        self.assertIs(loop2, proc2.loop())
コード例 #4
0
ファイル: test_processes.py プロジェクト: greschd/plumpy
    def test_spec(self):
        """
        Check that the references to specs are doing the right thing...
        """
        dp = test_utils.DummyProcess()
        self.assertIsNot(test_utils.DummyProcess.spec(), Process.spec())
        self.assertIs(dp.spec(), test_utils.DummyProcess.spec())

        class Proc(test_utils.DummyProcess):
            pass

        self.assertIsNot(Proc.spec(), Process.spec())
        self.assertIsNot(Proc.spec(), test_utils.DummyProcess.spec())
        p = Proc()
        self.assertIs(p.spec(), Proc.spec())
コード例 #5
0
ファイル: test_process_comms.py プロジェクト: unkcpz/plumpy
    def test_continue(self):
        persister = plumpy.InMemoryPersister()
        load_context = plumpy.LoadSaveContext(loop=self.loop)
        launcher = plumpy.ProcessLauncher(persister=persister,
                                          load_context=load_context)

        process = test_utils.DummyProcess(loop=self.loop)
        pid = process.pid
        persister.save_checkpoint(process)
        del process
        process = None

        result = yield launcher._continue(
            None,
            **plumpy.create_continue_body(pid)[process_comms.TASK_ARGS])
        self.assertEqual(test_utils.DummyProcess.EXPECTED_OUTPUTS, result)
コード例 #6
0
ファイル: test_process_comms.py プロジェクト: unkcpz/plumpy
    def test_broadcast(self):
        messages = []

        def on_broadcast_receive(**msg):
            messages.append(msg)

        self.communicator.add_broadcast_subscriber(on_broadcast_receive)
        proc = test_utils.DummyProcess(loop=self.loop, communicator=self.communicator)
        proc.execute()

        expected_subjects = []
        for i, state in enumerate(test_utils.DummyProcess.EXPECTED_STATE_SEQUENCE):
            from_state = test_utils.DummyProcess.EXPECTED_STATE_SEQUENCE[i - 1].value if i != 0 else None
            expected_subjects.append("state_changed.{}.{}".format(from_state, state.value))

        for i, message in enumerate(messages):
            self.assertEqual(message['subject'], expected_subjects[i])
コード例 #7
0
ファイル: test_processes.py プロジェクト: greschd/plumpy
 def test_killed(self):
     proc = test_utils.DummyProcess()
     proc.kill()
     self.assertEqual(proc.state, plumpy.ProcessState.KILLED)
     self._check_round_trip(proc)
コード例 #8
0
ファイル: test_processes.py プロジェクト: greschd/plumpy
 def test_created_bundle(self):
     """
     Check that the bundle after just creating a process is as we expect
     """
     self._check_round_trip(test_utils.DummyProcess())
コード例 #9
0
ファイル: test_processes.py プロジェクト: greschd/plumpy
 def test_run_done(self):
     proc = test_utils.DummyProcess()
     proc.execute()
     self.assertTrue(proc.done())
コード例 #10
0
ファイル: test_processes.py プロジェクト: fagan2888/plumpy
 def test_execute_twice(self):
     """Test a process that is executed once finished raises a ClosedError"""
     proc = test_utils.DummyProcess()
     proc.execute()
     with self.assertRaises(plumpy.ClosedError):
         proc.execute()