aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| | | | * | | | | | | | | | 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.
| * | | | | | | | | | 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
| | |\ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / | |/| | | | | | | | |
| * | | | | | | | | | Create the !mention command. (#493)Gravatar scragly2019-10-15-3/+58
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create the !mention command. Co-authored-by: null <[email protected]>
| | * \ \ \ \ \ \ \ \ \ Merge branch 'master' into masterGravatar scragly2019-10-15-1948/+1951
| | |\ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / | |/| | | | | | | | | |
| * | | | | | | | | | | Merge pull request #503 from avayert/masterGravatar Johannes Christ2019-10-14-4/+130
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | Add raw command
| | * | | | | | | | | | | Implement a bypassable cooldown decoratorGravatar Ava2019-10-14-3/+50
| | | | | | | | | | | | |
| | * | | | | | | | | | | Small code review fixesGravatar Ava2019-10-11-3/+2
| | | | | | | | | | | | |
| | * | | | | | | | | | | Fix linting errorsGravatar Ava2019-10-08-7/+8
| | | | | | | | | | | | |
| | * | | | | | | | | | | Fix wrong importGravatar Ava2019-10-08-2/+1
| | | | | | | | | | | | |
| | * | | | | | | | | | | Add raw commandGravatar Ava2019-10-08-3/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #334
| * | | | | | | | | | | | Merge pull request #378 from larswijn/djangoGravatar Johannes Christ2019-10-14-44/+46
| |\ \ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|/ / / / / | |/| | | | | | | | | | | Change pep command to use `.txt` by default
| | * | | | | | | | | | | Update utils.pyGravatar larswijn2019-10-13-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Switch around trying order (txt first, then rst)
| | * | | | | | | | | | | Completely re-submit fileGravatar larswijn2019-07-01-44/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to fix the write history of the file
| | | | * | | | | | | | | Use `bot.utils.humanize_delta`, tidy bot response, remove stray f from f-stringGravatar mathsman51332019-10-12-15/+5
| | | | | | | | | | | | |
| | | | * | | | | | | | | Update !mentionGravatar mathsman51332019-10-06-14/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Lock the role if the message wait has timed out - Sleep, lock role and send notification if mention by staff member found. - Lock role and send notification if mention by non-staff member found.
| | | | * | | | | | | | | fix linterGravatar mathsman51332019-10-05-1/+2
| | | | | | | | | | | | |
| | | | * | | | | | | | | properly send message with `asyncio.run`Gravatar mathsman51332019-10-05-3/+7
| | | | | | | | | | | | |
| | | | * | | | | | | | | add requested changes for reviewGravatar mathsman51332019-10-05-15/+28
| | | | | | | | | | | | |
| | | | * | | | | | | | | revert back `tests.cogs.test_information`. I got them in the wrong order...Gravatar mathsman51332019-10-05-2/+2
| | | | | | | | | | | | |
| | | | * | | | | | | | | revert back `tests.cogs.test_information`Gravatar mathsman51332019-10-05-3/+4
| | | | | | | | | | | | |
| | | | * | | | | | | | | Create the !mention commandGravatar mathsman51332019-10-05-8/+47
| | | | | |_|_|_|_|_|/ / | | | | |/| | | | | | |
| | | | | * | | | | | | Merge branch 'master' into off-topic-checkGravatar kosayoda2019-10-15-1882/+2058
| | | | | |\ \ \ \ \ \ \ | | |_|_|_|/ / / / / / / | |/| | | | | | | | | |
| | | | | * | | | | | | Utilize __str__ of discord.Member in logging and outputGravatar kosayoda2019-10-12-47/+33
| | | | | | | | | | | |
| | | | | * | | | | | | Add !otn forceadd command.Gravatar kosayoda2019-10-11-0/+8
| | | | | | | | | | | |
| | | | | * | | | | | | Add check to !otn add to prevent too similar names.Gravatar kosayoda2019-10-11-2/+24
| | | | | | | | | | | |
| | | | | | | | * | | | Prepend emoji indicative of success of !evalGravatar kosayoda2019-10-24-1/+12
| | |_|_|_|_|_|/ / / / | |/| | | | | | | | |
| * | | | | | | | | | Deployment triggerGravatar Joseph Banks2019-10-12-0/+0
| | | | | | | | | | |
* | | | | | | | | | | Remove trailing commaGravatar mathsman51332019-11-16-1/+1
| | | | | | | | | | |
* | | | | | | | | | | Apply suggestions from reviewGravatar mathsman51332019-11-16-24/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Description was the same as prefix parameter of paginator - Cleanup is redundant pending closure of #514 - Clean/fix couple if statements in help.py
* | | | | | | | | | | Show a maximum of 8 commands per page rather than 5.Gravatar mathsman51332019-11-03-1/+1
| | | | | | | | | | |
* | | | | | | | | | | Few changes to keep formatting same as currentGravatar mathsman51332019-10-13-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Change `add_field` back to `description` for error message possible matches - Only add `Commands` and `Subcommands` if subcommands exist to cog/group/command help
* | | | | | | | | | | Add a special case for when the help command invokes wolfram checks.Gravatar mathsman51332019-10-13-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Before, running `!help` would invoke the cooldown check, and increase the cooldown counter unnecessarily as no wolfram API calls were being made. - Once `!help` was called enough, the bot would send an error embed to let you know your wolfram cooldown has expired.
* | | | | | | | | | | Minor formatting changes to align with current help.Gravatar mathsman51332019-10-12-2/+2
| | | | | | | | | | |
* | | | | | | | | | | Refactor the `Help` command.Gravatar mathsman51332019-10-12-475/+287
|/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - `redirect_output` has been adjusted to run the `delete_invocation` inside a task as the help command will wait for that to run before sending the help or doing anything else. - `pagination` has been adjusted to support deleting the paginated message if `cleanup` is True, and an optional `description` that is present through all pages of pagination. - The help command has been refactored to subclass `commands.HelpCommand`. This means that it now supports methods such as `ctx.send_help(ctx.command)`. - `help_cleanup` provides the opportunity to use the :x: reaction to cleanup help even with no pagination. - Pagination purely happens through the `LinePaginator`, forcing a pagination session with 1 line per page where we format the page style before sending it through. - Categories are properly dealt with by finding a match and sending a seperate help where a named tuple of the Category name, description and relevant cogs is the only parameter. - Choices for when a command was not found has been updated to include category names, cog names, aliases of group and command names, and include all subcommands and aliases. This should provide a more helpful output when an error message is sent - Sending command, group, cog, category and bot help has been split into different functions that are called from `command_callback`. This provides an easier way to alter future changes, and cleans up code considerably. - Important note: no outward facing formatting should have changed. Any desired changes can be discussed in review.