Red-DiscordBot/tests/conftest.py

39 lines
1014 B
Python

import asyncio
import os
import pytest
from redbot import _update_event_loop_policy
from redbot.core import _drivers, data_manager
_update_event_loop_policy()
@pytest.fixture(scope="session")
def event_loop(request):
"""Create an instance of the default event loop for entire session."""
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
yield loop
asyncio.set_event_loop(None)
loop.close()
def _get_backend_type():
if os.getenv("RED_STORAGE_TYPE") == "postgres":
return _drivers.BackendType.POSTGRES
else:
return _drivers.BackendType.JSON
@pytest.fixture(scope="session", autouse=True)
async def _setup_driver():
backend_type = _get_backend_type()
storage_details = {}
data_manager.storage_type = lambda: backend_type.value
data_manager.storage_details = lambda: storage_details
driver_cls = _drivers.get_driver_class(backend_type)
await driver_cls.initialize(**storage_details)
yield
await driver_cls.teardown()