aboutsummaryrefslogtreecommitdiffstats
path: root/tests/helpers.py (unfollow)
Commit message (Collapse)AuthorLines
2019-09-23Fix failing duration conversionGravatar Sebastiaan Zeeff-18/+127
https://github.com/python-discord/bot/issues/446 The current ExpirationDate converter does not convert duration strings to `datetime.datetime` objects correctly. To remedy the problem, I've written a new Duration converter that uses regex matching to extract the relevant duration units and `dateutil.relativedelta.relativedelta` to compute a `datetime.datetime` that's the given duration in the future. I've left the old `ExpirationDate` converter in place for now, since the new Duration converter may not be the most optimal method. However, given the importance of being able to convert durations for moderation tasks, I think it's better to implement Duration now and rethink the approach later. This commit closes #446
2019-09-22Apply suggestions from code reviewGravatar sco1-235/+156
Co-Authored-By: Mark <[email protected]>
2019-09-22Apply suggestions from code reviewGravatar S. Co1-29/+39
Co-Authored-By: Mark <[email protected]>
2019-09-22Apply suggestions from code reviewGravatar S. Co1-3/+3
Co-Authored-By: Leon Sandøy <[email protected]>
2019-09-22Return the message to sendGravatar Joseph Banks-0/+2
2019-09-19Apply suggestions from code reviewGravatar sco1-2/+2
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
2019-09-19Apply suggestions from code reviewGravatar S. Co1-4/+4
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
2019-09-19Update imports for applied code review suggestionsGravatar sco1-4/+3
2019-09-19Apply suggestions from code reviewGravatar S. Co1-13/+13
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
2019-09-19Replace incorrect None returns with Optional in certain commandsGravatar sco1-17/+24
2019-09-19Use Optional typing shorthand rather than Union w/NoneGravatar sco1-6/+6
2019-09-19Update paginator defs for correct Optional returnGravatar sco1-9/+13
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
2019-09-19Apply suggestions from code review Gravatar S. Co1-6/+6
Fix decorator return hints Co-Authored-By: Sebastiaan Zeeff <[email protected]>
2019-09-19Fix date formatting bug in infraction searchGravatar Sebastiaan Zeeff-2/+2
The infraction search feature did not work because of a small bug with the date formatting: `datetime.fromisoformat` does not like the Z at the end of the datestring the database sends back, so we need to chop it off. I've applied the same method for doing that as already in use in other parts of the bot codebase.
2019-09-18Add tests for `bot.rules.attachments`.Gravatar Johannes Christ-2/+54
This also fixes an issue with the `attachments` rule not respecting the most recent message sent by a user.
2019-09-18Infraction Date HumanizationGravatar Daniel Brown-2/+2
- Corrected an error that would have made the code bug out. Moved a closing parentheses to the correct spot. Signed-off-by: Daniel Brown <[email protected]>
2019-09-18Infraction Date HumanizationGravatar Daniel Brown-1/+1
- Changed the if statement to use `is None` for code clarity. Signed-off-by: Daniel Brown <[email protected]>
2019-09-18Add basic tests for `bot.cogs.information`.Gravatar Johannes Christ-0/+195
2019-09-18Infraction Date HumanizationGravatar Daniel Brown-2/+2
- Changed to use the format `"%Y-%m-%d %H:%M"`, which will turn out looking like `2019-09-18 13:59` Signed-off-by: Daniel Brown <[email protected]>
2019-09-18Infraction Date HumanizationGravatar Daniel Brown-2/+7
- Changed the date returned on infraction searches to use the `"%c"` strftime format instead of the standard ISO format. Signed-off-by: Daniel Brown <[email protected]>
2019-09-18Escape markdown in codeblock suggestion embedGravatar Sebastiaan Zeeff-8/+10
https://github.com/python-discord/bot/issues/434 If the content we prepare for the codeblock suggestion embed defined in the `bot` cog contains markdown characters (e.g., `__`, `**`), this will cause Discord to apply markdown, since both the codeblock syntax example as well as the codeblock result example will contain the characters, making it a matched formatting pair. This will hide those characters, which often have a function in the code, and break the example of a formatted codeblock. To deal with that, I've added a regex substitution that substitutes markdown characters by an escaped version of that markdown character. Example: `'__hello__'` will become `'\_\_hello\_\_'` I've added this substitution to both paths in the `on_message` event listener, since we can't substitute at an earlier place due to it generating `SyntaxErrors` with the `ast.parse` check. This closes #434
2019-09-17Enhance off-topic names search featureGravatar Sebastiaan Zeeff-4/+5
https://github.com/python-discord/bot/issues/435 This commit is meant to enhance the search feature in three separate, but related ways: 1. By changing the type annotation of the query to OffTopicName, we will use the same character translation table for the query as we did when storing the off-topic name, leading to better matches. 2. By adding a membership test, `query in name`, we are better able to search for off-topic names using a substring. 3. Given point 1 and point 2, we can increase the cut-off value we use for `difflib.get_close_matches` so we reduce the number of matches that bear little resemblance to the query in our human eyes. This commit closes #435
2019-09-18Recombine import groups.Gravatar scragly-1/+0
2019-09-18Add basic tests for `bot.api`.Gravatar Johannes Christ-1/+127
2019-09-18Validate configuration against typehints.Gravatar Johannes Christ-13/+25
2019-09-17Remove duplicate coverage.xml gitignoreGravatar scragly-3/+0
2019-09-17Update lock to new coverage dependancies.Gravatar scragly-12/+56
2019-09-17Add coverage reporting to tests.Gravatar Johannes Christ-1/+22
2019-09-16Fix InfractionSearchQueryGravatar Sebastiaan Zeeff-1/+1
I missed a `get_user_info` in InfractionSearchQuery in bot.converts. This method is now `fetch_user` in Discord.py 1.2.3.
2019-09-17Adjust to new cog method names.Gravatar scragly-5/+7
2019-09-16Update discord.py version to 1.2.3Gravatar Sebastiaan Zeeff-183/+240
I have updated the discord.py version to 1.2.3. This includes changes throughout the entire code base, including: - All cogs now inherit from `discord.ext.commands.Cog`; - All of our ABCs now have `bot.utils.CogABCMeta` as a metaclass; - All event handlers in cogs are now decorated with `Cog.listener()`; - Some method names have changes, including: - get_message => fetch_message - get_webhook_info => fetch_webhook - A few occurences of `get_channel` have been replaced by the new coroutine `fetch_channel`; - I've had to patch a few lines of code to account for small differences between the versions, like `on_member_update` attribute names in ModLog and the fact the way we used `Context.invoke` a couple of times has stopped working. In addition, I've added a patch for a bug in discord.py (with the help of @Scragly). This discord.py version has a bug which causes the edited timestamp not to be processed for edited messages. It's already fixed on GitHub, but a bug fix release has not been released to PyPI. In the meantime, I've added a patch in `bot.patches.message_edited_at` and included conditional loading in `__main__`. Finally, I noticed a small bug in `bot.cogs.filtering` that I fixed; I replaces `return` with `continue` to make sure filtering for edited messages doesn't stop after the `rich_embed_filter`.
2019-09-15Replaces all GitLab refs with GitHub.Gravatar Leon Sandøy-8/+8
There were some GitLab references in various parts of the code, which were causing a problem with displaying icons in the bot connection embeds and other minor aesthetic issues. This commit replaces all links to GitLab with their GitHub equivalent, resolving these bugs.
2019-09-15Changing the #dev-logs ID to new channel.Gravatar Leon Sandøy-1/+1
We retired the old #dev-logs channel (for security reasons) and have made a new one for public consumption. This commit changes the ID to match the new channel.