Я использую Django ORM внутри asyn c кода. Все отлично работает и все тесты проходят. Однако соединения БД не закрываются должным образом после испытаний. Вот пример:
from asgiref.sync import sync_to_async, async_to_sync
@sync_to_async
def count_books():
return Book.objects.count()
class FooTest(TestCase):
def setUp(self):
Book.objects.create(title='Haha')
def test1(self):
import asyncio
c = asyncio.run(count_books())
self.assertEqual(1, c)
def test2(self):
c = async_to_sync(count_books)()
self.assertEqual(1, c)
Postgres ошибка:
django.db.utils.OperationalError: database "test_mydbname" is being accessed by other users
Ошибка Sqlite:
sqlite3.OperationalError: database table is locked: test_mydbname
Я пытался поменять sync_to_async
на database_sync_to_async
из django -каналов, но это ничего не изменило.
Как я могу это исправить?