summaryrefslogtreecommitdiff
path: root/tests/auth/test_service_http.py
diff options
context:
space:
mode:
authorDevaev Maxim <[email protected]>2019-04-14 23:15:06 +0300
committerDevaev Maxim <[email protected]>2019-04-14 23:16:29 +0300
commitbc0deaee5f487ec2bb752a9dbe78ffe51d2559e5 (patch)
treed14dc029c3ecb57dec1824427cdec479b15a5ddc /tests/auth/test_service_http.py
parent92260645c57689665c1fcd3f65b79a059d99d421 (diff)
moved tests to testenv
Diffstat (limited to 'tests/auth/test_service_http.py')
-rw-r--r--tests/auth/test_service_http.py79
1 files changed, 0 insertions, 79 deletions
diff --git a/tests/auth/test_service_http.py b/tests/auth/test_service_http.py
deleted file mode 100644
index c6f2b631..00000000
--- a/tests/auth/test_service_http.py
+++ /dev/null
@@ -1,79 +0,0 @@
-# ========================================================================== #
-# #
-# KVMD - The main Pi-KVM daemon. #
-# #
-# Copyright (C) 2018 Maxim Devaev <[email protected]> #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see <https://www.gnu.org/licenses/>. #
-# #
-# ========================================================================== #
-
-
-from typing import Dict
-from typing import AsyncGenerator
-
-import aiohttp.web
-import aiohttp_basicauth
-
-import pytest
-
-from . import get_configured_auth_service
-
-
-# =====
-async def _handle_auth(request: aiohttp.web.BaseRequest) -> aiohttp.web.Response:
- status = 400
- if request.method == "POST":
- credentials = (await request.json())
- if credentials["user"] == "admin" and credentials["passwd"] == "pass":
- status = 200
- return aiohttp.web.Response(text=str(status), status=status)
-
-
[email protected](name="auth_server_port")
-async def _auth_server_port_fixture(aiohttp_server) -> AsyncGenerator[int, None]: # type: ignore
- auth = aiohttp_basicauth.BasicAuthMiddleware(
- username="server-admin",
- password="server-pass",
- force=False,
- )
-
- app = aiohttp.web.Application(middlewares=[auth])
- app.router.add_post("/auth", _handle_auth)
- app.router.add_post("/auth_plus_basic", auth.required(_handle_auth))
-
- server = await aiohttp_server(app)
- try:
- yield server.port
- finally:
- await server.close()
-
-
-# =====
[email protected]("kwargs", [
- {},
- {"verify": False},
- {"user": "server-admin", "passwd": "server-pass"},
-])
-async def test_ok(auth_server_port: int, kwargs: Dict) -> None:
- url = "http://localhost:%d/%s" % (
- auth_server_port,
- ("auth_plus_basic" if kwargs.get("user") else "auth"),
- )
- async with get_configured_auth_service("http", url=url, **kwargs) as service:
- assert not (await service.login("user", "foobar"))
- assert not (await service.login("admin", "foobar"))
- assert not (await service.login("user", "pass"))
- assert (await service.login("admin", "pass"))