aboutsummaryrefslogtreecommitdiffstats
path: root/tests/helpers.py (unfollow)
Commit message (Collapse)AuthorLines
2023-03-19Add role hierarchy guards for timeoutsGravatar mbaruh-0/+5
Timeouts have similar role hierarchy restrictions to bans.
2023-03-19Mention target user in cap messageGravatar mbaruh-3/+4
2023-03-14Fix pydantic model that prevented channel blacklist from workingGravatar TizzySaurus-1/+1
2023-03-12change mode to "wb"Gravatar shtlrs-1/+1
2023-03-12remove CUSTOM_ID_FORMATGravatar shtlrs-1/+0
2023-03-12bring back the interaction_checkGravatar shtlrs-0/+10
This one is still needed for the `!subscribe` text command to work properly
2023-03-12remove custom ids that handle routing to the viewGravatar shtlrs-11/+0
2023-03-12Bump aiohttp from 3.8.3 to 3.8.4Gravatar dependabot[bot]-91/+91
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.8.3 to 3.8.4. - [Release notes](https://github.com/aio-libs/aiohttp/releases) - [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst) - [Commits](https://github.com/aio-libs/aiohttp/compare/v3.8.3...v3.8.4) --- updated-dependencies: - dependency-name: aiohttp dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]>
2023-03-12Bump pydantic from 1.10.5 to 1.10.6Gravatar dependabot[bot]-39/+39
Bumps [pydantic](https://github.com/pydantic/pydantic) from 1.10.5 to 1.10.6. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/v1.10.6/HISTORY.md) - [Commits](https://github.com/pydantic/pydantic/compare/v1.10.5...v1.10.6) --- updated-dependencies: - dependency-name: pydantic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]>
2023-03-11write emoji_trashcan to .env.server upon botstrapGravatar shtlrs-1/+5
2023-03-11switch order of env files to be parsedGravatar shtlrs-2/+1
The priority of the value to be picked is always the last file in the `env_file` tuple We want server values to always be picked up from .env.server, and if someone wants to override them for testing, they'll go into .env But the `env.server` shouldn't be manually tampered with
2023-03-11Update appeals2 to appeals_2 to reflect config changeGravatar vivekashok1221-1/+1
2023-03-10Display "N/A" for infractions in ModMailGravatar vivekashok1221-7/+9
Previously displayed "Infraction issued in modmail" for infractions in ModMail.
2023-03-09Merge branch 'main' into snekbox-filesGravatar Ionite-1/+6
2023-03-09Merge #2459: Update nested delimiter to double underscoreGravatar Amrou Bellalouna-4/+4
* change nested delimiter to double underscore * write channel_id along with the webhook_id * make channel mandatory for webhook
2023-03-09move httpx to the dev dependency groupGravatar shtlrs-6/+2
2023-03-09relock dependenciesGravatar shtlrs-1/+110
2023-03-09add a poetry task to configure botGravatar shtlrs-0/+1
2023-03-09add the botstrap dependency groupGravatar shtlrs-0/+5
2023-03-09replace . with _ when mapping webhook idsGravatar shtlrs-1/+1
2023-03-09Make tag slash command guild only (#2452)Gravatar Amrou Bellalouna-0/+1
Co-authored-by: ChrisJL <[email protected]>
2023-03-09update threshold values for rulesGravatar shtlrs-2/+2
2023-03-09Merge #2408: Scaffold server config via a bootstrapping scriptGravatar Amrou Bellalouna-1296/+863
Refactor configuration into a pydantic-based python constants file, and add a utility to auto-populate guild data. Squashed commits: * use basic config for demo purposes * fix guiding comments * update var names for proper context reflection * fix wront iteration var * add all roles, & channels * load categories * separate sections in env file * ignore .env.server * rename change_log to changelog This also adds a default env file to look for * remove instantiation of webhooks * add most of the default configs These will mostly be fetched from the .env.default file, which won't be bootstrapped * warn when categories/roles/channels are not found * add env file to keep server defaults * fix malformatted value in the .env.default * add default server env variables * update the sections formatting in default env file * fallback to server env when loading constants * add guild basic defaults * update change_log channel name to changelog * add the Guid settings prefix * make _Guild inherit from EnvConfig * add webhook defaults * add python_news defaults to the server env * ad missing webhooks prefix * update bootstrapper logger name * update priority of the env loaded files According to Pydantic's docs: "Later files in the list/tuple will take priority over earlier files." * warn user that default value from PyDis' config will be used * add colours default config * add antispam config * update antispam references * add redis default cfg * add Stats, Cooldowns and CleanMessages consts This also includes their default values * add Metabase to constants This also includes its default values * add URLS to constants This also includes its default values * use the Field class to provide defaults This avoids overriding & changing the `fields` of the `Config` class "dynamically" * add keys constant class * add Guild conf * replace dash with underscore in script * appease linter * transform attributes of AntiSpam to dict when needed This ensures that the application stays backwards compatible * add root_validator for the colours class This enables the conversion from hex to int easily since it's not a supported type by pydantic * reinstate the role & channels combinations * rename URLS to URLs * add emojis & icons constants * add filter constants & their default values * remove all useless spaces * instantiate the keys class * add bot prefix to default env file * fetch Bot constants from env vars instead of the prefix ones * add Miscellaneous config * instantiate poor forgotten Miscellaneous config * add final touches to the constants module This includes removing dups, adding missing channels & fixing type casts * move all default values to constants.py This is done by using the `Field` class. It allows us to 1. Set defaults, in case the variables are not configured 2. Load them from a env variable under a specific name (for backwards comp) 3. load it from any env variable file that contains the right prefix * ignore all .env files * load BOT_TOKEN & GUILD_ID from .env * allow _GUILD to read its id from the `GUILD_ID` env var * base Webhooks settings off of a Webhook model * create necessary webhooks if non existent * appease flake8 docstrings error * make the script idempotent * update type hints * uppercase all consts * make webhook channel optional * add httpx to its own dependency group This group will be optional & only related to the bootstrapper * replace requests with httpx * pass client as param * include raise_for_status as a response hook * rename get_webhook to webhook_exists * update docstring of the constants module * use "." as a separator * update script to account for already created webhooks * make ANTI_SPAM_RULES a module level constant This ensures that flake8 doesn't complain about making a function call in the function's signature * remove the manual resolving of .env paths * update usages of AntiSpam constants * remove forgotten assignment of rule_config * remove useless assignments of env file names * delete default config-default.yml * update docstrings of CodeBlockCog to reference constants.py * add a poetry task that runs the bootstrapping script * add python-dotenv to the config-bootstrap group * update hook name to _raise_for_status * construct site_api in _URLs * remove __name__ == '__main__'guard * Revert "construct site_api in _URLs" This reverts commit 1c555c4280c6a0bdd452319cbd3ffcd0370f5d48. * remove usage of the Field class * update env var keys that the bootstrapping script needs * use API_KEYS.SITE_API as env var in docker compose instead of BOT_API_KEY * use basic config for demo purposes * fix guiding comments * update var names for proper context reflection * fix wront iteration var * add all roles, & channels * load categories * separate sections in env file * ignore .env.server * rename change_log to changelog This also adds a default env file to look for * remove instantiation of webhooks * add most of the default configs These will mostly be fetched from the .env.default file, which won't be bootstrapped * warn when categories/roles/channels are not found * add env file to keep server defaults * fix malformatted value in the .env.default * add default server env variables * update the sections formatting in default env file * fallback to server env when loading constants * add guild basic defaults * update change_log channel name to changelog * add the Guid settings prefix * make _Guild inherit from EnvConfig * add webhook defaults * add python_news defaults to the server env * ad missing webhooks prefix * update bootstrapper logger name * update priority of the env loaded files According to Pydantic's docs: "Later files in the list/tuple will take priority over earlier files." * warn user that default value from PyDis' config will be used * add colours default config * add antispam config * update antispam references * add redis default cfg * add Stats, Cooldowns and CleanMessages consts This also includes their default values * add Metabase to constants This also includes its default values * add URLS to constants This also includes its default values * use the Field class to provide defaults This avoids overriding & changing the `fields` of the `Config` class "dynamically" * add keys constant class * add Guild conf * replace dash with underscore in script * appease linter * transform attributes of AntiSpam to dict when needed This ensures that the application stays backwards compatible * add root_validator for the colours class This enables the conversion from hex to int easily since it's not a supported type by pydantic * reinstate the role & channels combinations * rename URLS to URLs * add emojis & icons constants * add filter constants & their default values * remove all useless spaces * instantiate the keys class * add bot prefix to default env file * fetch Bot constants from env vars instead of the prefix ones * add Miscellaneous config * instantiate poor forgotten Miscellaneous config * add final touches to the constants module This includes removing dups, adding missing channels & fixing type casts * move all default values to constants.py This is done by using the `Field` class. It allows us to 1. Set defaults, in case the variables are not configured 2. Load them from a env variable under a specific name (for backwards comp) 3. load it from any env variable file that contains the right prefix * ignore all .env files * load BOT_TOKEN & GUILD_ID from .env * allow _GUILD to read its id from the `GUILD_ID` env var * base Webhooks settings off of a Webhook model * create necessary webhooks if non existent * appease flake8 docstrings error * make the script idempotent * update type hints * uppercase all consts * make webhook channel optional * add httpx to its own dependency group This group will be optional & only related to the bootstrapper * replace requests with httpx * pass client as param * include raise_for_status as a response hook * rename get_webhook to webhook_exists * update docstring of the constants module * use "." as a separator * update script to account for already created webhooks * make ANTI_SPAM_RULES a module level constant This ensures that flake8 doesn't complain about making a function call in the function's signature * remove the manual resolving of .env paths * update usages of AntiSpam constants * remove forgotten assignment of rule_config * remove useless assignments of env file names * delete default config-default.yml * update docstrings of CodeBlockCog to reference constants.py * add a poetry task that runs the bootstrapping script * add python-dotenv to the config-bootstrap group * update hook name to _raise_for_status * construct site_api in _URLs * remove __name__ == '__main__'guard * Revert "construct site_api in _URLs" This reverts commit 1c555c4280c6a0bdd452319cbd3ffcd0370f5d48. * remove usage of the Field class * update env var keys that the bootstrapping script needs * use API_KEYS.SITE_API as env var in docker compose instead of BOT_API_KEY * relock dependencies * update snekbox's defaults * add support for ot channels * rename help_system_forum to python_help * rename nomination_archive to nomination_voting_archive * rename appeals2 to appeals_2 * yeet sprinters role out * rename all big_brother_logs instances to big_brother The purpose is to adhere to what we have in prod * rename bootstrap_config.py to botstrap.py * update module name of the configure poetry task * update error messages to reflect the new keys needed for env variables * install dotenv as an extra with pydantic * update all prefixes to "_" (underscore) * log tuple of (channel_name, channel_id) in the config verifier * update needed default values for docker compose env var * relock dependencies * update forgotten delimiters & env prefixes
2023-03-07Allow The Unlicense (Unlicense) in pip-licensesGravatar Chris Lovering-1/+2
2023-03-07Update all dependencies to latestGravatar Chris Lovering-712/+846
2023-03-07Bump markdownify from 0.6.1 to 0.11.6 (#2429)Gravatar dependabot[bot]-13/+40
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: wookie184 <[email protected]>
2023-03-07Reduce long timeout to 28d instead of denying itGravatar mbaruh-3/+13
2023-03-07Bump SebastiaanZ/github-status-embed-for-discord from 0.2.1 to 0.3.0 (#2448)Gravatar dependabot[bot]-1/+1
Bumps [SebastiaanZ/github-status-embed-for-discord](https://github.com/SebastiaanZ/github-status-embed-for-discord) from 0.2.1 to 0.3.0. - [Release notes](https://github.com/SebastiaanZ/github-status-embed-for-discord/releases) - [Commits](https://github.com/SebastiaanZ/github-status-embed-for-discord/compare/v0.2.1...v0.3.0) --- updated-dependencies: - dependency-name: SebastiaanZ/github-status-embed-for-discord dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-06Bump actions/upload-artifact from 2 to 3Gravatar dependabot[bot]-1/+1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
2023-03-05Make sure channel parent isn't None (#2441)Gravatar Boris Muratov-1/+1
This shouldn't happen, but the type hint says it can so but just in case.
2023-03-05Group thread stats under parent channel (#2440)Gravatar Boris Muratov-6/+5
Also makes make the stat name slightly more robust to small name changes.
2023-03-05Migrate from role-based mutes to native timeoutsGravatar mbaruh-56/+85
- Makes use of the native timeout instead of adding the Muted role. - Renames all references to the "mute" infraction to "timeout", except in command aliases for ease of transition. - Maintains support for the old functionality (pardoning users with the muted role, applying timeout to users who rejoin and are not yet timed out because they originally had the role). This can be removed (the relevant parts are marked with TODOs) after there are no longer users with the old mute.
2023-03-03Bump redis from 4.3.5 to 4.4.2Gravatar dependabot[bot]-9/+8
Bumps [redis](https://github.com/redis/redis-py) from 4.3.5 to 4.4.2. - [Release notes](https://github.com/redis/redis-py/releases) - [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES) - [Commits](https://github.com/redis/redis-py/compare/v4.3.5...v4.4.2) --- updated-dependencies: - dependency-name: redis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
2023-03-03Bump sentry-sdk from 1.11.1 to 1.16.0Gravatar dependabot[bot]-5/+9
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.11.1 to 1.16.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.11.1...1.16.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
2023-03-03Bump action versions in CI (#2433)Gravatar ChrisJL-9/+7
2023-03-03Bump pydis-core from 9.5.0 to 9.5.1Gravatar dependabot[bot]-9/+9
Bumps [pydis-core](https://github.com/python-discord/bot-core) from 9.5.0 to 9.5.1. - [Release notes](https://github.com/python-discord/bot-core/releases) - [Changelog](https://github.com/python-discord/bot-core/blob/main/docs/changelog.rst) - [Commits](https://github.com/python-discord/bot-core/compare/v9.5.0...v9.5.1) --- updated-dependencies: - dependency-name: pydis-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]>
2023-03-03Bundle workflows into a "main" CI flow (#2425)Gravatar Amrou Bellalouna-84/+99
* bundle build & deploy into a single workflow * delete separate build & deploy wokrflows * trigger status embed on the new bundled "Build & Deploy" workflow * Call linting & build-deployment workflows from main * keep one empty line in workflow files * use v4 of k8s deploy * yeet kubectl version * use v3 of k8s-set-context * setup kubectl config using the setup-kubectl v3 action * use v2 of the checkout action * add dependabot config * add new line for dependabot.yml * update path of the sentry_release workflow * update path of the lint-test workflow * specify push branch * update the sentry_release workflow path, again * update sentry_release's trigger to workflow_call * update lint-test's trigger to workflow_call * remove extra line at the end * unify usage of quotes * update concurrency groups of reusable local workflows * appease our dear linter with a blank line * always run status embed * Revert "always run status embed" This reverts commit 2f69fd77b212337ff45bf7815783030bc6099452. * remove colons after workflow_call * remove empty line at the end * Revert "remove empty line at the end" This reverts commit 223bef4159c76f1968878fe312b5fbc16544549b. * echo event name in status embed * try running status embed on bot ci/cd wf * run ci/cd on push to main * reinstate the Lint & Test trigger for status embed * rename main wf name to "CI" This also triggers status embed on that name * add group-workflows to the list of branches * remove test step * trigger status embed on ci only * trigger main on main branch only * remove concurrency groups in lint-test & sentry-release workflows
2023-03-03Add CI to the list of trigger workflow runs (#2426)Gravatar Amrou Bellalouna-0/+1
Co-authored-by: ChrisJL <[email protected]>
2023-03-03Edit comment to match wookie's reviewGravatar Ibrahim-2/+3
2023-03-03Wookie's reviewGravatar Mohammad Ibrahim-1/+1
+ Double quotes for consistency + Using results["stdout"] instead of output so the warning is still displayed if the error doesn't fit in the message. + Using endswith so we don't need to hardcode the constant. Co-authored-by: wookie184 <[email protected]>
2023-03-01Add warning message when using `input`Gravatar Ibrahim-1/+7
2023-02-28add the `flags` key to the member_data dictionaryGravatar shtlrs-1/+1
The value 2 represents the `COMPLETED_ONBOARDING` flag, found here https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags
2023-02-28bump pydis-core to 9.5.0Gravatar shtlrs-1107/+1107
2023-02-27Include embed titles in all tags (#2419)Gravatar Mohammad Ibrahim-124/+327
* Add title and remove heading + also changed any mentioning of `!tags` command * Fixed yaml scan errors + using tabs instead of spaces + enclosed title in `comparison.md` with quotes * Implement ChrisLovering reviews + changed all "Name1 vs. Name2" to "Name1 vs. name2" + changed "python discord" to "Python Discord" in titles + fix typos + reverting hunk for `dotenv.md` + changed all title cases to sentence cases * fix grammar + changed "embed" to "embeds" * remove other ot channels mentioned except ot2 * Fix mistakenly removing a blank line
2023-02-27Implement shtlrs reviewsGravatar Ibrahim-14/+19
+ removed using of discord.User + update docstring for `get_command_ctx` + renamed user variables to member
2023-02-26Add line about the pastebin.Gravatar Steele-0/+2
Simply adds "For long code samples, you can use our pastebin" as a new final line.
2023-02-26Implement reviewsGravatar Ibrahim-64/+32
+ used both `discord.User` and `discord.Member` in typehinting as `InteractionResponse.user` returns `discord.User` object + removed `ErrorHandler()._can_run` + edited `try_get_tag` to use `bot.can_run` + removed `/tag list` + change `/tag get <name>` to `/tag <name>` + remove redundant `GUILD_ID` in `tags.py` + using `discord.abc.Messageable` because `ctx.channel` returns that instead of `Channel` Object
2023-02-25Fix timeit commands with backticks after command nameGravatar wookie184-9/+16
2023-02-24Add docstring info on file system support for evalGravatar Ionite-8/+7
2023-02-24Restore implicit no line nums when 0 lines behaviorGravatar Ionite-1/+1