示例#1
0
    def test_wait(self, _status, juju_agent):
        status = _status.return_value = deepcopy(mock_status)

        def set_state(which, key, value):
            status['services']['meteor']['units']['meteor/0'][which][key] = value

        t = Talisman(['meteor'], timeout=self.timeout)
        t.wait(self.timeout)

        set_state('workload-status', 'current', 'unknown')
        t.wait(self.timeout)

        set_state('workload-status', 'current', 'blocked')
        t.wait(self.timeout)

        set_state('workload-status', 'current', 'active')
        set_state('agent-status', 'current', 'executing')
        set_state('juju-status', 'current', 'executing')
        self.assertRaises(TimeoutError, t.wait, self.timeout)

        set_state('agent-status', 'current', 'idle')
        set_state('agent-status', 'since', datetime.now().strftime('%d %b %Y %H:%M:%S'))
        set_state('juju-status', 'current', 'idle')
        set_state('juju-status', 'since', datetime.now().strftime('%d %b %Y %H:%M:%S'))
        self.assertRaises(TimeoutError, t.wait, self.timeout)

        t = Talisman(['old'], timeout=self.timeout)
        juju_agent.return_value = None
        self.assertRaises(TimeoutError, t.wait, self.timeout)

        juju_agent.return_value = {'hook': 'foo'}
        self.assertRaises(TimeoutError, t.wait, self.timeout)

        juju_agent.return_value = {}
        t.wait(self.timeout)
示例#2
0
    def test_wait(self, _status, juju_agent):
        status = _status.return_value = deepcopy(mock_status)

        def set_state(which, key, value):
            status['services']['meteor']['units']['meteor/0'][which][
                key] = value

        t = Talisman(['meteor'], timeout=self.timeout)
        t.wait(self.timeout)

        set_state('workload-status', 'current', 'unknown')
        t.wait(self.timeout)

        set_state('workload-status', 'current', 'blocked')
        t.wait(self.timeout)

        set_state('workload-status', 'current', 'active')
        set_state('agent-status', 'current', 'executing')
        set_state('juju-status', 'current', 'executing')
        self.assertRaises(TimeoutError, t.wait, self.timeout)

        set_state('agent-status', 'current', 'idle')
        set_state('agent-status', 'since',
                  datetime.now().strftime('%d %b %Y %H:%M:%S'))
        set_state('juju-status', 'current', 'idle')
        set_state('juju-status', 'since',
                  datetime.now().strftime('%d %b %Y %H:%M:%S'))
        self.assertRaises(TimeoutError, t.wait, self.timeout)

        t = Talisman(['old'], timeout=self.timeout)
        juju_agent.return_value = None
        self.assertRaises(TimeoutError, t.wait, self.timeout)

        juju_agent.return_value = {'hook': 'foo'}
        self.assertRaises(TimeoutError, t.wait, self.timeout)

        juju_agent.return_value = {}
        t.wait(self.timeout)