#!/usr/bin/env python3 import sys, socket, inspect opensockets=[] encoding="latin-1" def connect(): sock=socket.socket() sock.connect(("localhost",1423)) opensockets.append(sock) return sock def close(sock): sock.close() opensockets.remove(sock) def sendraw(sock,text): sock.sendall(text.encode(encoding)) def sendline(sock,line): sendraw(sock,line+"\n") def recvraw(sock,length): text="" while len(text)> All OK!\x1B[0m") @testfunction("Pingpong") def testping(s): sendline(s,"ping") expect(s,"pong") @testfunction("Create room, list, query") def testroom(s,t): sendlinelist(s,"room_query",[]) sendlinelist(t,"room_query",[]) sendlinelist(s,"room_list game",[]) sendlinelist(t,"room_list game",[]) sendlineok(s,"room_create game room 1 2") sendlinelist(s,"room_query",["room"]) sendlinelist(t,"room_query",[]) sendlinelist(s,"room_list game",["room"]) sendlinelist(t,"room_list game",["room"]) @testfunction("Create private room, list, query") def testprivateroom(s,t): sendlineok(s,"room_create game room 0 2") sendlinelist(s,"room_query",["room"]) sendlinelist(t,"room_query",[]) sendlinelist(s,"room_list game",[]) sendlinelist(t,"room_list game",[]) @testfunction("Join room") def testjoin(s,t): sendlineok(s,"room_create game room 1 2") sendline(s,"id"); sid=recvint(s) sendline(t,"id"); tid=recvint(t) sendlineok(t,"room_join game room") expect(s,"room_join game room "+str(tid)) sendlinelist(t,"room_query",["room"]) sendlineok(t,"room_create game room2 1 1") sendlinelist(t,"room_query",["room","room2"]) sendlineerror(s,"room_join game room2","Room full") sendlineok(s,"room_leave game room") expect(t,"room_leave game room "+str(sid)) @testfunction("Player list, messaging") def testid(s,t): sendline(s,"id"); sid=recvint(s) sendline(t,"id"); tid=recvint(t) sendlineok(s,"room_create game room 0 2") sendlineok(t,"room_join game room") expect(s,"room_join game room "+str(tid)) sendlinelist(s,"room_player_list game room",[str(sid),str(tid)]) sendlinelist(t,"room_player_list game room",[str(sid),str(tid)]) sendline(s,"room_message game room "+str(tid)+" 4") sendraw(s,"kaas") expect(s,"ok room_message") expect(t,"room_message game room "+str(sid)+" 4") expectraw(t,"kaas") sendline(t,"room_message game room "+str(sid)+" 256") sendraw(t,"".join(chr(i) for i in range(256))) expect(t,"ok room_message") expect(s,"room_message game room "+str(tid)+" 256") expectraw(s,"".join(chr(i) for i in range(256))) if __name__=="__main__": runtests()