def test_client(self): try: from .client import Client, ClientThread, encode_cryptset, decode_cryptset except SystemError: from client import Client, ClientThread, encode_cryptset, decode_cryptset class TestClient(Client): def send(self, msg): return test_lines, result_split_line, result_parse_line = get_client_test_data() client = TestClient() client.server = "invalid:xyz" client.start() test_dump_name = "%s%skismet_dump_test-%s.dump" % (tempfile.gettempdir(), os.sep, int(time.time())) test_dump = open(test_dump_name, "w") client = TestClient() client.set_capabilities(["bssid", "ssid"]) pos = 0 errors = 0 for line in test_lines: result = client.split_line(line.split(":", 1)[1]) if result != result_split_line[pos]: print("split_line error %s" % pos) print("%s\n!=\n%s" % (result, result_split_line[pos])) errors += 1 result = client.parse_line(line) if result != result_parse_line[pos]: print("parse_line error %s" % pos) print("%s\n!=\n%s" % (result, result_parse_line[pos])) errors += 1 pos += 1 test_dump.write(line) crypt_test = [ (0, "none"), (2, "WEP"), (226, "WEP,TKIP,WPA,PSK"), (706, "WEP,WPA,PSK,AES_CCM"), (738, "WEP,TKIP,WPA,PSK,AES_CCM"), ] for cryptset, result in crypt_test: crypt_str = decode_cryptset(cryptset, True) if crypt_str != result: print("decode_cryptset error: %s\n%s!=%s" % (cryptset, crypt_str, result)) test_cryptset = encode_cryptset(crypt_str.lower().split(",")) if test_cryptset != cryptset: print("encode_cryptset error: %s\n%s!=%s" % (crypt_str, test_cryptset, cryptset)) if errors != 0: sys.exit("client test failed, %s errors" % errors) test_dump.close() client.load_dump(test_dump_name) client.loop() client_thread = ClientThread() client_thread.client = client client.load_dump(test_dump_name) client_thread.run()