def testOneSenderManyRecipients(self): raddresses = [ Q2QAddress("receiving-data.org", "receiver%d" % (x, )) for x in range(10) ] nexi = [ sigma.Nexus(self.service, radr, sigma.BaseNexusUI(self.mktemp()), self.service.callLater) for radr in raddresses ] self.stoppers.extend(nexi) self.senderNexus.push(self.sfile, 'TESTtoTEST', raddresses) self.service.flush() receivedIntroductions = 0 for nexium in nexi: receivedIntroductions += nexium.ui.receivedIntroductions self.failUnless(receivedIntroductions > 1) for nexium in nexi: peerFiles = childrenOf(nexium.ui.basepath) self.assertEquals(len(peerFiles), 1) rfiles = childrenOf(peerFiles[0]) self.assertEquals(len(rfiles), 1, rfiles) rfile = rfiles[0] self.assertEquals(rfile.open().read(), TEST_DATA, "file value mismatch")
def test_adds_user(self): """ When L{UserAdder} is connected to L{IdentityAdmin}, the L{AddUser} command is called and L{IdentityAdmin} adds the user to its factory's store. """ admin = IdentityAdmin() admin.factory = self.adminFactory serverTransport = makeFakeServer(admin) serverTransport.getQ2QHost = lambda: Q2QAddress('Q2Q Host') client = AMP() pump = connect(admin, serverTransport, client, makeFakeClient(client)) d = client.callRemote(AddUser, name='q2q username', password='******') pump.flush() # The username and password are added, along with the domain=q2q # host, to the IdentityAdmin's factory's store self.assertEqual([call('Q2Q Host', 'q2q username', 'q2q password')], self.addUser.calls) # The server responds with {} self.assertEqual({}, self.successResultOf(d))
def test_identify(self): """ A presence server responds to Identify messages with the cert stored for the requested domain. """ target = "example.com" fakeCert = makeCert("fake certificate") class FakeStorage(object): def getPrivateCertificate(cs, subject): self.assertEqual(subject, target) return fakeCert class FakeService(object): certificateStorage = FakeStorage() q = Q2Q() q.service = FakeService() d = callResponder(q, Identify, subject=Q2QAddress(target)) response = self.successResultOf(d) self.assertEqual(response, {'certificate': fakeCert}) self.assertFalse(hasattr(response['certificate'], 'privateKey'))
server = listener.buildProtocol(fromAddress) client = protocolFactory.buildProtocol(toAddress) servertpt = FakeQ2QTransport(sio, toAddress, fromAddress) clienttpt = FakeQ2QTransport(cio, fromAddress, toAddress) server.makeConnection(servertpt) client.makeConnection(clienttpt) pump = IOPump(client, server, cio, sio, False) self.pumps.append(pump) return defer.succeed(client) sender = Q2QAddress("sending-data.net", "sender") receiver = Q2QAddress("receiving-data.org", "receiver") class TestBase(unittest.TestCase): def setUp(self): self.realChunkSize = sigma.CHUNK_SIZE sigma.CHUNK_SIZE = 100 svc = self.service = FakeQ2QService() fname = self.mktemp() sf = self.sfile = FilePath(fname) if not sf.parent().isdir(): sf.parent().makedirs() sf.open('w').write(TEST_DATA) self.senderNexus = sigma.Nexus(svc, sender,