Ejemplo n.º 1
0
    def test_process_state_events_with_pid(self):
        from docker_supervisor.states import ProcessStates
        from docker_supervisor import events
        for klass in (
                events.ProcessStateRunningEvent,
                events.ProcessStateStoppedEvent,
                events.ProcessStateStoppingEvent,
        ):
            options = DummyOptions()
            pconfig1 = DummyPConfig(options, 'process1', 'process1',
                                    '/bin/process1')

            class DummyGroup:
                config = pconfig1

            process1 = DummyProcess(pconfig1)
            process1.group = DummyGroup
            process1.pid = 1
            event = klass(process1, ProcessStates.STARTING)
            headers, payload = self._deserialize(str(event))
            self.assertEqual(len(headers), 4)
            self.assertEqual(headers['processname'], 'process1')
            self.assertEqual(headers['groupname'], 'process1')
            self.assertEqual(headers['from_state'], 'STARTING')
            self.assertEqual(headers['pid'], '1')
            self.assertEqual(payload, '')
 def test_toggle_capturemode_sends_event(self):
     options = DummyOptions()
     config = DummyPConfig(options, 'process1', '/bin/process1',
                           stdout_logfile='/tmp/foo',
                           stdout_capture_maxbytes=500)
     process = DummyProcess(config)
     process.pid = 4000
     dispatcher = self._makeOne(process)
     dispatcher.capturemode = True
     dispatcher.capturelog.data = ['hallooo']
     L = []
     def doit(event):
         L.append(event)
     from docker_supervisor import events
     events.subscribe(events.EventTypes.PROCESS_COMMUNICATION, doit)
     dispatcher.toggle_capturemode()
     self.assertEqual(len(L), 1)
     event = L[0]
     self.assertEqual(event.process, process)
     self.assertEqual(event.pid, 4000)
     self.assertEqual(event.data, 'hallooo')
Ejemplo n.º 3
0
    def test_process_state_exited_event_unexpected(self):
        from docker_supervisor import events
        from docker_supervisor.states import ProcessStates
        options = DummyOptions()
        pconfig1 = DummyPConfig(options, 'process1', 'process1',
                                '/bin/process1')
        process1 = DummyProcess(pconfig1)

        class DummyGroup:
            config = pconfig1

        process1.group = DummyGroup
        process1.pid = 1
        event = events.ProcessStateExitedEvent(process1,
                                               ProcessStates.STARTING,
                                               expected=False)
        headers, payload = self._deserialize(str(event))
        self.assertEqual(len(headers), 5)
        self.assertEqual(headers['processname'], 'process1')
        self.assertEqual(headers['groupname'], 'process1')
        self.assertEqual(headers['pid'], '1')
        self.assertEqual(headers['from_state'], 'STARTING')
        self.assertEqual(headers['expected'], '0')
        self.assertEqual(payload, '')