diff options
Diffstat (limited to '')
| -rw-r--r-- | tests/bot/cogs/sync/test_roles.py | 43 | 
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.""" | 
