| Commit message (Collapse) | Author | Lines |
|
- Update test cases for in_channel_check
|
|
|
|
- Change doc string for cog_check method
|
|
- 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 docstrings for `build_defcon_msg()` and `send_defcon_log()` - It is now taking in an `Action` directly instead of a string.
|
|
- 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.
|
|
- Renamed `DefconInfoLog` to `Action`
- Added `ActionInfo` namedtuple.
- Use `Action` consistently for `_defcon_action()` and `send_defcon_log()`
|
|
|
|
|
|
|
|
|
|
- Further unify defcon actions in `_defcon_action` - Thanks to Mark's suggestions.
- Changed from a Dict to an Enum for defcon log info.
|
|
|
|
|
|
#### 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.
|
|
|
|
Allow rule alias to take rule numbers, passes them to the `site rules`
command. Rules are now 1-indexed to conform with the representation on
the website.
|
|
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
|