aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* Make test_token_remover use our discord MocksGravatar Sebastiaan Zeeff2019-10-14-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.
* Use `MockBot`.Gravatar Johannes Christ2019-10-14-3/+3
|
* Move the `token_remover` cog tests to `unittest`.Gravatar Johannes Christ2019-10-14-0/+139
|
* Merge branch 'unittest-migration' of github.com:python-discord/bot into ↵Gravatar Sebastiaan Zeeff2019-10-14-0/+26
|\ | | | | | | unittest-migration
| * Merge pull request #531 from python-discord/unittest-bot-constantsGravatar Johannes Christ2019-10-14-0/+26
| |\ | | | | | | Migrate `test_constants` to unittest
| | * Migrate test_constants to unittestGravatar Sebastiaan Zeeff2019-10-14-0/+26
| |/ | | | | | | | | Migrates the `test_constants.py` file to unittest. As with the pytest version, there is not yet support to test container types.
* / Add more specialized Mocks to tests.helpersGravatar Sebastiaan Zeeff2019-10-14-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.
* Remove empty tests.cogs folderGravatar Sebastiaan Zeeff2019-10-14-0/+0
|
* Merge branch 'cogs-security-unittest' into unittest-migrationGravatar Sebastiaan Zeeff2019-10-14-0/+59
|\
| * Move test_security to tests.bot.cogsGravatar Sebastiaan Zeeff2019-10-14-0/+0
| |
| * Use `MockBot` and `MockContext`.Gravatar Johannes Christ2019-10-13-3/+3
| |
| * Move the `security` cog tests to `unittest`.Gravatar Johannes Christ2019-10-12-0/+59
| |
* | Merge branch 'pagination-tests-to-unittest' into unittest-migrationGravatar Sebastiaan Zeeff2019-10-14-0/+36
|\ \
| * | Move test_pagination to tests.bot subdirGravatar Sebastiaan Zeeff2019-10-14-0/+0
| | |
| * | Move `tests.test_pagination` to `unittest`.Gravatar Johannes Christ2019-10-12-0/+36
| |/
* | Move sync tests to tests.bot.cogs.syncGravatar Sebastiaan Zeeff2019-10-13-0/+0
| |
* | Merge branch 'cogs-antispam-unittest' into unittest-migrationGravatar Sebastiaan Zeeff2019-10-13-0/+35
|\ \
| * | Move test_antispam.py to tests.bot.cogsGravatar Sebastiaan Zeeff2019-10-13-0/+0
| | |
| * | Move the `antispam` cog tests to `unittest`.Gravatar Johannes Christ2019-10-12-0/+35
| |/
* | Merge branch 'rules-attachment-tests-unittest' into unittest-migrationGravatar Sebastiaan Zeeff2019-10-13-0/+52
|\ \
| * | Move test_attachments.py to tests/bot/rules dirGravatar Sebastiaan Zeeff2019-10-13-0/+0
| | |
| * | Move the `rules.attachments` module tests to `unittest`.Gravatar Johannes Christ2019-10-12-0/+52
| |/
* | Merge branch 'resources-to-unittest' into unittest-migrationGravatar Sebastiaan Zeeff2019-10-13-0/+17
|\ \
| * | Add subTest + move test_resource to resources subdirGravatar Sebastiaan Zeeff2019-10-13-1/+2
| | | | | | | | | | | | | | | | | | | | | I've added a `self.subTest` to the `name` loop so we still test and get output for all names in the list if one of them fails the test. In addition, I've moved it to the `tests/bot/resources` subdirectory.
| * | Move `tests.test_resources` to `unittest`.Gravatar Johannes Christ2019-10-12-0/+16
| |/
* | Merge pull request #520 from python-discord/sync-cog-to-unittestGravatar Sebastiaan Zeeff2019-10-13-0/+210
|\ \ | |/ |/| Move the `sync` cog tests to `unittest`.
| * Move the `sync` cog tests to `unittest`.Gravatar Johannes Christ2019-10-12-0/+210
|/
* Update README.mdGravatar Sebastiaan Zeeff2019-10-11-8/+7
|
* Make textual changes to testing guideGravatar Sebastiaan Zeeff2019-10-11-20/+34
| | | | | I've made some textual changes to the testing guidelines defined in README.md.
* Change pipeline testrunner to xmlrunnerGravatar Sebastiaan Zeeff2019-10-11-17/+31
| | | | | | | | | I have change the testrunner from `unittest` to `xmlrunner` in the Azure pipeline to be able to publish our test results on Azure. This is the same runner as `site` uses to generate XML reports. In addition, I've cleaned up some small mistakes in docstrings and `README.md`.
* Add tests for tests.baseGravatar Sebastiaan Zeeff2019-10-11-11/+31
| | | | | | | | | | | I forgot to test some aspects of the `tests.base` module, including some branches of the `self.assertNotLogs` method. I've corrected that by including a couple of tests. I also removed the test result publishing from the Azure pipeline, since I've not configured an XML test runner yet. The coverage report is still published, of course and test output will be available in standard out, so information is readily available.
* Migrate pytest to unittestGravatar Sebastiaan Zeeff2019-10-11-1285/+1567
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After a discussion in the core developers channel, we have decided to migrate from `pytest` to `unittest` as the testing framework. This commit sets up the repository to use `unittest` and migrates the first couple of tests files to the new framework. What I have done to migrate to `unitest`: - Removed all `pytest` test files, since they are incompatible. - Removed `pytest`-related dependencies from the Pipfile. - Added `coverage.py` to the Pipfile dev-packages and relocked. - Added convenience scripts to Pipfile for running the test suite. - Adjust to `azure-pipelines.yml` to use `coverage.py` and `unittest`. - Migrated four test files from `pytest` to `unittest` format. In addition, I've added five helper Mock subclasses in `helpers.py` and created a `TestCase` subclass in `base.py` to add an assertion that asserts that no log records were logged within the context of the context manager. Obviously, these new utility functions and classes are fully tested in their respective `test_` files. Finally, I've started with an introductory guide for writing tests for our bot in `README.md`.
* Merge pull request #505 from python-discord/user-log-display-name-changesGravatar Mark2019-10-09-1/+6
|\ | | | | Ensure display name changes are logged to the user-log
| * Merge branch 'master' into user-log-display-name-changesGravatar Mark2019-10-09-2/+8
| |\ | |/ |/|
* | Merge pull request #504 from python-discord/show-reason-bot-actor-infractionsGravatar Mark2019-10-08-2/+8
|\ \ | | | | | | Show the reason in infraction confirmation message if the actor is the bot
| * | Show infraction reason when the bot is the actorGravatar Sebastiaan Zeeff2019-10-08-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
| * | Set bot as actor of antispam infractionsGravatar Sebastiaan Zeeff2019-10-08-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.
| * Ensure display name changes are loggedGravatar Sebastiaan Zeeff2019-10-08-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
* Merge pull request #462 from python-discord/moderation-cleanupGravatar Sebastiaan Zeeff2019-10-08-1558/+1306
|\ | | | | Refactors the moderation utilities.
| * Merge branch 'master' into moderation-cleanupGravatar Sebastiaan Zeeff2019-10-08-19/+286
| |\ | |/ |/|
* | Merge pull request #498 from fiskenslakt/feat/attachment-spam-thresholdGravatar S. Co12019-10-06-1/+1
|\ \ | | | | | | Feat/attachment spam threshold
| * | Update max threshold for attachmentsGravatar Derek2019-10-06-1/+1
|/ /
* | Merge pull request #492 from python-discord/doc-fixGravatar S. Co12019-10-06-0/+3
|\ \ | | | | | | Fix error when symbol_id cannot be found in doc HTML
| * \ Merge branch 'master' into doc-fixGravatar Chris G2019-10-04-3/+258
| |\ \ | |/ / |/| |
* | | Merge pull request #441 from python-discord/add-role-info-commandGravatar Chris G2019-10-04-1/+97
|\ \ \ | | | | | | | | Add role info command
| * \ \ Merge branch 'master' into add-role-info-commandGravatar Chris G2019-10-04-37/+288
| |\ \ \ | |/ / / |/| | |
* | | | Merge pull request #490 from python-discord/bb-previous-reasonGravatar Chris G2019-10-04-2/+39
|\ \ \ \ | | | | | | | | | | Show previous watch reason and total after invoking watch command
| * \ \ \ Merge branch 'master' into bb-previous-reasonGravatar Chris G2019-10-04-0/+122
| |\ \ \ \ | |/ / / / |/| | | |
* | | | | Merge pull request #473 from python-discord/ISODate-converterGravatar Mark2019-10-04-0/+122
|\ \ \ \ \ | | | | | | | | | | | | Add converter for ISO-formatted datetime strings
| * \ \ \ \ Merge branch 'master' into ISODate-converterGravatar Mark2019-10-04-38/+130
| |\ \ \ \ \ | |/ / / / / |/| | | | |