""" Это вспомогательный скрипт для тестирования сервера из задания в 6 блоке. Для запуска скрипта на локальном компьютере разместите рядом файл client.py, где содержится код клиента, который реализован в задание блока 5. Сначала запускаете ваш сервер на адресе 127.0.0.1 и порту 8888, а затем запускаете этот скрипт. """ import sys from client import Client, ClientProtocolError, ClientSocketError def run(host, port): client1 = Client(host, port, timeout=5) client2 = Client(host, port, timeout=5) try: client1.send("malformed command test\n") client2.send("malformed command test\n") except ClientSocketError as err: print(f"Ошибка общения с сервером: {err.__class__}: {err}") sys.exit(1) except ClientProtocolError: pass else: print( "Неверная команда, отправленная серверу, должна возвращать ошибку протокола" ) sys.exit(1) try: client1.put("k1", 0.25, timestamp=1) client2.put("k1", 2.156, timestamp=2) client1.put("k1", 0.35, timestamp=3) client2.put("k2", 30, timestamp=4) client1.put("k2", 40, timestamp=5) client1.put("k2", 40, timestamp=5) except Exception as err: print(f"Ошибка вызова client.put(...) {err.__class__}: {err}") sys.exit(1) expected_metrics = { "k1": [(1, 0.25), (2, 2.156), (3, 0.35)], "k2": [(4, 30.0), (5, 40.0)], } try: metrics = client1.get("*") if metrics != expected_metrics: print( f"client.get('*') вернул неверный результат. Ожидается: {expected_metrics}. Получено: {metrics}" ) sys.exit(1) except Exception as err: print(f"Ошибка вызова client.get('*') {err.__class__}: {err}") sys.exit(1) expected_metrics = {"k2": [(4, 30.0), (5, 40.0)]} try: metrics = client2.get("k2") if metrics != expected_metrics: print( f"client.get('k2') вернул неверный результат. Ожидается: {expected_metrics}. Получено: {metrics}" ) sys.exit(1) except Exception as err: print(f"Ошибка вызова client.get('k2') {err.__class__}: {err}") sys.exit(1) try: result = client1.get("k3") if result != {}: print( f"Ошибка вызова метода get с ключом, который еще не был добавлен. Ожидается: пустой словарь. Получено: {result}" ) sys.exit(1) except Exception as err: print( f"Ошибка вызова метода get с ключом, который еще не был добавлен: {err.__class__} {err}" ) sys.exit(1) print("Похоже, что все верно!") if __name__ == "__main__": run("127.0.0.1", 8888)