def test_wait_for_messages(self, _status): status = _status.return_value = deepcopy(mock_status) t = Talisman([], timeout=self.timeout) def set_status(unit, message): service = unit.split('/')[0] status['services'][service]['units'][unit]['workload-status']['message'] = message t.wait_for_messages({'meteor': 'ready'}, self.timeout) t.wait_for_messages({'meteor': re.compile('r..dy')}, self.timeout) t.wait_for_messages({'meteor': {'ready'}}, self.timeout) t.wait_for_messages({'meteor': re.compile('ready|ok')}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': {'ready', 'ok'}}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': ['ready', 'ok']}, self.timeout) set_status('meteor/0', 'ok') self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': 'ready'}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': re.compile('r..dy')}, self.timeout) t.wait_for_messages({'meteor': {'ready'}}, self.timeout) t.wait_for_messages({'meteor': re.compile('ready|ok')}, self.timeout) t.wait_for_messages({'meteor': {'ready', 'ok'}}, self.timeout) t.wait_for_messages({'meteor': ['ready', 'ok']}, self.timeout) set_status('meteor/1', 'ok') self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': 'ready'}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': re.compile('r..dy')}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': {'ready'}}, self.timeout) t.wait_for_messages({'meteor': re.compile('ready|ok')}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': {'ready', 'ok'}}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': ['ready', 'ok']}, self.timeout) set_status('meteor/0', 'ready') status['services']['meteor']['units']['meteor/2'] = { 'workload-status': { 'current': 'active', 'message': 'working', }, } t.wait_for_messages({'meteor': {'ready', 'ok'}}) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': ['ready', 'ok']}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': ['ready', 'ok', 'ready']}, self.timeout) t.wait_for_messages({'rsyslog-forwarder': 'rsyslog'}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'rsyslog-forwarder': 'ready'}, self.timeout) self.assertRaises(UnsupportedError, t.wait_for_messages, {'old': 'ready'}, self.timeout)
def test_wait_for_messages(self, _status): status = _status.return_value = deepcopy(mock_status) t = Talisman([], timeout=self.timeout) def set_status(unit, message): service = unit.split('/')[0] status['services'][service]['units'][unit]['workload-status'][ 'message'] = message t.wait_for_messages({'meteor': 'ready'}, self.timeout) t.wait_for_messages({'meteor': re.compile('r..dy')}, self.timeout) t.wait_for_messages({'meteor': {'ready'}}, self.timeout) t.wait_for_messages({'meteor': re.compile('ready|ok')}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': {'ready', 'ok'}}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': ['ready', 'ok']}, self.timeout) set_status('meteor/0', 'ok') self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': 'ready'}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': re.compile('r..dy')}, self.timeout) t.wait_for_messages({'meteor': {'ready'}}, self.timeout) t.wait_for_messages({'meteor': re.compile('ready|ok')}, self.timeout) t.wait_for_messages({'meteor': {'ready', 'ok'}}, self.timeout) t.wait_for_messages({'meteor': ['ready', 'ok']}, self.timeout) set_status('meteor/1', 'ok') self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': 'ready'}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': re.compile('r..dy')}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': {'ready'}}, self.timeout) t.wait_for_messages({'meteor': re.compile('ready|ok')}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': {'ready', 'ok'}}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': ['ready', 'ok']}, self.timeout) set_status('meteor/0', 'ready') status['services']['meteor']['units']['meteor/2'] = { 'workload-status': { 'current': 'active', 'message': 'working', }, } t.wait_for_messages({'meteor': {'ready', 'ok'}}) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': ['ready', 'ok']}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'meteor': ['ready', 'ok', 'ready']}, self.timeout) t.wait_for_messages({'rsyslog-forwarder': 'rsyslog'}, self.timeout) self.assertRaises(TimeoutError, t.wait_for_messages, {'rsyslog-forwarder': 'ready'}, self.timeout) self.assertRaises(UnsupportedError, t.wait_for_messages, {'old': 'ready'}, self.timeout)