'L{ThreadedResolver.getHostByName} returns a L{Deferred} which fires
with the value returned by the call to L{socket.gethostbyname} in the
threadpool of the reactor passed to L{ThreadedResolver.__init__}.'

def test_success(self):

    ip = '10.0.0.17'
    name = 'foo.bar.example.com'
    timeout = 30
    reactor = FakeReactor()
    self.addCleanup(reactor._stop)
    lookedUp = []
    resolvedTo = []
    def fakeGetHostByName(name):
        lookedUp.append(name)
        return ip
    self.patch(socket, 'gethostbyname', fakeGetHostByName)
    resolver = ThreadedResolver(reactor)
    d = resolver.getHostByName(name, (timeout,))
    d.addCallback(resolvedTo.append)
    reactor._runThreadCalls()
    self.assertEqual(lookedUp, [name])
    self.assertEqual(resolvedTo, [ip])
    reactor._clock.advance((timeout + 1))
    self.assertEqual(reactor._clock.calls, [])
