def METHOD_NAME(ursulas, monkeypatch):
    # Start up self-services
    ursula = ursulas[8]
    start_pytest_ursula_services(ursula=ursula)
    ursula._availability_tracker = AvailabilityTracker(ursula=ursula)
    def maintain():
        tracker = ursula._availability_tracker
        def mock_node_information_endpoint(middleware, port, *args, **kwargs):
            ursula_were_looking_for = ursula.rest_interface.port == port
            if ursula_were_looking_for:
                raise RestMiddleware.NotFound("Fake Reason")  # Make this node unreachable
            else:
                response = Response(response=bytes(ursula.metadata()), mimetype='application/octet-stream')
                return response
        # apply the monkeypatch for requests.get to mock_get
        monkeypatch.setattr(NucypherMiddlewareClient,
                            NucypherMiddlewareClient.node_information.__name__,
                            mock_node_information_endpoint)
        ursula._availability_tracker.start()
        tracker.measure_sample()  # This makes a REST Call
        start, timeout = maya.now(), 1  # seconds
        while True:
            try:
                assert len(tracker.excuses)
            except AssertionError:
                now = maya.now()
                if (now - start).total_seconds() > timeout:
                    pytest.fail()
                time.sleep(0.1)
                continue
            else:
                break
    # Run the Callbacks
    try:
        d = threads.deferToThread(maintain)
        yield d
    finally:
        if ursula._availability_tracker:
            ursula._availability_tracker.stop()
            ursula._availability_tracker = None