|Rune Tynan 6cd8dd70e3||2 months ago|
|discord/ext/test||2 months ago|
|docs||6 months ago|
|tests||6 months ago|
|.gitignore||9 months ago|
|.readthedocs.yml||9 months ago|
|.travis.yml||9 months ago|
|LICENSE||2 years ago|
|README.md||2 months ago|
|dev-requirements.txt||9 months ago|
|setup.cfg||9 months ago|
|setup.py||9 months ago|
This is a package to allow testing of discord.py. It is only compatible with the rewrite version, and is still in early alpha. It relies on pytest-asyncio for asynchronous test running, as discord.py is coroutine driven.
Documentation can be found at dpytest.readthedocs.io, including examples and tutorials
TODO: Move this to RTD
dpytest can be used for projects using the default commands.Bot, or those defining their own subclass of bot. For someone using a custom class, code would look something like this:
import discord.ext.test as dpytest import yourbot import pytest @pytest.mark.asyncio async def test_bot(): bot = yourbot.BotClass() # Load any extensions/cogs you want to in here dpytest.configure(bot) await dpytest.message("!help") dpytest.verify_message("[Expected help output]")
The dpytest framework is designed to be used best with pytest style fixtures, but is technically framework agnostic.
With pytest, the bot setup step would be moved into a fixture so each test could use that fixture. Configure will ensure that all state is reset after each call.