From ff8143ccf40aab4fd043625f42a69ba7c6476dbf Mon Sep 17 00:00:00 2001 From: Termonoid Date: Wed, 3 Feb 2021 20:40:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D1=8B=3F=20=D0=A2?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D1=8B.=20=D0=9C=D0=B5=D1=80=D0=B6=D0=B8=20?= =?UTF-8?q?=D1=83=D0=B6=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/tgbot/pyproject.toml | 3 ++ apps/tgbot/tgbot/handlers/base.py | 2 +- apps/tgbot/tgbot/test/__init__.py | 2 + apps/tgbot/tgbot/test/port_parsers.py | 57 +++++++++++++++++++++++++++ 4 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 apps/tgbot/tgbot/test/__init__.py create mode 100644 apps/tgbot/tgbot/test/port_parsers.py diff --git a/apps/tgbot/pyproject.toml b/apps/tgbot/pyproject.toml index bec37b6..e2893b7 100644 --- a/apps/tgbot/pyproject.toml +++ b/apps/tgbot/pyproject.toml @@ -21,3 +21,6 @@ aiomysql = "^0.0.21" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" + +[tool.poetry.scripts] +test = 'tgbot.test:run_all' diff --git a/apps/tgbot/tgbot/handlers/base.py b/apps/tgbot/tgbot/handlers/base.py index c880ab0..ee77eb8 100644 --- a/apps/tgbot/tgbot/handlers/base.py +++ b/apps/tgbot/tgbot/handlers/base.py @@ -6,7 +6,7 @@ from httpx import Response from aiogram.bot import Bot from datetime import datetime from core.coretypes import APINodeInfo -from .helpers import send_api_requests, check_int +from .helpers import send_api_requests from .errors import NotEnoughArgs, InvalidPort, LocalhostForbidden from .validators import BaseValidator, LocalhostValidator from tgbot.middlewares.throttling import rate_limit diff --git a/apps/tgbot/tgbot/test/__init__.py b/apps/tgbot/tgbot/test/__init__.py new file mode 100644 index 0000000..1ba86c5 --- /dev/null +++ b/apps/tgbot/tgbot/test/__init__.py @@ -0,0 +1,2 @@ +def run_all(): + from . import port_parsers diff --git a/apps/tgbot/tgbot/test/port_parsers.py b/apps/tgbot/tgbot/test/port_parsers.py new file mode 100644 index 0000000..7f770f4 --- /dev/null +++ b/apps/tgbot/tgbot/test/port_parsers.py @@ -0,0 +1,57 @@ +import asyncio + +from ..handlers.default.tcp import TCPCheckerHandler +from ..handlers.base import process_args_for_host_port,\ + NotEnoughArgs, InvalidPort + + +try: + args = "/cmd" + process_args_for_host_port(args, 443) +except NotEnoughArgs: + pass +args = "/cmd example.com" +host, port = process_args_for_host_port(args, 443) +assert port == 443 + +args = "/cmd example.com 42" +host, port = process_args_for_host_port(args, 443) +assert port == "42" # TODO: FIX THIS SHIT + +args = "/cmd example.com:42" +host, port = process_args_for_host_port(args, 443) +assert port == "42" + +try: + args = "/cmd example.com fucktests" +except InvalidPort: + pass + +method = TCPCheckerHandler().process_args + + +async def test(): + try: + args = "/cmd" + await method(args) + args = "/cmd example.com" + await method(args) + except NotEnoughArgs: + pass + + args = "/cmd example.com 42" + host, port = await method(args) + assert port == "42" + + args = "/cmd example.com:42" + host, port = await method(args) + assert port == "42" + + try: + args = "/cmd example.com jdbnjsbndjsd" + await method(args) + except InvalidPort: + pass + + +asyncio.run(test())