aboutsummaryrefslogtreecommitdiffstats
path: root/tests/helpers.py (unfollow)
Commit message (Collapse)AuthorLines
2019-10-12Bump the site PostgreSQL version to 12.Gravatar Johannes Christ-1/+1
2019-10-11Add typehints.Gravatar Johannes Christ-3/+2
2019-10-11Implement test cases suggested by @MarkKoz.Gravatar Johannes Christ-0/+11
2019-10-11Log member_ban event to #user-logGravatar kosayoda-3/+2
2019-10-09Resolve #458: support exact timestamps as args for mod commandsGravatar MarkKoz-22/+43
* Rename all parameters to "duration" for consistency * Add missing docs about duration parameter to the superstarify command
2019-10-09Resolve #357: show ban reason and bb watch status in unban mod logGravatar MarkKoz-1/+18
2019-10-09Fix #346: display infraction count after giving an infractionGravatar MarkKoz-3/+10
2019-10-09Show help when ext load/unload are invoked without argumentsGravatar MarkKoz-0/+8
2019-10-08Expand token detection regex character exclusionGravatar sco1-5/+5
This helps enable broader detection of tokens being used in contexts beyond simple assignment
2019-10-08Ensure display name changes are loggedGravatar Sebastiaan Zeeff-1/+6
https://github.com/python-discord/bot/issues/489 Recently, we discovered that not all display name changes were logged to the #user-log channel. This problem was caused by the `old_value` or the `new_value` showing up as `None` when a user sets or removes a guild-specific nickname. Since we ignore changes where one of the two values is `None`, we did not log these `None->nick` or `nick->None` events. Since we are mainly interested in the display name of the user, and the display name is equal to the user's guild-specific nickname if they have set one and otherwise their username, I made the following changes: - Add logging of changes in the display names of members. - Ignore nick-specific changes completely, since these changes are already captured by the changes in the display name we now log. This closes #489
2019-10-08Show infraction reason when the bot is the actorGravatar Sebastiaan Zeeff-1/+5
https://github.com/python-discord/bot/issues/476 We recently decided to hide the reason in the confirmation message the bot sends after applying an infraction. In most situations, this makes sense, since the message containing the invocation command already contains the reason. However, if the infraction was triggered by the bot itself (e.g., an antispam trigger), this means that we're missing information that provides context to the infraction. This commit adds the reason back to the confirmation message, but only if the actor of the infraction was the bot itself. Closes #476
2019-10-08Set bot as actor of antispam infractionsGravatar Sebastiaan Zeeff-1/+3
As mentioned in #476, the bot currently sets the actor of infractions applied due to an antispam rule trigger to the offending member. The reason is that we get a `Context` object from the message that triggered the antispam rule, which was sent by the offender. I've changed it by patching both available author attributes, `Context.author` and `Context.message.author` with the bot user.
2019-10-07Only allow members currently in the guild to be warnedGravatar MarkKoz-1/+1
2019-10-07Update the nickname policy URLGravatar Mark-1/+1
Co-Authored-By: Sebastiaan Zeeff <[email protected]>
2019-10-07Escape asterisks in extensions docstringsGravatar MarkKoz-7/+7
2019-10-07Support wildcards and multiple extensions for load and unload commandsGravatar MarkKoz-36/+48
* Rename batch_reload() to batch_manage() and make it accept an action as a parameter so that it can be a generic function. * Switch parameter order for manage() to make it consistent with batch_manage(). * Always call batch_manage() and make it defer to manage() when only 1 extension is given. * Make batch_manage() a regular method instead of a coroutine.
2019-10-07Use quotes instead of back ticks around asterisk in docstringsGravatar MarkKoz-4/+4
2019-10-07Add missing awaits and call bot as attributGravatar Jens-14/+14
2019-10-06Update max threshold for attachmentsGravatar Derek-1/+1
2019-10-05Specify names of "prepare_cog" methodsGravatar Jens-19/+19
2019-10-04Make categories class attributes and support descriptionsGravatar MarkKoz-5/+20
* Document support for custom categories.
2019-10-04Fix error when symbol_id cannot be found in doc HTMLGravatar MarkKoz-0/+3
2019-10-04Adjust verbiage of totals for watch commandsGravatar MarkKoz-2/+2
2019-10-04Show previous watch reason and total after invoking watch commandGravatar MarkKoz-2/+39
2019-10-04Wait until the bot is ready before reschedule infractionsGravatar MarkKoz-0/+2
2019-10-03Refactor the extensions list commandGravatar MarkKoz-23/+8
2019-10-03Invoke the help command when reload is called without argsGravatar MarkKoz-0/+4
2019-10-03Fix extensions aliasGravatar MarkKoz-3/+4
* Rename accordingly from cogs to extensions * Use the Extension converter * Make the argument variable instead of keyword-only
2019-10-03Use reload_extension() instead of calling unload and reloadGravatar MarkKoz-67/+56
* Simplify output format of batch reload with only 1 list of failures * Show success/failure emoji for batch reloads * Simplify logic in the manage() function * Clean up some imports
2019-10-03Support giving multiple extensions to reloadGravatar MarkKoz-10/+17
* Rename reload_all to batch_reload
2019-10-03Fix concatenation of error messages for extension reloadsGravatar MarkKoz-2/+2
2019-10-03Show original exception, if available, when an extension fails to loadGravatar MarkKoz-0/+3
2019-10-03Use manage method for extensions commandsGravatar MarkKoz-198/+69
* Rewrite docstrings for commands * Rename KEEP_LOADED to UNLOAD_BLACKLIST and make it a set * Change single quotes to double quotes * Add "cogs" as an alias to the extensions group
2019-10-03Fix the values in the extensions setGravatar MarkKoz-1/+5
* Store just the names rather than entire ModuleInfo objects * Fix prefix argument
2019-10-03Add a custom converter for extensionsGravatar MarkKoz-8/+33
The converter fully qualifies the extension's name and ensures the extension exists. * Make the extensions set a module constant instead of an instant attribute and make it a frozenset. * Add a cog error handler to handle BadArgument locally and prevent the help command from showing for such errors.
2019-10-03Add a generic method to manage loading/unloading extensionsGravatar MarkKoz-0/+31
2019-10-03Replace with_role decorator with a cog_checkGravatar MarkKoz-6/+6
2019-10-03Simplify extension discovery using pkgutilGravatar MarkKoz-15/+5
The cog now keeps a set of full qualified names of all extensions.
2019-10-03Add enum for extension actionsGravatar MarkKoz-0/+9
2019-10-03Rename the "cogs" extension & cog to "extensions"Gravatar MarkKoz-14/+14
2019-10-03Improve readabilityGravatar Ben Diller-0/+1
Co-Authored-By: Mark <[email protected]>
2019-10-03Move asyncio.sleep() to avoid disturbing function signatures.Gravatar bendiller-16/+13
2019-10-03Fix rescheduling of infractions when cog is reloadedGravatar MarkKoz-3/+5
2019-10-03Make warns, notes, and kicks always inactive Gravatar Mark-4/+4
It doesn't make sense for these types of infractions to be "active". Co-Authored-By: Sebastiaan Zeeff <[email protected]>
2019-10-03Add note instead of failure to mod log during pardon when ban not foundGravatar MarkKoz-2/+7
2019-10-03Prepare cogs on cog init & wait for bot ready flagGravatar Jens-18/+36
2019-10-03Check if tzinfo is None in ISODateTime testGravatar Sebastiaan Zeeff-1/+3
As we have decided that the converter should return naive datetime objects, we should explicitly test that datetime strings with a timezone offset are still converted to a naive datetime object. I have done this by adding a `tzinfo is None` assertion.
2019-10-02Add sleep(3) between retries, with bot indicating typing during sleepGravatar bendiller-4/+9
2019-10-02Add logging for invalid response (after all retries are exhausted)Gravatar bendiller-1/+3
2019-10-02Mention moderators in the mod log when an infraction fails to expireGravatar MarkKoz-1/+7