def auth(client):
            # stop the real looping ping and patch the reset method.
            yield client.dummy_authenticate('open sesame')
            server = self.service.factory.protocols[0]
            server.ping_loop.shutdown.cancel()

            # Wait for loop to finish
            d = defer.Deferred()
            real_reschedule = server.ping_loop.reschedule

            def reschedule():
                """Callback d the first time we hit this."""
                if not d.called:
                    d.callback(None)
                real_reschedule()

            self.patch(server.ping_loop, 'reschedule', reschedule)
            yield d

            self.patch(server.ping_loop, 'reset', d.callback)

            called = []

            self.patch(server.ping_loop, 'reset', lambda: called.append(1))
            yield client.ping()
            self.assertEqual(0, len(called))
            yield client.list_shares()
            self.assertEqual(1, len(called))
            yield client.list_shares()
            self.assertEqual(2, len(called))
        def ping(client):
            def done(result):
                self.assert_(result.rtt < 2)
                client.test_done("ok")

            d = client.ping()
            d.addCallbacks(done, client.test_fail)
        def auth(client):
            # stop the real looping ping and patch the reset method.
            yield client.dummy_authenticate('open sesame')
            server = self.service.factory.protocols[0]
            server.ping_loop.shutdown.cancel()

            # Wait for loop to finish
            d = defer.Deferred()
            real_reschedule = server.ping_loop.reschedule

            def reschedule():
                """Callback d the first time we hit this."""
                if not d.called:
                    d.callback(None)
                real_reschedule()
            self.patch(server.ping_loop, 'reschedule', reschedule)
            yield d

            self.patch(server.ping_loop, 'reset', d.callback)

            called = []

            self.patch(server.ping_loop, 'reset', lambda: called.append(1))
            yield client.ping()
            self.assertEqual(0, len(called))
            yield client.list_shares()
            self.assertEqual(1, len(called))
            yield client.list_shares()
            self.assertEqual(2, len(called))
 def send_message():
     if (client.messages_sent % 2) == 0:
         # one ping, one protocol version
         d = client.ping()
     else:
         d = client.protocol_version()
     d.addCallbacks(done, client.test_fail)
     client.messages_sent += 1
     client.pending_tests += 1
 def send_message():
     if (client.messages_sent % 2) == 0:
         # one ping, one protocol version
         d = client.ping()
     else:
         d = client.protocol_version()
     d.addCallbacks(done, client.test_fail)
     client.messages_sent += 1
     client.pending_tests += 1
 def ping(client):
     def done(result):
         self.assert_(result.rtt < 2)
         client.test_done("ok")
     d = client.ping()
     d.addCallbacks(done, client.test_fail)