aboutsummaryrefslogtreecommitdiffstats
path: root/tests/helpers.py (unfollow)
Commit message (Collapse)AuthorLines
2019-10-25Superstarify: fit within 100 columns & use double quotesGravatar MarkKoz-7/+13
2019-10-25Superstarify: refactor on_member_update eventGravatar MarkKoz-39/+35
* Use notify_infraction to be more consistent * Add an audit log reason to the member edit * Simplify docstring * Simplify log message
2019-10-25Superstarify: ignore member update event when applyingGravatar MarkKoz-0/+1
2019-10-25InfractionScheduler: prevent duplicate rescheduling of infractionsGravatar MarkKoz-6/+9
2019-10-25InfractionScheduler: create generic function for reapplying infractionsGravatar MarkKoz-68/+39
reapply_infraction() is a generic function which reapplies a given infraction if it is still active or deactivates it if less than 60 seconds remain. Most of the code from Infractions.on_member_joined now lives in this new function. This simplifies the "fancier" DM and mod log that were previously sent for superstar in on_member_join.
2019-10-25Superstarify: refactor superstarify commandGravatar MarkKoz-29/+35
* Edit the nickname and schedule the infraction before sending messages * Reformat mod log description to be consistent with other infractions * Use INFRACTION_ICONS constant
2019-10-25Superstarify: schedule infractions by subclassing InfractionSchedulerGravatar MarkKoz-42/+25
2019-10-25InfractionScheduler: use fetched user for notify_infractionGravatar MarkKoz-1/+1
2019-10-25Superstarify: add icons to constants and configGravatar MarkKoz-3/+10
2019-10-25InfractionScheduler: delegate type-specific pardon code to subclassesGravatar MarkKoz-35/+77
* Create an abstract method for performing type-specific infraction deactivation * Move infraction-specific pardon code to separate functions
2019-10-25Moderation: create a class to handle scheduling of infractionsGravatar MarkKoz-353/+372
The class handles application, pardoning, and expiration of infractions. This will allow other cogs, such as superstarify, to later subclass it to receive the same functionality that the infractions cog had.
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