def test_watchdog_is_watchdoging(self):

        m = Main()
        m.tcp_connect()
        m.send_connect([('login', '4.test'), ('passcode', 'test')])
        m.get_frame()  # Connected frame

        ownMessage = str(uuid.uuid4())

        # Send a message, then subscrible
        m.send_frame('SEND', [('destination', config.TEST_WATCHDOG_TOPIC[0][0] + 'text')], ownMessage)
        m.send_frame('SUBSCRIBE',
                     [('destination', config.TEST_WATCHDOG_TOPIC[0][0] + 'text'), ('x-ebu-nofastreply', 'yes')], '')

        # There should be no message for TEST_FB_FALLBACK_TIME/2
        m.socket.settimeout(config.TEST_FB_FALLBACK_TIME / 2)

        ok = True

        try:
            while True:
                (result, _, body) = m.get_frame()
                if result != 'MESSAGE' or body != ownMessage:
                    ok = False
        except Exception:
            pass

        if not ok:
            raise Exception("Socket didn't timeout !")

        m.send_frame('SEND', [('destination', config.TEST_WATCHDOG_TOPIC[0][0] + 'text')], ownMessage)

        # There should be no message (except our message) for TEST_FB_FALLBACK_TIME-1
        m.socket.settimeout(config.TEST_FB_FALLBACK_TIME - 1)
        try:
            while True:
                (result, _, body) = m.get_frame()
                if result != 'MESSAGE' or body != ownMessage:
                    ok = False
        except Exception:
            pass

        if not ok:
            raise Exception("Socket didn't timeout !")

        # There should be a message if we wait for at least 1 + TEST_FB_FALLBACK_CHECK*2
        time.sleep(1 + config.TEST_FB_FALLBACK_CHECK * 2)
        m.socket.settimeout(1)
        (result, headers, body) = m.get_frame()
        eq_(result, 'MESSAGE')
Test if the watchdog: doesn't send message if one was sent, and send one if the channel is timing out.
dataset/ETHPy150Open ebu/radiodns-plugit/RadioVisServer/tests.py/MainTests.test_watchdog_is_watchdoging