aboutsummaryrefslogtreecommitdiffstats
path: root/tests/helpers.py (unfollow)
Commit message (Collapse)AuthorLines
2019-12-11Converters: rename string to allowed_stringsGravatar MarkKoz-5/+5
2019-12-11ModManagement: add more aliases for "special" params of infraction editGravatar MarkKoz-8/+8
2019-12-11ModManagement: display ID of edited infraction in confirmation messageGravatar MarkKoz-1/+2
2019-12-11ModManagement: allow "recent" as ID to edit infraction (#624)Gravatar MarkKoz-2/+21
It will attempt to find the most recent infraction authored by the invoker of the edit command.
2019-12-11Add a generic converter for only allowing certain string valuesGravatar MarkKoz-13/+23
2019-12-11Reddit: raise ClientError when the token can't be retrievedGravatar MarkKoz-4/+3
Raising an exception allows the error handler to display a message to the user if the failure happened from a command invocation.
2019-12-11Reddit: log retries when getting the access tokenGravatar MarkKoz-1/+9
2019-12-11Reddit: create a dict constant for the User-Agent headerGravatar MarkKoz-27/+12
2019-12-11Reddit: revise docstringsGravatar MarkKoz-9/+17
2019-12-11Reddit: define AccessToken type at the module levelGravatar MarkKoz-1/+2
2019-12-11Reddit: use expires_in from the response to calculate token expirationGravatar MarkKoz-2/+3
2019-12-11Reddit: use qualified_name attribute when removing the cogGravatar MarkKoz-1/+1
2019-12-11Reddit: move BasicAuth instantiation to __init__Gravatar MarkKoz-4/+3
The object is basically just a namedtuple so there's no need to re-create it every time a token is obtained. * Remove log message which shows credentials. * Initialise headers attribute to None in __init__.
2019-12-11Reddit: move token renewal inside fetch_postsGravatar MarkKoz-17/+4
This removes the duplicate code for renewing the token. Since fetch_posts is the only place where the token gets used, it can just be refreshed there directly.
2019-12-11ErrorHandler: fix #650 tag fallback not respecting checksGravatar MarkKoz-0/+10
2019-12-09Infractions: kick user from voice after muting (#644)Gravatar MarkKoz-2/+7
2019-12-09Moderation: catch HTTPException when applying an infractionGravatar MarkKoz-3/+7
Only a warning is logged if it's a Forbidden error. Otherwise, the whole exception is logged.
2019-12-09Moderation: show HTTP status code in the log for deactivation failuresGravatar MarkKoz-1/+1
2019-12-08Use the AsyncResolver for APIClient and discord.py sessions tooGravatar MarkKoz-11/+11
Active thread counts are observed to be lower with it in use.
2019-12-09Ensure hidden_channels and bypass_roles use a list when not passed.Gravatar Manuel Ignacio Pérez Alcolea-0/+3
The in_channel decorator raised 'NoneType' is not iterable when it wasn't passed, due to the default value being None but not checked against before iterating over it. This edit ensures the arguments are set to an empty list in cases where they have a value of None instead.
2019-12-08Fix test failures for setup log messagesGravatar MarkKoz-24/+7
2019-12-08Properly create and close aiohttp sessionsGravatar MarkKoz-10/+65
aiohttp throws a warning when a session is created outside of a running async event loop. In aiohttp 4.0 this actually changes to an error instead of merely a warning. Since discord.py manages the event loop with client.run(), some of the "internal" coroutines of the client were overwritten in the bot subclass to be able to hook into when the bot starts and stops. Sessions of both the bot and the API client can now potentially be None if accessed before the sessions have been created. However, if called, the API client's methods will wait for a session to be ready. It will attempt to create a session as soon as the event loop starts (i.e. the bot is running).
2019-12-08Fix name conflict with the Bot cogGravatar MarkKoz-3/+3
2019-12-08Override add_cog to log loading of cogsGravatar MarkKoz-80/+34
2019-12-07Change all Bot imports to use the subclassGravatar MarkKoz-52/+92
2019-12-07Subclass BotGravatar MarkKoz-24/+32
2019-12-05Keeps access token alive, only revokes it on extension unload.Gravatar Jens-20/+32
Hard-coded version number to 1.0.0.
2019-12-05Requested changeGravatar kraktus-1/+2
Include the check about whether or not there is a token in the posted message in `parse_codeblock` boolean.
2019-12-05Added optional channel parameter to !echo:Gravatar Daniel Brown-4/+7
- Added the option to specify a channel to have Python repeat what you said to it, as well as keeping the old functionality of having it repeat what you said in the current channel if no channel argument is given. Signed-off-by: Daniel Brown <[email protected]>
2019-12-04Apply suggestions from Mark - removing `.` at the end and use double quote ↵Gravatar Shirayuki Nekomata-2/+2
instead of single. Co-Authored-By: Mark <[email protected]>
2019-12-04Implemented remaining time until expiration for infraction searching.Gravatar Shirayuki Nekomata-0/+7
Will show the remaining time, `Expired.` or `Inactive.` based on the status of the infraction ( It can be inactive but not expired, like an early unmute )
2019-12-04Created `until_expiration` to get the remaining time until the infraction ↵Gravatar Shirayuki Nekomata-0/+20
expires.
2019-12-04Improved type hinting for `format_infraction_with_duration`Gravatar Shirayuki Nekomata-1/+5
2019-12-03Antimalware: fix paste service URL showing replacement fieldGravatar MarkKoz-1/+1
2019-12-04Renamed function and improved its docstring to better reflect its purposes.Gravatar Shirayuki Nekomata-16/+9
Changed from `get_duration_from_expiry` -> `format_infraction_with_duration`
2019-12-03Deleted `get_duration` and switched to using the already, nicely made ↵Gravatar Shirayuki Nekomata-48/+8
`humanize_delta`
2019-12-03Removed pytest, getting ready to migrate to unittest in another PRGravatar Shirayuki Nekomata-44/+0
2019-12-01Allow snekbox in esoteric-python channelGravatar MarkKoz-4/+15
* Add a hidden_channels parameter to in_channel decorator to hide channels from the InChannelCheckFailure error message.
2019-11-30Update bot/cogs/moderation/modlog.pyGravatar Leon Sandøy-1/+1
2019-11-27Apply review comments to duckpond's unit testsGravatar Sebastiaan Zeeff-72/+128
https://github.com/python-discord/bot/pull/621 I've changed to unit tests according to the comments made on the issue. Most changes are straightforward enough, but, for context, see the PR linked above.
2019-11-27Move duckpond payload emoji check to method to create testable unitGravatar Sebastiaan Zeeff-6/+14
I moved the check that tests if a payload contains a duck emoji to a separate method. This makes it easier to test this part of the code as a separate unit than when it's contained in the larger event listener. In addition, I kaizened the name `relay_message_to_duckpond` to the less verbose `relay_message`; that's already clear enough.
2019-11-27Updated test cases for `parts: Optional[int]`Gravatar Shirayuki Nekomata-23/+32
2019-11-27Updated docstrings, allow passing `parts: Optional[int] = 2` to helper ↵Gravatar Shirayuki Nekomata-6/+14
functions to return more than just 2 parts of the duration.
2019-11-27Updated test cases for `get_duration_from_expiry()`Gravatar Shirayuki Nekomata-8/+9
2019-11-27Refactored `scheduler.py` to use the new `get_duration_from_expiry()`Gravatar Shirayuki Nekomata-10/+4
2019-11-27Refactored `management.py` to use the new `get_duration_from_expiry()`Gravatar Shirayuki Nekomata-5/+4
2019-11-27Changed `get_duration_from_expiry()` to return the `time (duration)` or a `''`Gravatar Shirayuki Nekomata-2/+11
2019-11-27Added duration until expiration for infraction searching.Gravatar Shirayuki Nekomata-2/+5
2019-11-27Fixed "14 minutes, 60 seconds" by rounding `.total_seconds()` in ↵Gravatar Shirayuki Nekomata-0/+1
`bot.utils.time.get_durations()`
2019-11-27Added expiry duration when applying infraction ( including in the embed sent ↵Gravatar Shirayuki Nekomata-3/+6
to user )