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)
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)