aboutsummaryrefslogtreecommitdiffstats
path: root/tests/helpers.py (unfollow)
Commit message (Collapse)AuthorLines
2019-10-27Fix broken constant testsGravatar Leon Sandøy-5/+4
2019-10-27Add correct values for constants from production server.Gravatar Leon Sandøy-2/+2
2019-10-27Appease the linterGravatar Leon Sandøy-6/+13
2019-10-27Add duck_pond cog.Gravatar Leon Sandøy-0/+207
This cog will listen for duck reactions on any message, and then: - If the reaction was added by a staff member - and the reaction was a duck - and the message has not already been added to the #duck-pond It will add the message to the #duck-pond and then add a green checkbox to the original message to indicate that the message has been ponded. Messages are added to the #duck-pond via webhook, so that they can retain the appearance of having their original authors. Once this checkmark has been added, the message will not be processed in the future. If the checkmark is removed and there are more than ducks_required ducks on the message, the bot will automatically add the checkmark back. However, if all reactions are removed, the bot does not have a countermeasure for this. In order to implement a countermeasure, it would be necessary to involve the API and the database.
2019-10-27Add duck-pond constants.Gravatar Leon Sandøy-29/+43
This adds the emojis, the channel, and the configuration needed for the duck-pond feature. This is added both to config-default.yml, and to the constants.py file.
2019-10-25Remove bold tag when no channel is availableGravatar kraktus-2/+2
2019-10-24Requested changesGravatar kraktus-3/+1
2019-10-24Fix incorrect type hint for return valueGravatar kosayoda-2/+2
2019-10-24Prepend emoji indicative of success of !evalGravatar kosayoda-1/+12
2019-10-23Use standart filter conditions even if DEBUG_MODE is on.Gravatar Akarys42-5/+1
The old method filtered only in #dev-test but this channel no longer exists
2019-10-23Substract one to now calculationGravatar Akarys42-2/+2
Avoid aving `Your reminder will arrive in 59 minutes and 59 seconds!` instead of `Your reminder will arrive in 1 hour!`
2019-10-22Add test cases for in_channel_checkGravatar Atul Mishra-0/+8
2019-10-22Modify in_channel_check to accept list of channelsGravatar Atul Mishra-7/+7
- Update test cases for in_channel_check
2019-10-21Show total infraction count only in staff channelsGravatar Akarys42-1/+3
2019-10-21Create STAFF_CHANNELS constantGravatar Akarys42-2/+15
2019-10-21Update send_reminder message creationGravatar Akarys42-6/+6
It is now truly backward compatible and use a more DRY method
2019-10-21Fix typo in channel nameGravatar Atul Mishra-1/+1
2019-10-21Add #admin-spam channel to moderation channels listGravatar Atul Mishra-2/+4
- Change doc string for cog_check method
2019-10-21Add a footer and one-line a stringGravatar kraktus-7/+4
2019-10-21Fixing formatting for timedelta.Gravatar Shirayuki Nekomata-2/+2
- Now it will only show the amount of days. - Quality of Life: Also show `day` instead of `days` when it's just 1 day.
2019-10-21Update defcon.pyGravatar Shirayuki Nekomata-11/+3
- Update docstrings for `build_defcon_msg()` and `send_defcon_log()` - It is now taking in an `Action` directly instead of a string.
2019-10-21Update defcon.pyGravatar Shirayuki Nekomata-14/+9
- Remove the unneccessary `get_info()` method of Enum `Action`. - Pass Enum `Action` directly to `build_defcon_msg()` and `send_defcon_log()` - Right now, only `_defcon_action()` is using them.
2019-10-21Update defcon.pyGravatar Shirayuki Nekomata-22/+21
- Renamed `DefconInfoLog` to `Action` - Added `ActionInfo` namedtuple. - Use `Action` consistently for `_defcon_action()` and `send_defcon_log()`
2019-10-20Apply suggestions from review, and add correct webhook ID.Gravatar mathsman5133-11/+15
- More informative docstrings for `Reddit.channel` and `get_top_posts` - Add the `amount` parameter, defaulting to 5. - Pin a max of 12 weeks worth of top posts.
2019-10-19Do not display an expiry for notes or warnings.Gravatar Johannes Christ-1/+7
2019-10-19Pluralize "infractions" as necessary.Gravatar Johannes Christ-1/+3
2019-10-19Add missing channels to the configGravatar Atul Mishra-0/+2
2019-10-19Add moderation channels check to cog_checkGravatar Atul Mishra-2/+11
2019-10-19Update defcon.pyGravatar Shirayuki Nekomata-63/+37
- Further unify defcon actions in `_defcon_action` - Thanks to Mark's suggestions. - Changed from a Dict to an Enum for defcon log info.
2019-10-17Bugfix - ensure .py attachment is prioritized over other non-whitelistedGravatar bendiller-1/+0
2019-10-17Address reviewer requestGravatar bendiller-3/+4
2019-10-17Fix defcon having wrong text when disabling.Gravatar Shirayuki Nekomata-50/+46
#### Closes #539 This pull request fixes the issue for wrong status in the embed, as well as unifying certains if else to prevent similar future errors. Most notable code is here: ```python log_msg = f"**Staffer:** {actor} (`{actor.id}`)\n" if change.lower() == "enabled": icon = Icons.defcon_enabled color = Colours.soft_green status_msg = "DEFCON enabled" log_msg += f"**Days:** {self.days.days}\n\n" elif change.lower() == "disabled": icon = Icons.defcon_disabled color = Colours.soft_red status_msg = "DEFCON enabled" elif change.lower() == "updated": icon = Icons.defcon_updated color = Colour.blurple() status_msg = "DEFCON updated" log_msg += f"**Days:** {self.days.days}\n\n" ``` To remedy this issue, the class will now have a private class variable ```py _defcon_log_info: Dict[str, Tuple] = { 'enabled': (Icons.defcon_enabled, Colours.soft_green, "**Days:** {days}\n\n"), 'disabled': (Icons.defcon_disabled, Colours.soft_red, ""), 'updated': (Icons.defcon_updated, Colour.blurple(), "**Days:** {days}\n\n"), } ``` Another big change is the introduction of `_defcon_action` to unify the process all defcon actions has to go through: - Try to do the action. - Log error if there is any. - Send log message.
2019-10-16Improve code readability and provide early exit from loopGravatar bendiller-8/+13
2019-10-15Fix rule alias.Gravatar kosayoda-6/+6
Allow rule alias to take rule numbers, passes them to the `site rules` command. Rules are now 1-indexed to conform with the representation on the website.
2019-10-15Rename `triggered` to `match`Gravatar kosayoda-8/+6
2019-10-15Utilise `tasks.loop` and a webhook for reddit postingsGravatar mathsman5133-147/+80
2019-10-14Improve code readability and docstringGravatar bendiller-13/+33
2019-10-14Remove empty tests.cogs folderGravatar Sebastiaan Zeeff-0/+0
2019-10-14Make test_token_remover use our discord MocksGravatar Sebastiaan Zeeff-8/+5
This commit replaces the standard MagicMocks by our specialized mocks for discord.py objects. It also adds the missing `channel` attribute to the `tests.helpers.MockMessage` mock and moves the file to the correct folder.
2019-10-14Use `MockBot`.Gravatar Johannes Christ-3/+3
2019-10-14Move the `token_remover` cog tests to `unittest`.Gravatar Johannes Christ-0/+139
2019-10-14Add more specialized Mocks to tests.helpersGravatar Sebastiaan Zeeff-181/+383
This commit introduces some new Mock-types to the already existing Mock-types for discord.py objects. The total list is now: - MockGuild - MockRole - MockMember - MockBot - MockContext - MockTextChannel - MockMessage In addition, I've added all coroutines in the documentation for these discord.py objects as `AsyncMock` attributes to ease testing. Tests ensure that the attributes set for the Mocks exist for the actual discord.py objects as well.
2019-10-14Implement a bypassable cooldown decoratorGravatar Ava-3/+50