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`.
| | | | * | | | | | Fixing formatting for timedelta.Gravatar Shirayuki Nekomata2019-10-21-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.
| | | | * | | | | | Update defcon.pyGravatar Shirayuki Nekomata2019-10-21-11/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Update docstrings for `build_defcon_msg()` and `send_defcon_log()` - It is now taking in an `Action` directly instead of a string.
| | | | * | | | | | Update defcon.pyGravatar Shirayuki Nekomata2019-10-21-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.
| | | | * | | | | | Update defcon.pyGravatar Shirayuki Nekomata2019-10-21-22/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Renamed `DefconInfoLog` to `Action` - Added `ActionInfo` namedtuple. - Use `Action` consistently for `_defcon_action()` and `send_defcon_log()`
| | | | * | | | | | Update defcon.pyGravatar Shirayuki Nekomata2019-10-19-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.
| | | | * | | | | | Fix defcon having wrong text when disabling.Gravatar Shirayuki Nekomata2019-10-17-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.
| | | | | | * | | | Modify in_channel_check to accept list of channelsGravatar Atul Mishra2019-10-22-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Update test cases for in_channel_check
| | | | | | * | | | Fix typo in channel nameGravatar Atul Mishra2019-10-21-1/+1
| | | | | | | | | |
| | | | | | * | | | Add #admin-spam channel to moderation channels listGravatar Atul Mishra2019-10-21-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Change doc string for cog_check method
| | | | | | * | | | Add missing channels to the configGravatar Atul Mishra2019-10-19-0/+2
| | | | | | | | | |
| | | | | | * | | | Add moderation channels check to cog_checkGravatar Atul Mishra2019-10-19-2/+11
| | | | | |/ / / / | | | | |/| | | |
| | | | | | * | | Substract one to now calculationGravatar Akarys422019-10-23-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid aving `Your reminder will arrive in 59 minutes and 59 seconds!` instead of `Your reminder will arrive in 1 hour!`
| | | | | | * | | Update send_reminder message creationGravatar Akarys422019-10-21-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is now truly backward compatible and use a more DRY method
| | | | | | * | | Merge branch 'master' of https://github.com/python-discord/bot into reminder-upGravatar Akarys422019-10-19-1998/+2072
| | | | | | |\ \ \ | |_|_|_|_|_|/ / / |/| | | | | | | |
* | | | | | | | | Fix rule alias. (#537)Gravatar scragly2019-10-16-6/+6
|\ \ \ \ \ \ \ \ \ | |_|_|_|/ / / / / |/| | | | | | | | Fix rule alias.
| * | | | | | | | Merge branch 'master' into rule-numGravatar scragly2019-10-16-45/+61
| |\ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | |
* | | | | | | | | Merge pull request #511 from python-discord/off-topic-checkGravatar Kieran Siek2019-10-15-45/+61
|\ \ \ \ \ \ \ \ \ | |_|_|_|/ / / / / |/| | | | | | | | Prevent too similar off-topic channel names
| * | | | | | | | Merge branch 'master' into off-topic-checkGravatar Kieran Siek2019-10-15-47/+230
| |\ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | |