t = threading.Thread(target=responder, args=(server,)) t.start() for i in xrange(64, 4096, 64): client.send(message.Read.Request( reqId=1, handle=1, offset=i * 4, size=i, timeout=2000)) resp = client.expect( message.Read.Response(reqId=1, status=message.SUCCESS)) assert resp.content == generate(resp.offset, len(resp.content)) rand = random.Random(0) for _ in xrange(64): size = (1 + rand.randrange(16 * 1024)) * 4 offset = rand.randrange((ASSET_SIZE - size) / 4) * 4 client.send(message.Read.Request( reqId=1, handle=1, offset=offset, size=size, timeout=30000)) resp = client.expect( message.Read.Response(reqId=1, status=message.SUCCESS)) assert resp.content == generate(resp.offset, len(resp.content)) for offset in xrange(0, ASSET_SIZE, 8192): client.send(message.Read.Request( reqId=1, handle=1, offset=i, size=8192, timeout=30000)) resp = client.expect( message.Read.Response(reqId=1, status=message.SUCCESS)) assert resp.content == generate(resp.offset, len(resp.content)) assert len(os.listdir('cache/assets')) == 1 server.close()
conn.expect( message.AssetStatus(handle=1, ids=assetReq.ids, status=message.SUCCESS)) # Send a pending read-request. conn.send( message.Read.Request(reqId=1, handle=1, offset=0, size=1024, timeout=500)) server.expect( message.Read.Request(handle=assetReq.handle, offset=0, size=1024)) # Close upstream server server.close() bithorded.wait_for("Disconnected: evilservant") conn.expect([ message.Read.Response(reqId=1, status=message.NOTFOUND, offset=0), message.AssetStatus(handle=1, status=message.NOTFOUND), ]) # Reconnect upstream server server = TestConnection(bithorded, name='evilservant') # Expect a BindRead to arrive for the stale asset server.expect(message.BindRead(handle=assetReq.handle, ids=assetReq.ids)) server.send( message.AssetStatus(handle=assetReq.handle, ids=assetReq.ids, size=1024,