aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-06-17 16:46:43 -0700
committerGravatar MarkKoz <[email protected]>2020-06-17 16:46:43 -0700
commitebc0eae42c1da67f61f040a67bc1b70e53a6f97e (patch)
tree44ae1019ffc2a40bbdf745ecde7a6c2a9f470275
parentSync: ignore 404s in on_user_update (diff)
Sync: fix guild ID check
Need to compare the IDs against each other rather than the Guild object against the ID.
-rw-r--r--bot/cogs/sync/cog.py12
-rw-r--r--tests/bot/cogs/sync/test_cog.py35
2 files changed, 25 insertions, 22 deletions
diff --git a/bot/cogs/sync/cog.py b/bot/cogs/sync/cog.py
index 578cccfc9..5ace957e7 100644
--- a/bot/cogs/sync/cog.py
+++ b/bot/cogs/sync/cog.py
@@ -47,7 +47,7 @@ class Sync(Cog):
@Cog.listener()
async def on_guild_role_create(self, role: Role) -> None:
"""Adds newly create role to the database table over the API."""
- if role.guild != constants.Guild.id:
+ if role.guild.id != constants.Guild.id:
return
await self.bot.api_client.post(
@@ -64,7 +64,7 @@ class Sync(Cog):
@Cog.listener()
async def on_guild_role_delete(self, role: Role) -> None:
"""Deletes role from the database when it's deleted from the guild."""
- if role.guild != constants.Guild.id:
+ if role.guild.id != constants.Guild.id:
return
await self.bot.api_client.delete(f'bot/roles/{role.id}')
@@ -72,7 +72,7 @@ class Sync(Cog):
@Cog.listener()
async def on_guild_role_update(self, before: Role, after: Role) -> None:
"""Syncs role with the database if any of the stored attributes were updated."""
- if after.guild != constants.Guild.id:
+ if after.guild.id != constants.Guild.id:
return
was_updated = (
@@ -103,7 +103,7 @@ class Sync(Cog):
previously left), it will update the user's information. If the user is not yet known by
the database, the user is added.
"""
- if member.guild != constants.Guild.id:
+ if member.guild.id != constants.Guild.id:
return
packed = {
@@ -135,7 +135,7 @@ class Sync(Cog):
@Cog.listener()
async def on_member_remove(self, member: Member) -> None:
"""Set the in_guild field to False when a member leaves the guild."""
- if member.guild != constants.Guild.id:
+ if member.guild.id != constants.Guild.id:
return
await self.patch_user(member.id, json={"in_guild": False})
@@ -143,7 +143,7 @@ class Sync(Cog):
@Cog.listener()
async def on_member_update(self, before: Member, after: Member) -> None:
"""Update the roles of the member in the database if a change is detected."""
- if after.guild != constants.Guild.id:
+ if after.guild.id != constants.Guild.id:
return
if before.roles != after.roles:
diff --git a/tests/bot/cogs/sync/test_cog.py b/tests/bot/cogs/sync/test_cog.py
index e5be14391..120bc991d 100644
--- a/tests/bot/cogs/sync/test_cog.py
+++ b/tests/bot/cogs/sync/test_cog.py
@@ -134,6 +134,9 @@ class SyncCogListenerTests(SyncCogTestCase):
self.guild_id_patcher = mock.patch("bot.cogs.sync.cog.constants.Guild.id", 5)
self.guild_id = self.guild_id_patcher.start()
+ self.guild = helpers.MockGuild(id=self.guild_id)
+ self.other_guild = helpers.MockGuild(id=0)
+
def tearDown(self):
self.guild_id_patcher.stop()
@@ -148,14 +151,14 @@ class SyncCogListenerTests(SyncCogTestCase):
"permissions": 8,
"position": 23,
}
- role = helpers.MockRole(**role_data, guild=self.guild_id)
+ role = helpers.MockRole(**role_data, guild=self.guild)
await self.cog.on_guild_role_create(role)
self.bot.api_client.post.assert_called_once_with("bot/roles", json=role_data)
async def test_sync_cog_on_guild_role_create_ignores_guilds(self):
"""Events from other guilds should be ignored."""
- role = helpers.MockRole(guild=0)
+ role = helpers.MockRole(guild=self.other_guild)
await self.cog.on_guild_role_create(role)
self.bot.api_client.post.assert_not_awaited()
@@ -163,14 +166,14 @@ class SyncCogListenerTests(SyncCogTestCase):
"""A DELETE request should be sent."""
self.assertTrue(self.cog.on_guild_role_delete.__cog_listener__)
- role = helpers.MockRole(id=99, guild=self.guild_id)
+ role = helpers.MockRole(id=99, guild=self.guild)
await self.cog.on_guild_role_delete(role)
self.bot.api_client.delete.assert_called_once_with("bot/roles/99")
async def test_sync_cog_on_guild_role_delete_ignores_guilds(self):
"""Events from other guilds should be ignored."""
- role = helpers.MockRole(guild=0)
+ role = helpers.MockRole(guild=self.other_guild)
await self.cog.on_guild_role_delete(role)
self.bot.api_client.delete.assert_not_awaited()
@@ -198,8 +201,8 @@ class SyncCogListenerTests(SyncCogTestCase):
after_role_data = role_data.copy()
after_role_data[attribute] = 876
- before_role = helpers.MockRole(**role_data, guild=self.guild_id)
- after_role = helpers.MockRole(**after_role_data, guild=self.guild_id)
+ before_role = helpers.MockRole(**role_data, guild=self.guild)
+ after_role = helpers.MockRole(**after_role_data, guild=self.guild)
await self.cog.on_guild_role_update(before_role, after_role)
@@ -213,7 +216,7 @@ class SyncCogListenerTests(SyncCogTestCase):
async def test_sync_cog_on_guild_role_update_ignores_guilds(self):
"""Events from other guilds should be ignored."""
- role = helpers.MockRole(guild=0)
+ role = helpers.MockRole(guild=self.other_guild)
await self.cog.on_guild_role_update(role, role)
self.bot.api_client.put.assert_not_awaited()
@@ -221,7 +224,7 @@ class SyncCogListenerTests(SyncCogTestCase):
"""Member should be patched to set in_guild as False."""
self.assertTrue(self.cog.on_member_remove.__cog_listener__)
- member = helpers.MockMember(guild=self.guild_id)
+ member = helpers.MockMember(guild=self.guild)
await self.cog.on_member_remove(member)
self.cog.patch_user.assert_called_once_with(
@@ -231,7 +234,7 @@ class SyncCogListenerTests(SyncCogTestCase):
async def test_sync_cog_on_member_remove_ignores_guilds(self):
"""Events from other guilds should be ignored."""
- member = helpers.MockMember(guild=0)
+ member = helpers.MockMember(guild=self.other_guild)
await self.cog.on_member_remove(member)
self.cog.patch_user.assert_not_awaited()
@@ -241,8 +244,8 @@ class SyncCogListenerTests(SyncCogTestCase):
# Roles are intentionally unsorted.
before_roles = [helpers.MockRole(id=12), helpers.MockRole(id=30), helpers.MockRole(id=20)]
- before_member = helpers.MockMember(roles=before_roles, guild=self.guild_id)
- after_member = helpers.MockMember(roles=before_roles[1:], guild=self.guild_id)
+ before_member = helpers.MockMember(roles=before_roles, guild=self.guild)
+ after_member = helpers.MockMember(roles=before_roles[1:], guild=self.guild)
await self.cog.on_member_update(before_member, after_member)
@@ -263,8 +266,8 @@ class SyncCogListenerTests(SyncCogTestCase):
with self.subTest(attribute=attribute):
self.cog.patch_user.reset_mock()
- before_member = helpers.MockMember(**{attribute: old_value}, guild=self.guild_id)
- after_member = helpers.MockMember(**{attribute: new_value}, guild=self.guild_id)
+ before_member = helpers.MockMember(**{attribute: old_value}, guild=self.guild)
+ after_member = helpers.MockMember(**{attribute: new_value}, guild=self.guild)
await self.cog.on_member_update(before_member, after_member)
@@ -272,7 +275,7 @@ class SyncCogListenerTests(SyncCogTestCase):
async def test_sync_cog_on_member_update_ignores_guilds(self):
"""Events from other guilds should be ignored."""
- member = helpers.MockMember(guild=0)
+ member = helpers.MockMember(guild=self.other_guild)
await self.cog.on_member_update(member, member)
self.cog.patch_user.assert_not_awaited()
@@ -329,7 +332,7 @@ class SyncCogListenerTests(SyncCogTestCase):
member = helpers.MockMember(
discriminator="1234",
roles=[helpers.MockRole(id=22), helpers.MockRole(id=12)],
- guild=self.guild_id,
+ guild=self.guild,
)
data = {
@@ -376,7 +379,7 @@ class SyncCogListenerTests(SyncCogTestCase):
async def test_sync_cog_on_member_join_ignores_guilds(self):
"""Events from other guilds should be ignored."""
- member = helpers.MockMember(guild=0)
+ member = helpers.MockMember(guild=self.other_guild)
await self.cog.on_member_join(member)
self.bot.api_client.post.assert_not_awaited()
self.bot.api_client.put.assert_not_awaited()