diff options
| author | 2022-08-18 10:24:25 -0400 | |
|---|---|---|
| committer | 2022-08-18 10:24:25 -0400 | |
| commit | 79da3ed1ae2b3c43b28983b6d461b5dffdfe1cfd (patch) | |
| tree | 87cae31f7b0fa796dd06a87b3d00e300fae2d28f /tests/base.py | |
| parent | Removed unused datetime import (diff) | |
| parent | Merge branch 'main' into infraction-durations (diff) | |
Merge branch 'infraction-durations' of https://github.com/python-discord/bot into infraction-durations
Diffstat (limited to 'tests/base.py')
| -rw-r--r-- | tests/base.py | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/tests/base.py b/tests/base.py index 5e304ea9d..4863a1821 100644 --- a/tests/base.py +++ b/tests/base.py @@ -4,6 +4,7 @@ from contextlib import contextmanager  from typing import Dict  import discord +from async_rediscache import RedisSession  from discord.ext import commands  from bot.log import get_logger @@ -104,3 +105,26 @@ class CommandTestCase(unittest.IsolatedAsyncioTestCase):              await cmd.can_run(ctx)          self.assertCountEqual(permissions.keys(), cm.exception.missing_permissions) + + +class RedisTestCase(unittest.IsolatedAsyncioTestCase): +    """ +    Use this as a base class for any test cases that require a redis session. + +    This will prepare a fresh redis instance for each test function, and will +    not make any assertions on its own. Tests can mutate the instance as they wish. +    """ + +    session = None + +    async def flush(self): +        """Flush everything from the redis database to prevent carry-overs between tests.""" +        await self.session.client.flushall() + +    async def asyncSetUp(self): +        self.session = await RedisSession(use_fakeredis=True).connect() +        await self.flush() + +    async def asyncTearDown(self): +        if self.session: +            await self.session.client.close() | 
