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