aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-01-01 16:47:17 -0800
committerGravatar MarkKoz <[email protected]>2020-02-12 10:07:47 -0800
commit3bafbde6eddbecf3a987b4fe40da00ec79ce4bd4 (patch)
tree368b47a905951cb236006f346f3b1798b90a1dcc /tests
parentSync tests: test empty diff for identical roles (diff)
Sync tests: test diff for updated roles
Diffstat (limited to 'tests')
-rw-r--r--tests/bot/cogs/sync/test_roles.py43
1 files changed, 16 insertions, 27 deletions
diff --git a/tests/bot/cogs/sync/test_roles.py b/tests/bot/cogs/sync/test_roles.py
index 2a60e1fe2..31bf13933 100644
--- a/tests/bot/cogs/sync/test_roles.py
+++ b/tests/bot/cogs/sync/test_roles.py
@@ -3,7 +3,7 @@ import unittest
import discord
-from bot.cogs.sync.syncers import RoleSyncer
+from bot.cogs.sync.syncers import RoleSyncer, _Role
from tests import helpers
@@ -40,35 +40,24 @@ class RoleSyncerTests(unittest.TestCase):
self.assertEqual(actual_diff, expected_diff)
- def test_get_roles_for_sync_returns_roles_to_update_with_non_id_diff(self):
- """Roles to be synced are returned when non-ID attributes differ."""
- api_roles = {Role(id=41, name='old name', colour=35, permissions=0x8, position=1)}
- guild_roles = {Role(id=41, name='new name', colour=33, permissions=0x8, position=2)}
+ def test_diff_for_updated_roles(self):
+ """Only updated roles should be added to the updated set of the diff."""
+ db_roles = [
+ {"id": 41, "name": "old", "colour": 33, "permissions": 0x8, "position": 1},
+ {"id": 53, "name": "other", "colour": 55, "permissions": 0, "position": 3},
+ ]
+ guild_roles = [
+ {"id": 41, "name": "new", "colour": 33, "permissions": 0x8, "position": 1},
+ {"id": 53, "name": "other", "colour": 55, "permissions": 0, "position": 3},
+ ]
- self.assertEqual(
- get_roles_for_sync(guild_roles, api_roles),
- (set(), guild_roles, set())
- )
+ self.bot.api_client.get.return_value = db_roles
+ guild = self.get_guild(*guild_roles)
- def test_get_roles_only_returns_roles_that_require_update(self):
- """Roles that require an update should be returned as the second tuple element."""
- api_roles = {
- Role(id=41, name='old name', colour=33, permissions=0x8, position=1),
- Role(id=53, name='other role', colour=55, permissions=0, position=3)
- }
- guild_roles = {
- Role(id=41, name='new name', colour=35, permissions=0x8, position=2),
- Role(id=53, name='other role', colour=55, permissions=0, position=3)
- }
+ actual_diff = asyncio.run(self.syncer._get_diff(guild))
+ expected_diff = (set(), {_Role(**guild_roles[0])}, set())
- self.assertEqual(
- get_roles_for_sync(guild_roles, api_roles),
- (
- set(),
- {Role(id=41, name='new name', colour=35, permissions=0x8, position=2)},
- set(),
- )
- )
+ self.assertEqual(actual_diff, expected_diff)
def test_get_roles_returns_new_roles_in_first_tuple_element(self):
"""Newly created roles are returned as the first tuple element."""