'Create an amp server and connect a client to it.'

def setUp(self):

    from twisted.internet import reactor
    self.serverFactory = protocol.ServerFactory()
    self.serverFactory.protocol = self.serverProto
    self.clientFactory = protocol.ClientFactory()
    self.clientFactory.protocol = self.clientProto
    self.clientFactory.onMade = defer.Deferred()
    self.serverFactory.onMade = defer.Deferred()
    self.serverPort = reactor.listenTCP(0, self.serverFactory)
    self.addCleanup(self.serverPort.stopListening)
    self.clientConn = reactor.connectTCP('127.0.0.1', self.serverPort.getHost().port, self.clientFactory)
    self.addCleanup(self.clientConn.disconnect)
    def getProtos(rlst):
        self.cli = self.clientFactory.theProto
        self.svr = self.serverFactory.theProto
    dl = defer.DeferredList([self.clientFactory.onMade, self.serverFactory.onMade])
    return dl.addCallback(getProtos)
