diff options
author | 2022-11-02 14:29:03 +0000 | |
---|---|---|
committer | 2022-11-02 14:29:03 +0000 | |
commit | 4eb324fcf27561b61eec3c5939de22237d869aaa (patch) | |
tree | c723773ce0630c6ee1eefb4d6a93fa498712c310 /tests/base.py | |
parent | Address PR comments and fix typ (diff) | |
parent | Merge pull request #2309 from shtlrs/issue-2280-rule-keywords-discoverability (diff) |
Merge branch 'main' into create-nomodule-tag
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() |