Files
lifeos-prod/smoke-results.txt
2026-03-03 00:44:33 +00:00

18322 lines
1.2 MiB

=============================================
Life OS Dynamic Test Suite
=============================================
>> Smoke tests
============================= test session starts ==============================
platform linux -- Python 3.12.12, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python
cachedir: .pytest_cache
rootdir: /app
configfile: pytest.ini
plugins: asyncio-1.3.0, anyio-4.12.1
asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=session, asyncio_default_test_loop_scope=function
collecting ... collected 82 items
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /] PASSED [ 1%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /health] PASSED [ 2%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /domains/] PASSED [ 3%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /domains/create] FAILED [ 4%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /areas/] PASSED [ 6%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /areas/create] FAILED [ 7%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /projects/] PASSED [ 8%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /projects/create] FAILED [ 9%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /tasks/] PASSED [ 10%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /tasks/create] FAILED [ 12%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /notes/] PASSED [ 13%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /notes/create] FAILED [ 14%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /links/] PASSED [ 15%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /links/create] FAILED [ 17%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /focus/] FAILED [ 18%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /capture/] FAILED [ 19%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /contacts/] PASSED [ 20%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /contacts/create] FAILED [ 21%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /search/api] PASSED [ 23%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /search/] FAILED [ 24%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /admin/trash/] PASSED [ 25%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /lists/] FAILED [ 26%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /lists/create] PASSED [ 28%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /files/] FAILED [ 29%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /files/upload] PASSED [ 30%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /meetings/] FAILED [ 31%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /meetings/create] PASSED [ 32%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /decisions/] FAILED [ 34%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /decisions/create] PASSED [ 35%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /weblinks/] FAILED [ 36%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /weblinks/create] PASSED [ 37%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /weblinks/folders/create] FAILED [ 39%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /appointments/] PASSED [ 40%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /appointments/new] FAILED [ 41%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /time/] PASSED [ 42%]
tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /time/running] FAILED [ 43%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /domains/{domain_id}/edit] ERROR [ 45%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /areas/{area_id}/edit] ERROR [ 46%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /projects/{project_id}] ERROR [ 47%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /projects/{project_id}/edit] ERROR [ 48%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /tasks/{task_id}] ERROR [ 50%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /tasks/{task_id}/edit] ERROR [ 51%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /notes/{note_id}] ERROR [ 52%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /notes/{note_id}/edit] ERROR [ 53%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /links/{link_id}/edit] ERROR [ 54%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /contacts/{contact_id}] ERROR [ 56%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /contacts/{contact_id}/edit] ERROR [ 57%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /lists/{list_id}] ERROR [ 58%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /lists/{list_id}/edit] ERROR [ 59%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /files/{file_id}/download] ERROR [ 60%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /files/{file_id}/preview] ERROR [ 62%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /files/{file_id}/serve] ERROR [ 63%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /meetings/{meeting_id}] ERROR [ 64%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /meetings/{meeting_id}/edit] ERROR [ 65%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /decisions/{decision_id}] ERROR [ 67%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /decisions/{decision_id}/edit] ERROR [ 68%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /weblinks/{weblink_id}/edit] ERROR [ 69%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /appointments/{appointment_id}] ERROR [ 70%]
tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /appointments/{appointment_id}/edit] ERROR [ 71%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /domains/{domain_id}/edit] FAILED [ 73%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /areas/{area_id}/edit] FAILED [ 74%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /projects/{project_id}] FAILED [ 75%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /projects/{project_id}/edit] FAILED [ 76%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /tasks/{task_id}] FAILED [ 78%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /tasks/{task_id}/edit] FAILED [ 79%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /notes/{note_id}] FAILED [ 80%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /notes/{note_id}/edit] FAILED [ 81%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /links/{link_id}/edit] FAILED [ 82%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /contacts/{contact_id}] FAILED [ 84%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /contacts/{contact_id}/edit] FAILED [ 85%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /lists/{list_id}] FAILED [ 86%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /lists/{list_id}/edit] FAILED [ 87%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /files/{file_id}/download] FAILED [ 89%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /files/{file_id}/preview] FAILED [ 90%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /files/{file_id}/serve] FAILED [ 91%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /meetings/{meeting_id}] FAILED [ 92%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /meetings/{meeting_id}/edit] FAILED [ 93%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /decisions/{decision_id}] FAILED [ 95%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /decisions/{decision_id}/edit] FAILED [ 96%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /weblinks/{weblink_id}/edit] FAILED [ 97%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /appointments/{appointment_id}] FAILED [ 98%]
tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /appointments/{appointment_id}/edit] FAILED [100%]
==================================== ERRORS ====================================
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /domains/{domain_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:730: in pytest_fixture_setup
return (yield)
^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /areas/{area_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /projects/{project_id}] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /projects/{project_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
__ ERROR at setup of test_get_with_valid_id_returns_200[GET /tasks/{task_id}] __
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /tasks/{task_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
__ ERROR at setup of test_get_with_valid_id_returns_200[GET /notes/{note_id}] __
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /notes/{note_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /links/{link_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /contacts/{contact_id}] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /contacts/{contact_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
__ ERROR at setup of test_get_with_valid_id_returns_200[GET /lists/{list_id}] __
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /lists/{list_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /files/{file_id}/download] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /files/{file_id}/preview] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /files/{file_id}/serve] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /meetings/{meeting_id}] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /meetings/{meeting_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /decisions/{decision_id}] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /decisions/{decision_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /weblinks/{weblink_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /appointments/{appointment_id}] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
_ ERROR at setup of test_get_with_valid_id_returns_200[GET /appointments/{appointment_id}/edit] _
tests/conftest.py:146: in all_seeds
cur.execute("""
E psycopg2.errors.UndefinedColumn: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py:458: in setup
return super().setup()
^^^^^^^^^^^^^^^
tests/conftest.py:169: in all_seeds
raise RuntimeError(f"Seed data insertion failed: {e}") from e
E RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
E LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
E ^
=================================== FAILURES ===================================
_____________ test_get_no_params_returns_200[GET /domains/create] ______________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/domains.py", line 30, in create_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/domains.py", line 30, in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/domains.py:30: in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018ca22b7a0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
______________ test_get_no_params_returns_200[GET /areas/create] _______________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/areas.py", line 58, in create_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/areas.py", line 58, in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/areas.py:58: in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c32e54f0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_____________ test_get_no_params_returns_200[GET /projects/create] _____________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/projects.py", line 78, in create_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/projects.py", line 78, in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/projects.py:78: in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c32e5d60>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
______________ test_get_no_params_returns_200[GET /tasks/create] _______________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/tasks.py", line 119, in create_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/tasks.py", line 119, in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/tasks.py:119: in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018ca22be30>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
______________ test_get_no_params_returns_200[GET /notes/create] _______________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/notes.py", line 66, in create_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/notes.py", line 66, in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/notes.py:66: in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c32e6990>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
______________ test_get_no_params_returns_200[GET /links/create] _______________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/links.py", line 49, in create_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/links.py", line 49, in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/links.py:49: in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c302df40>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_________________ test_get_no_params_returns_200[GET /focus/] __________________
asyncpg/protocol/prepared_stmt.pyx:175: in asyncpg.protocol.protocol.PreparedStatementState._encode_bind_msg
???
asyncpg/protocol/codecs/base.pyx:227: in asyncpg.protocol.protocol.Codec.encode
???
asyncpg/protocol/codecs/base.pyx:129: in asyncpg.protocol.protocol.Codec.encode_scalar
???
asyncpg/pgproto/./codecs/datetime.pyx:97: in asyncpg.pgproto.pgproto.date_encode
???
E AttributeError: 'str' object has no attribute 'toordinal'
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:534: in _prepare_and_execute
self._rows = deque(await prepared_stmt.fetch(*parameters))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/asyncpg/prepared_stmt.py:176: in fetch
data = await self.__bind_execute(args, 0, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/asyncpg/prepared_stmt.py:267: in __bind_execute
data, status, _ = await self.__do_execute(
/usr/local/lib/python3.12/site-packages/asyncpg/prepared_stmt.py:256: in __do_execute
return await executor(protocol)
^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:185: in bind_execute
???
asyncpg/protocol/prepared_stmt.pyx:204: in asyncpg.protocol.protocol.PreparedStatementState._encode_bind_msg
???
E asyncpg.exceptions.DataError: invalid input for query argument $1: '2026-03-01' ('str' object has no attribute 'toordinal')
The above exception was the direct cause of the following exception:
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:1967: in _exec_single_context
self.dialect.do_execute(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:941: in do_execute
cursor.execute(statement, parameters)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:568: in execute
self._adapt_connection.await_(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:546: in _prepare_and_execute
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:497: in _handle_exception
self._adapt_connection._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:780: in _handle_exception
raise translated_error from error
E sqlalchemy.dialects.postgresql.asyncpg.AsyncAdapt_asyncpg_dbapi.Error: <class 'asyncpg.exceptions.DataError'>: invalid input for query argument $1: '2026-03-01' ('str' object has no attribute 'toordinal')
The above exception was the direct cause of the following exception:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/focus.py:24: in focus_view
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2256: in _execute_internal
result = conn.execute(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:1418: in execute
return meth(
/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/elements.py:515: in _execute_on_connection
return connection._execute_clauseelement(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:1640: in _execute_clauseelement
ret = self._execute_context(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:1846: in _execute_context
return self._exec_single_context(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:1986: in _exec_single_context
self._handle_dbapi_exception(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:2355: in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:1967: in _exec_single_context
self.dialect.do_execute(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:941: in do_execute
cursor.execute(statement, parameters)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:568: in execute
self._adapt_connection.await_(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:546: in _prepare_and_execute
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:497: in _handle_exception
self._adapt_connection._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:780: in _handle_exception
raise translated_error from error
E sqlalchemy.exc.DBAPIError: (sqlalchemy.dialects.postgresql.asyncpg.Error) <class 'asyncpg.exceptions.DataError'>: invalid input for query argument $1: '2026-03-01' ('str' object has no attribute 'toordinal')
E [SQL:
E SELECT df.*, t.title, t.priority, t.status as task_status,
E t.project_id, t.due_date, t.estimated_minutes,
E p.name as project_name,
E d.name as domain_name, d.color as domain_color
E FROM daily_focus df
E JOIN tasks t ON df.task_id = t.id
E LEFT JOIN projects p ON t.project_id = p.id
E LEFT JOIN domains d ON t.domain_id = d.id
E WHERE df.focus_date = $1 AND df.is_deleted = false
E ORDER BY df.sort_order, df.created_at
E ]
E [parameters: ('2026-03-01',)]
E (Background on this error at: https://sqlalche.me/e/20/dbapi)
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:28,608 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:28,608 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:28,608 INFO sqlalchemy.engine.Engine [cached since 2.994s ago] ()
2026-03-01 14:01:28,615 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:28,615 INFO sqlalchemy.engine.Engine [cached since 2.994s ago] ()
2026-03-01 14:01:28,617 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:28,617 INFO sqlalchemy.engine.Engine [cached since 2.994s ago] ()
2026-03-01 14:01:28,621 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:28,621 INFO sqlalchemy.engine.Engine [cached since 2.995s ago] ()
2026-03-01 14:01:28,624 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:28,625 INFO sqlalchemy.engine.Engine [cached since 2.995s ago] ()
2026-03-01 14:01:28,628 INFO sqlalchemy.engine.Engine
SELECT df.*, t.title, t.priority, t.status as task_status,
t.project_id, t.due_date, t.estimated_minutes,
p.name as project_name,
d.name as domain_name, d.color as domain_color
FROM daily_focus df
JOIN tasks t ON df.task_id = t.id
LEFT JOIN projects p ON t.project_id = p.id
LEFT JOIN domains d ON t.domain_id = d.id
WHERE df.focus_date = $1 AND df.is_deleted = false
ORDER BY df.sort_order, df.created_at
2026-03-01 14:01:28,628 INFO sqlalchemy.engine.Engine [generated in 0.00011s] ('2026-03-01',)
2026-03-01 14:01:28,631 INFO sqlalchemy.engine.Engine ROLLBACK
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 2.994s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 2.994s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 2.994s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 2.995s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 2.995s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT df.*, t.title, t.priority, t.status as task_status,
t.project_id, t.due_date, t.estimated_minutes,
p.name as project_name,
d.name as domain_name, d.color as domain_color
FROM daily_focus df
JOIN tasks t ON df.task_id = t.id
LEFT JOIN projects p ON t.project_id = p.id
LEFT JOIN domains d ON t.domain_id = d.id
WHERE df.focus_date = $1 AND df.is_deleted = false
ORDER BY df.sort_order, df.created_at
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00011s] ('2026-03-01',)
INFO sqlalchemy.engine.Engine:base.py:2704 ROLLBACK
________________ test_get_no_params_returns_200[GET /capture/] _________________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/capture.py", line 20, in list_capture
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/capture.py", line 20, in list_capture
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/capture.py:20: in list_capture
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c8a985f0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_____________ test_get_no_params_returns_200[GET /contacts/create] _____________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/contacts.py", line 34, in create_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/contacts.py", line 34, in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/contacts.py:34: in create_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c32e7f20>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_________________ test_get_no_params_returns_200[GET /search/] _________________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/search.py", line 220, in search_page
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/search.py", line 220, in search_page
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/search.py:220: in search_page
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c99368a0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_________________ test_get_no_params_returns_200[GET /lists/] __________________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/lists.py", line 26, in list_lists
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/lists.py", line 26, in list_lists
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/lists.py:26: in list_lists
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c9935220>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_________________ test_get_no_params_returns_200[GET /files/] __________________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/files.py", line 40, in list_files
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/files.py", line 40, in list_files
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/files.py:40: in list_files
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c38126c0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
________________ test_get_no_params_returns_200[GET /meetings/] ________________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/meetings.py", line 25, in list_meetings
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/meetings.py", line 25, in list_meetings
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/meetings.py:25: in list_meetings
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c2f90320>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_______________ test_get_no_params_returns_200[GET /decisions/] ________________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/decisions.py", line 25, in list_decisions
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/decisions.py", line 25, in list_decisions
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/decisions.py:25: in list_decisions
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c32e6a80>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
________________ test_get_no_params_returns_200[GET /weblinks/] ________________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/weblinks.py", line 24, in list_weblinks
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/weblinks.py", line 24, in list_weblinks
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/weblinks.py:24: in list_weblinks
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c8a98320>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_________ test_get_no_params_returns_200[GET /weblinks/folders/create] _________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/weblinks.py", line 200, in create_folder_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/weblinks.py", line 200, in create_folder_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/weblinks.py:200: in create_folder_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c2f916d0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
____________ test_get_no_params_returns_200[GET /appointments/new] _____________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/appointments.py", line 84, in new_appointment
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/appointments.py", line 84, in new_appointment
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/appointments.py:84: in new_appointment
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c2ff8f50>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
______________ test_get_no_params_returns_200[GET /time/running] _______________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
| r = await client.get(url, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/time_tracking.py", line 157, in running_timer_api
| running = await get_running_timer(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/time_tracking.py", line 20, in get_running_timer
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 35, in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/time_tracking.py", line 157, in running_timer_api
running = await get_running_timer(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/time_tracking.py", line 20, in get_running_timer
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:35: in test_get_no_params_returns_200
r = await client.get(url, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/time_tracking.py:157: in running_timer_api
running = await get_running_timer(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/time_tracking.py:20: in get_running_timer
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c2ffb4d0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_______ test_get_with_fake_id_returns_404[404 /domains/{domain_id}/edit] _______
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /domains/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:35,136 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:35,136 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:35,136 INFO sqlalchemy.engine.Engine [cached since 9.523s ago] ()
2026-03-01 14:01:35,143 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:35,143 INFO sqlalchemy.engine.Engine [cached since 9.523s ago] ()
2026-03-01 14:01:35,146 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:35,146 INFO sqlalchemy.engine.Engine [cached since 9.523s ago] ()
2026-03-01 14:01:35,150 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:35,150 INFO sqlalchemy.engine.Engine [cached since 9.523s ago] ()
2026-03-01 14:01:35,153 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:35,153 INFO sqlalchemy.engine.Engine [cached since 9.523s ago] ()
2026-03-01 14:01:35,155 INFO sqlalchemy.engine.Engine SELECT * FROM domains WHERE id = $1
2026-03-01 14:01:35,155 INFO sqlalchemy.engine.Engine [generated in 0.00009s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:35,157 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:35,159 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:35,159 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:35,159 INFO sqlalchemy.engine.Engine [cached since 9.546s ago] ()
2026-03-01 14:01:35,160 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:35,160 INFO sqlalchemy.engine.Engine [cached since 9.539s ago] ()
2026-03-01 14:01:35,160 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:35,160 INFO sqlalchemy.engine.Engine [cached since 9.538s ago] ()
2026-03-01 14:01:35,161 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:35,161 INFO sqlalchemy.engine.Engine [cached since 9.534s ago] ()
2026-03-01 14:01:35,161 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:35,161 INFO sqlalchemy.engine.Engine [cached since 9.532s ago] ()
2026-03-01 14:01:35,162 INFO sqlalchemy.engine.Engine
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
2026-03-01 14:01:35,162 INFO sqlalchemy.engine.Engine [cached since 9.455s ago] (50, 0)
2026-03-01 14:01:35,163 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.523s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.523s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.523s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.523s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.523s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM domains WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00009s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.546s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.539s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.538s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.534s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.532s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.455s ago] (50, 0)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
_________ test_get_with_fake_id_returns_404[404 /areas/{area_id}/edit] _________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/areas.py", line 88, in edit_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/areas.py", line 88, in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/areas.py:88: in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c38109b0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
________ test_get_with_fake_id_returns_404[404 /projects/{project_id}] _________
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /projects/00000000-0000-0000-0000-000000000000 returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:35,572 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:35,572 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:35,572 INFO sqlalchemy.engine.Engine [cached since 9.959s ago] ()
2026-03-01 14:01:35,582 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:35,582 INFO sqlalchemy.engine.Engine [cached since 9.961s ago] ()
2026-03-01 14:01:35,585 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:35,585 INFO sqlalchemy.engine.Engine [cached since 9.962s ago] ()
2026-03-01 14:01:35,591 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:35,591 INFO sqlalchemy.engine.Engine [cached since 9.964s ago] ()
2026-03-01 14:01:35,594 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:35,594 INFO sqlalchemy.engine.Engine [cached since 9.965s ago] ()
2026-03-01 14:01:35,598 INFO sqlalchemy.engine.Engine SELECT * FROM projects WHERE id = $1
2026-03-01 14:01:35,598 INFO sqlalchemy.engine.Engine [generated in 0.00011s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:35,600 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:35,603 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:35,603 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:35,603 INFO sqlalchemy.engine.Engine [cached since 9.99s ago] ()
2026-03-01 14:01:35,604 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:35,604 INFO sqlalchemy.engine.Engine [cached since 9.983s ago] ()
2026-03-01 14:01:35,604 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:35,604 INFO sqlalchemy.engine.Engine [cached since 9.981s ago] ()
2026-03-01 14:01:35,605 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:35,605 INFO sqlalchemy.engine.Engine [cached since 9.978s ago] ()
2026-03-01 14:01:35,605 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:35,605 INFO sqlalchemy.engine.Engine [cached since 9.976s ago] ()
2026-03-01 14:01:35,606 INFO sqlalchemy.engine.Engine
SELECT p.*,
d.name as domain_name, d.color as domain_color,
a.name as area_name,
(SELECT count(*) FROM tasks t WHERE t.project_id = p.id AND t.is_deleted = false) as task_count,
(SELECT count(*) FROM tasks t WHERE t.project_id = p.id AND t.is_deleted = false AND t.status = 'done') as done_count
FROM projects p
JOIN domains d ON p.domain_id = d.id
LEFT JOIN areas a ON p.area_id = a.id
WHERE p.is_deleted = false
ORDER BY d.sort_order, d.name, a.sort_order, a.name, p.sort_order, p.name
2026-03-01 14:01:35,606 INFO sqlalchemy.engine.Engine [cached since 8.946s ago] ()
2026-03-01 14:01:35,617 INFO sqlalchemy.engine.Engine
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
2026-03-01 14:01:35,617 INFO sqlalchemy.engine.Engine [cached since 9.91s ago] (50, 0)
2026-03-01 14:01:35,618 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.959s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.961s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.962s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.964s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.965s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM projects WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00011s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.99s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.983s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.981s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.978s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.976s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT p.*,
d.name as domain_name, d.color as domain_color,
a.name as area_name,
(SELECT count(*) FROM tasks t WHERE t.project_id = p.id AND t.is_deleted = false) as task_count,
(SELECT count(*) FROM tasks t WHERE t.project_id = p.id AND t.is_deleted = false AND t.status = 'done') as done_count
FROM projects p
JOIN domains d ON p.domain_id = d.id
LEFT JOIN areas a ON p.area_id = a.id
WHERE p.is_deleted = false
ORDER BY d.sort_order, d.name, a.sort_order, a.name, p.sort_order, p.name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 8.946s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.91s ago] (50, 0)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
______ test_get_with_fake_id_returns_404[404 /projects/{project_id}/edit] ______
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/projects.py", line 196, in edit_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/projects.py", line 196, in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/projects.py:196: in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c3ae0050>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
___________ test_get_with_fake_id_returns_404[404 /tasks/{task_id}] ____________
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /tasks/00000000-0000-0000-0000-000000000000 returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:36,040 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:36,040 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:36,040 INFO sqlalchemy.engine.Engine [cached since 10.43s ago] ()
2026-03-01 14:01:36,046 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:36,046 INFO sqlalchemy.engine.Engine [cached since 10.43s ago] ()
2026-03-01 14:01:36,049 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:36,049 INFO sqlalchemy.engine.Engine [cached since 10.43s ago] ()
2026-03-01 14:01:36,052 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:36,052 INFO sqlalchemy.engine.Engine [cached since 10.43s ago] ()
2026-03-01 14:01:36,055 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:36,055 INFO sqlalchemy.engine.Engine [cached since 10.43s ago] ()
2026-03-01 14:01:36,058 INFO sqlalchemy.engine.Engine SELECT * FROM tasks WHERE id = $1
2026-03-01 14:01:36,058 INFO sqlalchemy.engine.Engine [generated in 0.00014s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:36,063 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:36,065 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:36,066 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:36,066 INFO sqlalchemy.engine.Engine [cached since 10.45s ago] ()
2026-03-01 14:01:36,066 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:36,066 INFO sqlalchemy.engine.Engine [cached since 10.45s ago] ()
2026-03-01 14:01:36,067 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:36,067 INFO sqlalchemy.engine.Engine [cached since 10.44s ago] ()
2026-03-01 14:01:36,067 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:36,067 INFO sqlalchemy.engine.Engine [cached since 10.44s ago] ()
2026-03-01 14:01:36,067 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:36,067 INFO sqlalchemy.engine.Engine [cached since 10.44s ago] ()
2026-03-01 14:01:36,068 INFO sqlalchemy.engine.Engine
SELECT t.*,
d.name as domain_name, d.color as domain_color,
p.name as project_name
FROM tasks t
LEFT JOIN domains d ON t.domain_id = d.id
LEFT JOIN projects p ON t.project_id = p.id
WHERE t.is_deleted = false
ORDER BY
CASE WHEN t.status = 'done' THEN 1 WHEN t.status = 'cancelled' THEN 2 ELSE 0 END,
t.sort_order, t.created_at
2026-03-01 14:01:36,068 INFO sqlalchemy.engine.Engine [cached since 8.826s ago] ()
2026-03-01 14:01:36,075 INFO sqlalchemy.engine.Engine
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
2026-03-01 14:01:36,075 INFO sqlalchemy.engine.Engine [cached since 10.37s ago] (50, 0)
2026-03-01 14:01:36,076 INFO sqlalchemy.engine.Engine
SELECT * FROM projects
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
2026-03-01 14:01:36,076 INFO sqlalchemy.engine.Engine [cached since 8.829s ago] (50, 0)
2026-03-01 14:01:36,077 INFO sqlalchemy.engine.Engine SELECT value, label FROM context_types WHERE is_deleted = false ORDER BY sort_order
2026-03-01 14:01:36,077 INFO sqlalchemy.engine.Engine [cached since 8.829s ago] ()
2026-03-01 14:01:36,079 INFO sqlalchemy.engine.Engine SELECT task_id FROM time_entries WHERE end_at IS NULL AND is_deleted = false LIMIT 1
2026-03-01 14:01:36,079 INFO sqlalchemy.engine.Engine [cached since 8.83s ago] ()
2026-03-01 14:01:36,081 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.43s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.43s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.43s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.43s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.43s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM tasks WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00014s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.45s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.45s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.44s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.44s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.44s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT t.*,
d.name as domain_name, d.color as domain_color,
p.name as project_name
FROM tasks t
LEFT JOIN domains d ON t.domain_id = d.id
LEFT JOIN projects p ON t.project_id = p.id
WHERE t.is_deleted = false
ORDER BY
CASE WHEN t.status = 'done' THEN 1 WHEN t.status = 'cancelled' THEN 2 ELSE 0 END,
t.sort_order, t.created_at
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 8.826s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 10.37s ago] (50, 0)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT * FROM projects
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 8.829s ago] (50, 0)
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT value, label FROM context_types WHERE is_deleted = false ORDER BY sort_order
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 8.829s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT task_id FROM time_entries WHERE end_at IS NULL AND is_deleted = false LIMIT 1
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 8.83s ago] ()
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
_________ test_get_with_fake_id_returns_404[404 /tasks/{task_id}/edit] _________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/tasks.py", line 236, in edit_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/tasks.py", line 236, in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/tasks.py:236: in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c3ae3e30>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
___________ test_get_with_fake_id_returns_404[404 /notes/{note_id}] ____________
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /notes/00000000-0000-0000-0000-000000000000 returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:36,699 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:36,699 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:36,699 INFO sqlalchemy.engine.Engine [cached since 11.09s ago] ()
2026-03-01 14:01:36,706 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:36,707 INFO sqlalchemy.engine.Engine [cached since 11.09s ago] ()
2026-03-01 14:01:36,709 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:36,709 INFO sqlalchemy.engine.Engine [cached since 11.09s ago] ()
2026-03-01 14:01:36,713 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:36,714 INFO sqlalchemy.engine.Engine [cached since 11.09s ago] ()
2026-03-01 14:01:36,716 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:36,717 INFO sqlalchemy.engine.Engine [cached since 11.09s ago] ()
2026-03-01 14:01:36,719 INFO sqlalchemy.engine.Engine SELECT * FROM notes WHERE id = $1
2026-03-01 14:01:36,719 INFO sqlalchemy.engine.Engine [generated in 0.00011s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:36,722 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:36,725 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:36,725 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:36,725 INFO sqlalchemy.engine.Engine [cached since 11.11s ago] ()
2026-03-01 14:01:36,726 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:36,726 INFO sqlalchemy.engine.Engine [cached since 11.11s ago] ()
2026-03-01 14:01:36,726 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:36,727 INFO sqlalchemy.engine.Engine [cached since 11.1s ago] ()
2026-03-01 14:01:36,727 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:36,727 INFO sqlalchemy.engine.Engine [cached since 11.1s ago] ()
2026-03-01 14:01:36,727 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:36,727 INFO sqlalchemy.engine.Engine [cached since 11.1s ago] ()
2026-03-01 14:01:36,728 INFO sqlalchemy.engine.Engine
SELECT n.*, d.name as domain_name, d.color as domain_color,
p.name as project_name
FROM notes n
LEFT JOIN domains d ON n.domain_id = d.id
LEFT JOIN projects p ON n.project_id = p.id
WHERE n.is_deleted = false
ORDER BY n.updated_at DESC
2026-03-01 14:01:36,728 INFO sqlalchemy.engine.Engine [cached since 9.044s ago] ()
2026-03-01 14:01:36,735 INFO sqlalchemy.engine.Engine
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
2026-03-01 14:01:36,735 INFO sqlalchemy.engine.Engine [cached since 11.03s ago] (50, 0)
2026-03-01 14:01:36,736 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.09s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.09s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.09s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.09s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.09s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM notes WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00011s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.11s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.11s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.1s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.1s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.1s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT n.*, d.name as domain_name, d.color as domain_color,
p.name as project_name
FROM notes n
LEFT JOIN domains d ON n.domain_id = d.id
LEFT JOIN projects p ON n.project_id = p.id
WHERE n.is_deleted = false
ORDER BY n.updated_at DESC
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.044s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.03s ago] (50, 0)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
_________ test_get_with_fake_id_returns_404[404 /notes/{note_id}/edit] _________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/notes.py", line 135, in edit_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/notes.py", line 135, in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/notes.py:135: in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c3810320>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_________ test_get_with_fake_id_returns_404[404 /links/{link_id}/edit] _________
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /links/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:37,238 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:37,238 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:37,239 INFO sqlalchemy.engine.Engine [cached since 11.63s ago] ()
2026-03-01 14:01:37,246 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:37,246 INFO sqlalchemy.engine.Engine [cached since 11.63s ago] ()
2026-03-01 14:01:37,249 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:37,249 INFO sqlalchemy.engine.Engine [cached since 11.63s ago] ()
2026-03-01 14:01:37,253 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:37,253 INFO sqlalchemy.engine.Engine [cached since 11.63s ago] ()
2026-03-01 14:01:37,256 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:37,256 INFO sqlalchemy.engine.Engine [cached since 11.63s ago] ()
2026-03-01 14:01:37,259 INFO sqlalchemy.engine.Engine SELECT * FROM links WHERE id = $1
2026-03-01 14:01:37,259 INFO sqlalchemy.engine.Engine [generated in 0.00021s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:37,263 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:37,268 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:37,268 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:37,268 INFO sqlalchemy.engine.Engine [cached since 11.65s ago] ()
2026-03-01 14:01:37,269 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:37,269 INFO sqlalchemy.engine.Engine [cached since 11.65s ago] ()
2026-03-01 14:01:37,270 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:37,270 INFO sqlalchemy.engine.Engine [cached since 11.65s ago] ()
2026-03-01 14:01:37,271 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:37,271 INFO sqlalchemy.engine.Engine [cached since 11.64s ago] ()
2026-03-01 14:01:37,272 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:37,272 INFO sqlalchemy.engine.Engine [cached since 11.64s ago] ()
2026-03-01 14:01:37,273 INFO sqlalchemy.engine.Engine
SELECT l.*, d.name as domain_name, d.color as domain_color, p.name as project_name
FROM links l
LEFT JOIN domains d ON l.domain_id = d.id
LEFT JOIN projects p ON l.project_id = p.id
WHERE l.is_deleted = false ORDER BY l.sort_order, l.created_at
2026-03-01 14:01:37,273 INFO sqlalchemy.engine.Engine [cached since 9.14s ago] ()
2026-03-01 14:01:37,279 INFO sqlalchemy.engine.Engine
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
2026-03-01 14:01:37,279 INFO sqlalchemy.engine.Engine [cached since 11.57s ago] (50, 0)
2026-03-01 14:01:37,281 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.63s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.63s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.63s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.63s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.63s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM links WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00021s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.65s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.65s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.65s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.64s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.64s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT l.*, d.name as domain_name, d.color as domain_color, p.name as project_name
FROM links l
LEFT JOIN domains d ON l.domain_id = d.id
LEFT JOIN projects p ON l.project_id = p.id
WHERE l.is_deleted = false ORDER BY l.sort_order, l.created_at
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 9.14s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.57s ago] (50, 0)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
________ test_get_with_fake_id_returns_404[404 /contacts/{contact_id}] _________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/contacts.py", line 70, in contact_detail
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/contacts.py", line 70, in contact_detail
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/contacts.py:70: in contact_detail
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c2f93c50>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
______ test_get_with_fake_id_returns_404[404 /contacts/{contact_id}/edit] ______
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /contacts/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:37,760 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:37,760 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:37,760 INFO sqlalchemy.engine.Engine [cached since 12.15s ago] ()
2026-03-01 14:01:37,768 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:37,768 INFO sqlalchemy.engine.Engine [cached since 12.15s ago] ()
2026-03-01 14:01:37,771 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:37,771 INFO sqlalchemy.engine.Engine [cached since 12.15s ago] ()
2026-03-01 14:01:37,775 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:37,775 INFO sqlalchemy.engine.Engine [cached since 12.15s ago] ()
2026-03-01 14:01:37,778 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:37,778 INFO sqlalchemy.engine.Engine [cached since 12.15s ago] ()
2026-03-01 14:01:37,781 INFO sqlalchemy.engine.Engine SELECT * FROM contacts WHERE id = $1
2026-03-01 14:01:37,782 INFO sqlalchemy.engine.Engine [generated in 0.00022s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:37,786 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:37,791 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:37,791 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:37,791 INFO sqlalchemy.engine.Engine [cached since 12.18s ago] ()
2026-03-01 14:01:37,792 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:37,792 INFO sqlalchemy.engine.Engine [cached since 12.17s ago] ()
2026-03-01 14:01:37,793 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:37,793 INFO sqlalchemy.engine.Engine [cached since 12.17s ago] ()
2026-03-01 14:01:37,794 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:37,794 INFO sqlalchemy.engine.Engine [cached since 12.17s ago] ()
2026-03-01 14:01:37,795 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:37,795 INFO sqlalchemy.engine.Engine [cached since 12.17s ago] ()
2026-03-01 14:01:37,797 INFO sqlalchemy.engine.Engine
SELECT * FROM contacts WHERE is_deleted = false
ORDER BY sort_order, first_name, last_name
2026-03-01 14:01:37,798 INFO sqlalchemy.engine.Engine [cached since 8.273s ago] ()
2026-03-01 14:01:37,800 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.15s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.15s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.15s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.15s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.15s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM contacts WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00022s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.18s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.17s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.17s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.17s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.17s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT * FROM contacts WHERE is_deleted = false
ORDER BY sort_order, first_name, last_name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 8.273s ago] ()
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
___________ test_get_with_fake_id_returns_404[404 /lists/{list_id}] ____________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/lists.py", line 125, in list_detail
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/lists.py", line 125, in list_detail
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/lists.py:125: in list_detail
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c80d7110>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_________ test_get_with_fake_id_returns_404[404 /lists/{list_id}/edit] _________
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /lists/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:38,267 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:38,267 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:38,267 INFO sqlalchemy.engine.Engine [cached since 12.65s ago] ()
2026-03-01 14:01:38,273 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:38,273 INFO sqlalchemy.engine.Engine [cached since 12.65s ago] ()
2026-03-01 14:01:38,276 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:38,276 INFO sqlalchemy.engine.Engine [cached since 12.65s ago] ()
2026-03-01 14:01:38,279 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:38,279 INFO sqlalchemy.engine.Engine [cached since 12.65s ago] ()
2026-03-01 14:01:38,282 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:38,283 INFO sqlalchemy.engine.Engine [cached since 12.65s ago] ()
2026-03-01 14:01:38,285 INFO sqlalchemy.engine.Engine SELECT * FROM lists WHERE id = $1
2026-03-01 14:01:38,286 INFO sqlalchemy.engine.Engine [generated in 0.00010s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:38,288 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:38,291 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:38,291 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:38,291 INFO sqlalchemy.engine.Engine [cached since 12.68s ago] ()
2026-03-01 14:01:38,292 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:38,292 INFO sqlalchemy.engine.Engine [cached since 12.67s ago] ()
2026-03-01 14:01:38,292 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:38,292 INFO sqlalchemy.engine.Engine [cached since 12.67s ago] ()
2026-03-01 14:01:38,293 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:38,293 INFO sqlalchemy.engine.Engine [cached since 12.67s ago] ()
2026-03-01 14:01:38,293 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:38,293 INFO sqlalchemy.engine.Engine [cached since 12.66s ago] ()
2026-03-01 14:01:38,294 INFO sqlalchemy.engine.Engine
SELECT l.*,
d.name as domain_name, d.color as domain_color,
p.name as project_name,
(SELECT count(*) FROM list_items li WHERE li.list_id = l.id AND li.is_deleted = false) as item_count,
(SELECT count(*) FROM list_items li WHERE li.list_id = l.id AND li.is_deleted = false AND li.completed = true) as completed_count
FROM lists l
LEFT JOIN domains d ON l.domain_id = d.id
LEFT JOIN projects p ON l.project_id = p.id
WHERE l.is_deleted = false
ORDER BY l.sort_order, l.created_at DESC
2026-03-01 14:01:38,294 INFO sqlalchemy.engine.Engine [generated in 0.00007s] ()
2026-03-01 14:01:38,297 INFO sqlalchemy.engine.Engine
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
2026-03-01 14:01:38,297 INFO sqlalchemy.engine.Engine [cached since 12.59s ago] (50, 0)
2026-03-01 14:01:38,298 INFO sqlalchemy.engine.Engine
SELECT * FROM projects
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
2026-03-01 14:01:38,298 INFO sqlalchemy.engine.Engine [cached since 11.05s ago] (50, 0)
2026-03-01 14:01:38,304 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.65s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.65s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.65s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.65s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.65s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM lists WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00010s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.68s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.67s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.67s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.67s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.66s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT l.*,
d.name as domain_name, d.color as domain_color,
p.name as project_name,
(SELECT count(*) FROM list_items li WHERE li.list_id = l.id AND li.is_deleted = false) as item_count,
(SELECT count(*) FROM list_items li WHERE li.list_id = l.id AND li.is_deleted = false AND li.completed = true) as completed_count
FROM lists l
LEFT JOIN domains d ON l.domain_id = d.id
LEFT JOIN projects p ON l.project_id = p.id
WHERE l.is_deleted = false
ORDER BY l.sort_order, l.created_at DESC
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00007s] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT * FROM domains
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 12.59s ago] (50, 0)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT * FROM projects
WHERE is_deleted = false
ORDER BY sort_order ASC
LIMIT $1 OFFSET $2
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 11.05s ago] (50, 0)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
_______ test_get_with_fake_id_returns_404[404 /files/{file_id}/download] _______
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/files.py", line 145, in download_file
| item = await repo.get(file_id)
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/base_repository.py", line 91, in get
| result = await self.db.execute(query, {"id": str(id)})
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/files.py", line 145, in download_file
item = await repo.get(file_id)
^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/base_repository.py", line 91, in get
result = await self.db.execute(query, {"id": str(id)})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/files.py:145: in download_file
item = await repo.get(file_id)
^^^^^^^^^^^^^^^^^^^^^^^
core/base_repository.py:91: in get
result = await self.db.execute(query, {"id": str(id)})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c2b394f0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_______ test_get_with_fake_id_returns_404[404 /files/{file_id}/preview] ________
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /files/00000000-0000-0000-0000-000000000000/preview returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:38,727 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:38,727 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:38,727 INFO sqlalchemy.engine.Engine [cached since 13.11s ago] ()
2026-03-01 14:01:38,734 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:38,734 INFO sqlalchemy.engine.Engine [cached since 13.11s ago] ()
2026-03-01 14:01:38,736 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:38,736 INFO sqlalchemy.engine.Engine [cached since 13.11s ago] ()
2026-03-01 14:01:38,740 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:38,740 INFO sqlalchemy.engine.Engine [cached since 13.11s ago] ()
2026-03-01 14:01:38,742 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:38,743 INFO sqlalchemy.engine.Engine [cached since 13.11s ago] ()
2026-03-01 14:01:38,745 INFO sqlalchemy.engine.Engine SELECT * FROM files WHERE id = $1
2026-03-01 14:01:38,745 INFO sqlalchemy.engine.Engine [generated in 0.00010s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:38,747 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:38,750 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:38,751 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:38,751 INFO sqlalchemy.engine.Engine [cached since 13.14s ago] ()
2026-03-01 14:01:38,751 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:38,751 INFO sqlalchemy.engine.Engine [cached since 13.13s ago] ()
2026-03-01 14:01:38,752 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:38,752 INFO sqlalchemy.engine.Engine [cached since 13.13s ago] ()
2026-03-01 14:01:38,752 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:38,752 INFO sqlalchemy.engine.Engine [cached since 13.13s ago] ()
2026-03-01 14:01:38,753 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:38,753 INFO sqlalchemy.engine.Engine [cached since 13.12s ago] ()
2026-03-01 14:01:38,753 INFO sqlalchemy.engine.Engine
SELECT f.* FROM files f
WHERE f.is_deleted = false
ORDER BY f.created_at DESC
LIMIT 100
2026-03-01 14:01:38,753 INFO sqlalchemy.engine.Engine [generated in 0.00007s] ()
2026-03-01 14:01:38,759 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.11s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.11s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.11s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.11s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.11s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM files WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00010s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.14s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.13s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.13s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.13s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.12s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT f.* FROM files f
WHERE f.is_deleted = false
ORDER BY f.created_at DESC
LIMIT 100
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00007s] ()
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
________ test_get_with_fake_id_returns_404[404 /files/{file_id}/serve] _________
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/files.py", line 178, in serve_file
| item = await repo.get(file_id)
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/base_repository.py", line 91, in get
| result = await self.db.execute(query, {"id": str(id)})
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/files.py", line 178, in serve_file
item = await repo.get(file_id)
^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/base_repository.py", line 91, in get
result = await self.db.execute(query, {"id": str(id)})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/files.py:178: in serve_file
item = await repo.get(file_id)
^^^^^^^^^^^^^^^^^^^^^^^
core/base_repository.py:91: in get
result = await self.db.execute(query, {"id": str(id)})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c3a6cc80>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
________ test_get_with_fake_id_returns_404[404 /meetings/{meeting_id}] _________
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /meetings/00000000-0000-0000-0000-000000000000 returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:39,332 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:39,332 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:39,332 INFO sqlalchemy.engine.Engine [cached since 13.72s ago] ()
2026-03-01 14:01:39,339 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:39,339 INFO sqlalchemy.engine.Engine [cached since 13.72s ago] ()
2026-03-01 14:01:39,342 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:39,342 INFO sqlalchemy.engine.Engine [cached since 13.72s ago] ()
2026-03-01 14:01:39,345 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:39,345 INFO sqlalchemy.engine.Engine [cached since 13.72s ago] ()
2026-03-01 14:01:39,349 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:39,349 INFO sqlalchemy.engine.Engine [cached since 13.72s ago] ()
2026-03-01 14:01:39,351 INFO sqlalchemy.engine.Engine SELECT * FROM meetings WHERE id = $1
2026-03-01 14:01:39,351 INFO sqlalchemy.engine.Engine [generated in 0.00011s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:39,355 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:39,358 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:39,358 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:39,358 INFO sqlalchemy.engine.Engine [cached since 13.74s ago] ()
2026-03-01 14:01:39,358 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:39,359 INFO sqlalchemy.engine.Engine [cached since 13.74s ago] ()
2026-03-01 14:01:39,359 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:39,359 INFO sqlalchemy.engine.Engine [cached since 13.74s ago] ()
2026-03-01 14:01:39,359 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:39,360 INFO sqlalchemy.engine.Engine [cached since 13.73s ago] ()
2026-03-01 14:01:39,360 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:39,360 INFO sqlalchemy.engine.Engine [cached since 13.73s ago] ()
2026-03-01 14:01:39,360 INFO sqlalchemy.engine.Engine
SELECT m.*,
(SELECT count(*) FROM meeting_tasks mt
JOIN tasks t ON mt.task_id = t.id
WHERE mt.meeting_id = m.id AND t.is_deleted = false) as action_count
FROM meetings m
WHERE m.is_deleted = false
ORDER BY m.meeting_date DESC, m.start_at DESC NULLS LAST
2026-03-01 14:01:39,360 INFO sqlalchemy.engine.Engine [generated in 0.00008s] ()
2026-03-01 14:01:39,375 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.72s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.72s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.72s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.72s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.72s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM meetings WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00011s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.74s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.74s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.74s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.73s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 13.73s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT m.*,
(SELECT count(*) FROM meeting_tasks mt
JOIN tasks t ON mt.task_id = t.id
WHERE mt.meeting_id = m.id AND t.is_deleted = false) as action_count
FROM meetings m
WHERE m.is_deleted = false
ORDER BY m.meeting_date DESC, m.start_at DESC NULLS LAST
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00008s] ()
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
______ test_get_with_fake_id_returns_404[404 /meetings/{meeting_id}/edit] ______
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/meetings.py", line 172, in edit_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/meetings.py", line 172, in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/meetings.py:172: in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c2ffba70>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
_______ test_get_with_fake_id_returns_404[404 /decisions/{decision_id}] ________
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /decisions/00000000-0000-0000-0000-000000000000 returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:39,816 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:39,816 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:39,816 INFO sqlalchemy.engine.Engine [cached since 14.2s ago] ()
2026-03-01 14:01:39,823 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:39,823 INFO sqlalchemy.engine.Engine [cached since 14.2s ago] ()
2026-03-01 14:01:39,826 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:39,826 INFO sqlalchemy.engine.Engine [cached since 14.2s ago] ()
2026-03-01 14:01:39,829 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:39,830 INFO sqlalchemy.engine.Engine [cached since 14.2s ago] ()
2026-03-01 14:01:39,832 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:39,832 INFO sqlalchemy.engine.Engine [cached since 14.2s ago] ()
2026-03-01 14:01:39,835 INFO sqlalchemy.engine.Engine SELECT * FROM decisions WHERE id = $1
2026-03-01 14:01:39,835 INFO sqlalchemy.engine.Engine [generated in 0.00011s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:39,837 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:39,841 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:39,841 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:39,841 INFO sqlalchemy.engine.Engine [cached since 14.23s ago] ()
2026-03-01 14:01:39,842 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:39,842 INFO sqlalchemy.engine.Engine [cached since 14.22s ago] ()
2026-03-01 14:01:39,843 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:39,843 INFO sqlalchemy.engine.Engine [cached since 14.22s ago] ()
2026-03-01 14:01:39,843 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:39,843 INFO sqlalchemy.engine.Engine [cached since 14.22s ago] ()
2026-03-01 14:01:39,843 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:39,843 INFO sqlalchemy.engine.Engine [cached since 14.21s ago] ()
2026-03-01 14:01:39,844 INFO sqlalchemy.engine.Engine
SELECT d.*, m.title as meeting_title
FROM decisions d
LEFT JOIN meetings m ON d.meeting_id = m.id
WHERE d.is_deleted = false
ORDER BY d.created_at DESC
2026-03-01 14:01:39,844 INFO sqlalchemy.engine.Engine [generated in 0.00010s] ()
2026-03-01 14:01:39,855 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.2s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.2s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.2s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.2s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.2s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM decisions WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00011s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.23s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.22s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.22s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.22s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.21s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT d.*, m.title as meeting_title
FROM decisions d
LEFT JOIN meetings m ON d.meeting_id = m.id
WHERE d.is_deleted = false
ORDER BY d.created_at DESC
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00010s] ()
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
_____ test_get_with_fake_id_returns_404[404 /decisions/{decision_id}/edit] _____
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/decisions.py", line 150, in edit_form
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/decisions.py", line 150, in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/decisions.py:150: in edit_form
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c302e030>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
______ test_get_with_fake_id_returns_404[404 /weblinks/{weblink_id}/edit] ______
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /weblinks/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:40,324 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:40,324 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:40,324 INFO sqlalchemy.engine.Engine [cached since 14.71s ago] ()
2026-03-01 14:01:40,331 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:40,331 INFO sqlalchemy.engine.Engine [cached since 14.71s ago] ()
2026-03-01 14:01:40,333 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:40,333 INFO sqlalchemy.engine.Engine [cached since 14.71s ago] ()
2026-03-01 14:01:40,337 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:40,337 INFO sqlalchemy.engine.Engine [cached since 14.71s ago] ()
2026-03-01 14:01:40,340 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:40,340 INFO sqlalchemy.engine.Engine [cached since 14.71s ago] ()
2026-03-01 14:01:40,343 INFO sqlalchemy.engine.Engine SELECT * FROM weblinks WHERE id = $1
2026-03-01 14:01:40,343 INFO sqlalchemy.engine.Engine [generated in 0.00013s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:40,345 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:40,348 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:40,348 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:40,348 INFO sqlalchemy.engine.Engine [cached since 14.74s ago] ()
2026-03-01 14:01:40,349 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:40,349 INFO sqlalchemy.engine.Engine [cached since 14.73s ago] ()
2026-03-01 14:01:40,349 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:40,350 INFO sqlalchemy.engine.Engine [cached since 14.73s ago] ()
2026-03-01 14:01:40,350 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:40,350 INFO sqlalchemy.engine.Engine [cached since 14.72s ago] ()
2026-03-01 14:01:40,350 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:40,350 INFO sqlalchemy.engine.Engine [cached since 14.72s ago] ()
2026-03-01 14:01:40,351 INFO sqlalchemy.engine.Engine
SELECT wf.*, (SELECT count(*) FROM folder_weblinks fw WHERE fw.folder_id = wf.id) as link_count
FROM weblink_folders wf
WHERE wf.is_deleted = false
ORDER BY wf.sort_order, wf.name
2026-03-01 14:01:40,351 INFO sqlalchemy.engine.Engine [generated in 0.00008s] ()
2026-03-01 14:01:40,354 INFO sqlalchemy.engine.Engine
SELECT w.* FROM weblinks w
WHERE w.is_deleted = false
ORDER BY w.sort_order, w.label
2026-03-01 14:01:40,354 INFO sqlalchemy.engine.Engine [generated in 0.00008s] ()
2026-03-01 14:01:40,361 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.71s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.71s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.71s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.71s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.71s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM weblinks WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00013s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.74s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.73s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.73s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.72s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 14.72s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT wf.*, (SELECT count(*) FROM folder_weblinks fw WHERE fw.folder_id = wf.id) as link_count
FROM weblink_folders wf
WHERE wf.is_deleted = false
ORDER BY wf.sort_order, wf.name
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00008s] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT w.* FROM weblinks w
WHERE w.is_deleted = false
ORDER BY w.sort_order, w.label
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00008s] ()
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
____ test_get_with_fake_id_returns_404[404 /appointments/{appointment_id}] _____
+ Exception Group Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 186, in __call__
| async with anyio.create_task_group() as task_group:
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 783, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 353, in from_call
| result: TResult | None = func()
| ^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 245, in <lambda>
| lambda: runtest_hook(item=item, **kwds),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
| yield
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/capture.py", line 900, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/_pytest/skipping.py", line 268, in pytest_runtest_call
| return (yield)
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/runner.py", line 179, in pytest_runtest_call
| item.runtest()
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 469, in runtest
| super().runtest()
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 1720, in runtest
| self.ihook.pytest_pyfunc_call(pyfuncitem=self)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_hooks.py", line 512, in __call__
| return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
| return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
| raise exception
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
| teardown.throw(exception)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 53, in run_old_style_hookwrapper
| return result.get_result()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_result.py", line 103, in get_result
| raise exc.with_traceback(tb)
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper
| res = yield
| ^^^^^
| File "/usr/local/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall
| res = hook_impl.function(*args)
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/_pytest/python.py", line 166, in pytest_pyfunc_call
| result = testfunction(**testargs)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/pytest_asyncio/plugin.py", line 716, in inner
| runner.run(coro, context=context)
| File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
| return self._loop.run_until_complete(task)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
| return future.result()
| ^^^^^^^^^^^^^^^
| File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
| r = await client.get(path, follow_redirects=True)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
| return await self.request(
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
| return await self.send(request, auth=auth, follow_redirects=follow_redirects)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
| response = await self._send_handling_auth(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
| response = await self._send_handling_redirects(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
| response = await self._send_single_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
| response = await transport.handle_async_request(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
| with collapse_excgroups():
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
| self.gen.throw(value)
| File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/main.py", line 79, in add_request_context
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
| raise app_exc
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/routers/appointments.py", line 170, in appointment_detail
| sidebar = await get_sidebar_data(db)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/app/core/sidebar.py", line 14, in get_sidebar_data
| result = await db.execute(text("""
| ^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
| result = await greenlet_spawn(
| ^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
| result = context.throw(*sys.exc_info())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
| return self._execute_internal(
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
| conn = self._connection_for_bind(bind)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
| return trans._connection_for_bind(engine, execution_options)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "<string>", line 2, in _connection_for_bind
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
| ret_value = fn(self, *arg, **kw)
| ^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
| conn = bind.connect()
| ^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
| return self._connection_cls(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
| self._dbapi_connection = engine.raw_connection()
| ^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
| return self.pool.connect()
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
| return _ConnectionFairy._checkout(self)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
| with util.safe_reraise():
| ^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
| raise exc_value.with_traceback(exc_tb)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
| result = pool._dialect._do_ping_w_event(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
| return self.do_ping(dbapi_connection)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
| dbapi_connection.ping()
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
| self._handle_exception(error)
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
| raise error
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
| _ = self.await_(self._async_ping())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
| return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
| value = await result
| ^^^^^^^^^^^^
| File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
| await tr.start()
| File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
| await self._connection.execute(query)
| File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
| result = await self._protocol.query(query, timeout)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "asyncpg/protocol/protocol.pyx", line 375, in query
| RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/tests/test_smoke_dynamic.py", line 74, in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1768, in get
return await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1540, in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1629, in send
response = await self._send_handling_auth(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1657, in _send_handling_auth
response = await self._send_handling_redirects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1694, in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_client.py", line 1730, in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py", line 170, in handle_async_request
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 113, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 185, in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/contextlib.py", line 158, in __exit__
self.gen.throw(value)
File "/usr/local/lib/python3.12/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 187, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/main.py", line 79, in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 163, in call_next
raise app_exc
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/routers/appointments.py", line 170, in appointment_detail
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/core/sidebar.py", line 14, in get_sidebar_data
result = await db.execute(text("""
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py", line 461, in execute
result = await greenlet_spawn(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2237, in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2106, in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 2, in _connection_for_bind
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 1189, in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3278, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3302, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1362, in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1300, in _checkout
result = pool._dialect._do_ping_w_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 716, in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1150, in do_ping
dbapi_connection.ping()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 801, in ping
self._handle_exception(error)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 782, in _handle_exception
raise error
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 808, in _async_ping
await tr.start()
File "/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py", line 146, in start
await self._connection.execute(query)
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 349, in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "asyncpg/protocol/protocol.pyx", line 375, in query
RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
During handling of the above exception, another exception occurred:
tests/test_smoke_dynamic.py:74: in test_get_with_fake_id_returns_404
r = await client.get(path, follow_redirects=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1768: in get
return await self.request(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1540: in request
return await self.send(request, auth=auth, follow_redirects=follow_redirects)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1629: in send
response = await self._send_handling_auth(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1657: in _send_handling_auth
response = await self._send_handling_redirects(
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1694: in _send_handling_redirects
response = await self._send_single_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_client.py:1730: in _send_single_request
response = await transport.handle_async_request(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/httpx/_transports/asgi.py:170: in handle_async_request
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/fastapi/applications.py:1054: in __call__
await super().__call__(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/applications.py:113: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:187: in __call__
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py:165: in __call__
await self.app(scope, receive, _send)
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:185: in __call__
with collapse_excgroups():
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/contextlib.py:158: in __exit__
self.gen.throw(value)
/usr/local/lib/python3.12/site-packages/starlette/_utils.py:82: in collapse_excgroups
raise exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:187: in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main.py:79: in add_request_context
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:163: in call_next
raise app_exc
/usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149: in coro
await self.app(scope, receive_or_disconnect, send_no_error)
/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py:62: in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:715: in __call__
await self.middleware_stack(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:735: in app
await route.handle(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:288: in handle
await self.app(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:76: in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app
raise exc
/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app
await app(scope, receive, sender)
/usr/local/lib/python3.12/site-packages/starlette/routing.py:73: in app
response = await f(request)
^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:301: in app
raw_response = await run_endpoint_function(
/usr/local/lib/python3.12/site-packages/fastapi/routing.py:212: in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
routers/appointments.py:170: in appointment_detail
sidebar = await get_sidebar_data(db)
^^^^^^^^^^^^^^^^^^^^^^^^^^
core/sidebar.py:14: in get_sidebar_data
result = await db.execute(text("""
/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/session.py:461: in execute
result = await greenlet_spawn(
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:201: in greenlet_spawn
result = context.throw(*sys.exc_info())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2362: in execute
return self._execute_internal(
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2237: in _execute_internal
conn = self._connection_for_bind(bind)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:2106: in _connection_for_bind
return trans._connection_for_bind(engine, execution_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
<string>:2: in _connection_for_bind
???
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py:1189: in _connection_for_bind
conn = bind.connect()
^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3278: in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:146: in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py:3302: in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:449: in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1362: in _checkout
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
raise exc_value.with_traceback(exc_tb)
/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py:1300: in _checkout
result = pool._dialect._do_ping_w_event(
/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py:716: in _do_ping_w_event
return self.do_ping(dbapi_connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:1150: in do_ping
dbapi_connection.ping()
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:801: in ping
self._handle_exception(error)
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:782: in _handle_exception
raise error
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:799: in ping
_ = self.await_(self._async_ping())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py:196: in greenlet_spawn
value = await result
^^^^^^^^^^^^
/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py:808: in _async_ping
await tr.start()
/usr/local/lib/python3.12/site-packages/asyncpg/transaction.py:146: in start
await self._connection.execute(query)
/usr/local/lib/python3.12/site-packages/asyncpg/connection.py:349: in execute
result = await self._protocol.query(query, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncpg/protocol/protocol.pyx:375: in query
???
E RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
------------------------------ Captured log call -------------------------------
ERROR sqlalchemy.pool.impl.AsyncAdaptedQueuePool:base.py:378 Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x7018c3a6e8a0>>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 1117, in do_terminate
dbapi_connection.terminate()
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 895, in terminate
self.await_(self._connection.close(timeout=2))
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1504, in close
await self._protocol.close(timeout)
File "asyncpg/protocol/protocol.pyx", line 627, in close
File "asyncpg/protocol/protocol.pyx", line 660, in asyncpg.protocol.protocol.BaseProtocol._request_cancel
File "/usr/local/lib/python3.12/site-packages/asyncpg/connection.py", line 1673, in _cancel_current_command
self._cancellations.add(self._loop.create_task(self._cancel(waiter)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 455, in create_task
self._check_closed()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 545, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
__ test_get_with_fake_id_returns_404[404 /appointments/{appointment_id}/edit] __
tests/test_smoke_dynamic.py:75: in test_get_with_fake_id_returns_404
assert r.status_code in (404, 302, 303), \
E AssertionError: GET /appointments/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
E assert 200 in (404, 302, 303)
E + where 200 = <Response [200 OK]>.status_code
----------------------------- Captured stdout call -----------------------------
2026-03-01 14:01:40,818 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:40,818 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:40,818 INFO sqlalchemy.engine.Engine [cached since 15.2s ago] ()
2026-03-01 14:01:40,825 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:40,825 INFO sqlalchemy.engine.Engine [cached since 15.2s ago] ()
2026-03-01 14:01:40,827 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:40,827 INFO sqlalchemy.engine.Engine [cached since 15.2s ago] ()
2026-03-01 14:01:40,831 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:40,831 INFO sqlalchemy.engine.Engine [cached since 15.2s ago] ()
2026-03-01 14:01:40,834 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:40,834 INFO sqlalchemy.engine.Engine [cached since 15.2s ago] ()
2026-03-01 14:01:40,836 INFO sqlalchemy.engine.Engine SELECT * FROM appointments WHERE id = $1
2026-03-01 14:01:40,836 INFO sqlalchemy.engine.Engine [generated in 0.00011s] ('00000000-0000-0000-0000-000000000000',)
2026-03-01 14:01:40,839 INFO sqlalchemy.engine.Engine COMMIT
2026-03-01 14:01:40,842 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2026-03-01 14:01:40,842 INFO sqlalchemy.engine.Engine
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:40,842 INFO sqlalchemy.engine.Engine [cached since 15.23s ago] ()
2026-03-01 14:01:40,843 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
2026-03-01 14:01:40,843 INFO sqlalchemy.engine.Engine [cached since 15.22s ago] ()
2026-03-01 14:01:40,843 INFO sqlalchemy.engine.Engine
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
2026-03-01 14:01:40,843 INFO sqlalchemy.engine.Engine [cached since 15.22s ago] ()
2026-03-01 14:01:40,844 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
2026-03-01 14:01:40,844 INFO sqlalchemy.engine.Engine [cached since 15.22s ago] ()
2026-03-01 14:01:40,844 INFO sqlalchemy.engine.Engine
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
2026-03-01 14:01:40,844 INFO sqlalchemy.engine.Engine [cached since 15.22s ago] ()
2026-03-01 14:01:40,845 INFO sqlalchemy.engine.Engine
SELECT * FROM appointments
WHERE is_deleted = false AND start_at >= CURRENT_DATE
ORDER BY start_at ASC
LIMIT 100
2026-03-01 14:01:40,845 INFO sqlalchemy.engine.Engine [cached since 7.18s ago] ()
2026-03-01 14:01:40,848 INFO sqlalchemy.engine.Engine COMMIT
------------------------------ Captured log call -------------------------------
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 15.2s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 15.2s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 15.2s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 15.2s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 15.2s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846 SELECT * FROM appointments WHERE id = $1
INFO sqlalchemy.engine.Engine:base.py:1846 [generated in 0.00011s] ('00000000-0000-0000-0000-000000000000',)
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
INFO sqlalchemy.engine.Engine:base.py:2701 BEGIN (implicit)
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, name, color FROM domains
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 15.23s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, name FROM areas
WHERE is_deleted = false ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 15.22s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT id, domain_id, area_id, name, status FROM projects
WHERE is_deleted = false AND status != 'archived'
ORDER BY sort_order, name
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 15.22s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM capture WHERE is_deleted = false AND processed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 15.22s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT count(*) FROM daily_focus
WHERE is_deleted = false AND focus_date = CURRENT_DATE AND completed = false
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 15.22s ago] ()
INFO sqlalchemy.engine.Engine:base.py:1846
SELECT * FROM appointments
WHERE is_deleted = false AND start_at >= CURRENT_DATE
ORDER BY start_at ASC
LIMIT 100
INFO sqlalchemy.engine.Engine:base.py:1846 [cached since 7.18s ago] ()
INFO sqlalchemy.engine.Engine:base.py:2707 COMMIT
=============================== warnings summary ===============================
tests/test_smoke_dynamic.py: 28 warnings
/usr/local/lib/python3.12/site-packages/starlette/templating.py:161: DeprecationWarning: The `name` is not the first parameter anymore. The first parameter should be the `Request` instance.
Replace `TemplateResponse(name, {"request": request})` by `TemplateResponse(request, name)`.
warnings.warn(
tests/test_smoke_dynamic.py: 29 warnings
/usr/local/lib/python3.12/site-packages/_pytest/stash.py:108: RuntimeWarning: coroutine 'Connection._cancel' was never awaited
del self._storage[key]
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /domains/create] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /areas/create] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /projects/create] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /tasks/create] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /notes/create] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /links/create] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /focus/] - sqlalchemy.exc.DBAPIError: (sqlalchemy.dialects.postgresql.asyncpg.Error) <class 'asyncpg.exceptions.DataError'>: invalid input for query argument $1: '2026-03-01' ('str' object has no attribute 'toordinal')
[SQL:
SELECT df.*, t.title, t.priority, t.status as task_status,
t.project_id, t.due_date, t.estimated_minutes,
p.name as project_name,
d.name as domain_name, d.color as domain_color
FROM daily_focus df
JOIN tasks t ON df.task_id = t.id
LEFT JOIN projects p ON t.project_id = p.id
LEFT JOIN domains d ON t.domain_id = d.id
WHERE df.focus_date = $1 AND df.is_deleted = false
ORDER BY df.sort_order, df.created_at
]
[parameters: ('2026-03-01',)]
(Background on this error at: https://sqlalche.me/e/20/dbapi)
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /capture/] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /contacts/create] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /search/] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /lists/] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /files/] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /meetings/] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /decisions/] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /weblinks/] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /weblinks/folders/create] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /appointments/new] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_no_params_returns_200[GET /time/running] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /domains/{domain_id}/edit] - AssertionError: GET /domains/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /areas/{area_id}/edit] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /projects/{project_id}] - AssertionError: GET /projects/00000000-0000-0000-0000-000000000000 returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /projects/{project_id}/edit] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /tasks/{task_id}] - AssertionError: GET /tasks/00000000-0000-0000-0000-000000000000 returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /tasks/{task_id}/edit] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /notes/{note_id}] - AssertionError: GET /notes/00000000-0000-0000-0000-000000000000 returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /notes/{note_id}/edit] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /links/{link_id}/edit] - AssertionError: GET /links/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /contacts/{contact_id}] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /contacts/{contact_id}/edit] - AssertionError: GET /contacts/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /lists/{list_id}] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /lists/{list_id}/edit] - AssertionError: GET /lists/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /files/{file_id}/download] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /files/{file_id}/preview] - AssertionError: GET /files/00000000-0000-0000-0000-000000000000/preview returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /files/{file_id}/serve] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /meetings/{meeting_id}] - AssertionError: GET /meetings/00000000-0000-0000-0000-000000000000 returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /meetings/{meeting_id}/edit] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /decisions/{decision_id}] - AssertionError: GET /decisions/00000000-0000-0000-0000-000000000000 returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /decisions/{decision_id}/edit] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /weblinks/{weblink_id}/edit] - AssertionError: GET /weblinks/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /appointments/{appointment_id}] - RuntimeError: Task <Task pending name='starlette.middleware.base.BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro' coro=<BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.coro() running at /usr/local/lib/python3.12/site-packages/starlette/middleware/base.py:149> cb=[TaskGroup._spawn.<locals>.task_done() at /usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:805]> got Future <Future pending cb=[BaseProtocol._on_waiter_completed()]> attached to a different loop
FAILED tests/test_smoke_dynamic.py::test_get_with_fake_id_returns_404[404 /appointments/{appointment_id}/edit] - AssertionError: GET /appointments/00000000-0000-0000-0000-000000000000/edit returned 200, expected 404 or redirect
assert 200 in (404, 302, 303)
+ where 200 = <Response [200 OK]>.status_code
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /domains/{domain_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /areas/{area_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /projects/{project_id}] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /projects/{project_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /tasks/{task_id}] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /tasks/{task_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /notes/{note_id}] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /notes/{note_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /links/{link_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /contacts/{contact_id}] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /contacts/{contact_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /lists/{list_id}] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /lists/{list_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /files/{file_id}/download] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /files/{file_id}/preview] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /files/{file_id}/serve] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /meetings/{meeting_id}] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /meetings/{meeting_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /decisions/{decision_id}] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /decisions/{decision_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /weblinks/{weblink_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /appointments/{appointment_id}] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
ERROR tests/test_smoke_dynamic.py::test_get_with_valid_id_returns_200[GET /appointments/{appointment_id}/edit] - RuntimeError: Seed data insertion failed: column "folder_id" of relation "weblinks" does not exist
LINE 2: INSERT INTO weblinks (id, label, url, folder_id,...
^
============ 41 failed, 18 passed, 57 warnings, 23 errors in 15.30s ============