def test__tryUpdateNodes_sends_work_to_dbtasks(self): nodes_with_tokens = yield deferToDatabase(self.make_nodes_with_tokens) node_messages = { node: [self.make_message() for _ in range(3)] for node, _ in nodes_with_tokens } dbtasks = Mock() dbtasks.addTask = Mock() worker = StatusWorkerService(dbtasks) for node, token in nodes_with_tokens: for message in node_messages[node]: worker.queueMessage(token.key, message) yield worker._tryUpdateNodes() call_args = [ (call_arg[0][1], call_arg[0][2]) for call_arg in dbtasks.addTask.call_args_list ] self.assertThat( call_args, MatchesSetwise( *[ MatchesListwise([Equals(node), Equals(messages)]) for node, messages in node_messages.items() ] ), )
def test__tryUpdateNodes_returns_None_when_empty_queue(self): worker = StatusWorkerService(sentinel.dbtasks) self.assertIsNone(worker._tryUpdateNodes())