From 7bc36edb7b15cae90bbfa81187b63821466cdd59 Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Fri, 24 Mar 2023 19:45:17 +0000 Subject: add middleware tests --- tests/middleware/test_open_database.py | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 tests/middleware/test_open_database.py (limited to 'tests/middleware/test_open_database.py') diff --git a/tests/middleware/test_open_database.py b/tests/middleware/test_open_database.py new file mode 100644 index 0000000..43ebb07 --- /dev/null +++ b/tests/middleware/test_open_database.py @@ -0,0 +1,55 @@ +import urllib.parse +import urllib.request +from wsgiref.validate import validator + +import pytest + +from paste import open_database + +from ..common_wsgi import call_app + + +@pytest.fixture +def app(): + @validator + @open_database + @validator + def app(environ, start_response): + assert "paste.db_conn" in environ + conn = environ["paste.db_conn"] + (ver,) = conn.execute("PRAGMA user_version").fetchone() + assert ver > 0 + start_response("200 OK", [("Content-Type", "text/plain")]) + return [b"Hello, World!"] + + return app + + +def test_open_uri_memory(app): + response = call_app(app, environ={"PASTE_DB": "file::memory:"}) + assert response.status == "200 OK" + assert response.data == b"Hello, World!" + assert ("Content-Type", "text/plain") in response.headers + + +def test_open_uri_file(app, tmp_path): + uri = urllib.parse.urlunsplit( + ( + "file", + None, + urllib.request.pathname2url(str(tmp_path / "test.db")), + None, + None, + ) + ) + response = call_app(app, environ={"PASTE_DB": uri}) + assert response.status == "200 OK" + assert response.data == b"Hello, World!" + assert ("Content-Type", "text/plain") in response.headers + + +def test_open_file(app, tmp_path): + response = call_app(app, environ={"PASTE_DB": str(tmp_path / "test.db")}) + assert response.status == "200 OK" + assert response.data == b"Hello, World!" + assert ("Content-Type", "text/plain") in response.headers -- cgit v1.2.3-54-g00ecf