diff --git a/simulator/serial.py b/simulator/serial.py index 61c3f3d..eea9494 100644 --- a/simulator/serial.py +++ b/simulator/serial.py @@ -5,22 +5,35 @@ import string class Serial: def __init__(self, path, baudrate, timeout): - self.path = path - self.baudrate = baudrate - self.timeout = timeout + self.path = path + self.baudrate = baudrate + self.timeout = timeout + self.generated = set() + self.exceptions = True def gen_key(self, count): lst = [random.choice(string.hexdigits) for n in range(count - 2)] - return "A" + "".join(lst) + "D" + ret = "A" + "".join(lst) + "D" + print("> Serial generated key: %s" % ret) + self.generated.add(ret) + return ret + + def old_key(self, count): + if len(self.generated) == 0: + return self.gen_key(count) + index = random.randint(0, len(self.generated) - 1) + ret = list(self.generated)[index] + print("> Serial using old key: %s" % ret) + return ret; def read(self, count): - val = random.randint(0, 4) - if val == 0 or val == 1: + val = random.randint(0, 5) + if val == 0: + return self.gen_key(count).encode() + elif val in {1, 2}: + return self.old_key(count).encode() + elif val in {3, 4} or self.exceptions == False: return "".encode() - elif val == 2 or val == 3: - ret = self.gen_key(count) - print("> Serial generating key: %s" % ret) - return ret.encode() raise Exception("Test Serial Exception") def flushInput(self): diff --git a/simulator/urllib/request.py b/simulator/urllib/request.py index 8efdc67..ced816c 100644 --- a/simulator/urllib/request.py +++ b/simulator/urllib/request.py @@ -13,11 +13,11 @@ class Request: pass def read(self): - val = random.randint(0, 4) - if val == 0 or val == 1: - return "OK".encode() - elif val == 2 or val == 3: + val = random.randint(0, 5) + if val == 0: return "ERROR".encode() + elif val < 4: + return "OK".encode() raise Exception("Test Network Exception")