besterd/testing/testSuite.py

85 lines
2.5 KiB
Python

import socket
import json
def sendAs(username):
# Connect to the bester daemon
d=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
d.connect(("127.0.0.1",2223))
# First do it and authenticate
bys=json.dumps({"header":{"authentication":{"username":username, "password":"passwd"}, "scope":"client"},"payload":{"data":{"bruhMsg":input("Enter message naaier: ")},"type":"type1", "id" : "lol"}})
print(len(bys), bys)
d.send(len(bys).to_bytes(4, "little"))
d.send(bys.encode())
# Loop prompt and sending of message to tbk
while True:
bys=json.dumps({"header":{"authentication":{"username":"ddd", "password":"passwd"}, "scope":"client"},"payload":{"data":{"bruhMsg":input("Enter message naaier: ")},"type":"type1", "id":"lol"}})
print(len(bys), bys)
d.send(len(bys).to_bytes(4, "little"))
d.send(bys.encode())
length=int.from_bytes(list(d.recv(4)), "little")
print(length)
receivedDataBytes = d.recv(length)
receivedData = list(receivedDataBytes)
print(receivedDataBytes.decode())
# Now we can do it again (without authentication)
#bys=json.dumps({"header":{},"payload":{"data":"POES","type":"type1"}})
#print(len(bys), bys)
#d.send(len(bys).to_bytes(4, "little"))
#d.send(bys.encode())
while True: pass
d.close()
def commandBuiltInClose():
d=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
d.connect(("127.0.0.1",2221))
bys=json.dumps({"header": {"scope" : "client"},"payload": {
"data": {
"command" : {"type" : "close", "args" : None}
},"type":"builtin"}})
print(bys)
d.send(len(bys).to_bytes(4, "little"))
d.send(bys.encode())
d.close()
def commandAuthTest():
d=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
d.connect(("127.0.0.1",2221))
bys=json.dumps({"header": {"scope" : "client"},"payload": {
"data": {
"command" : {"type" : "login", "args" : {"username" :"1", "password":"2"}}
},"type":"builtin"}})
print(bys)
d.send(len(bys).to_bytes(4, "little"))
d.send(bys.encode())
d.close()
def simpleTest():
d=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
d.connect(("127.0.0.1",2224))
bys=json.dumps({"name":1})
print(bys)
d.send(len(bys).to_bytes(4, "little"))
d.send(bys.encode())
while True: pass
d.close()
def runTests():
# Get the username to send as
sendAs(input("Enter username to send as: "))
#simpleTest()
#commandBuiltInClose()
#commandAuthTest()
#basicTest()
runTests()