'Test that a crawl is not send multiple times when a crawl is already happening as a result of an incoming block'

def test_crawl_not_double(self):

    (node, other, another) = self.create_nodes(3)
    TestTrustChainCommunity.create_block(node, other, self._create_target(node, other), {'id': 42})
    node.call(node.community.sign_block, self._create_target(node, another), another.my_member.public_key, {'id': 42})
    message = another.receive_message(names=[HALF_BLOCK]).next()[1]
    another.give_message(message, node)
    TestTrustChainCommunity.clean_database(another)
    another.give_message(message, node)
    self.assertTrue(node.receive_message(names=[CRAWL]).next()[1])
    with self.assertRaises(StopIteration):
        self.assertFalse(node.receive_message(names=[CRAWL]).next()[1])
