def test_mock_guild_alternative_arguments(self): core_developer = helpers.MockRole(name="Core Developer", position=2) guild = helpers.MockGuild( roles=[core_developer], members=[helpers.MockMember(id=54321)], ) self.assertListEqual( guild.roles, [helpers.MockRole(name="@everyone", position=1, id=0), core_developer], ) self.assertListEqual(guild.members, [helpers.MockMember(id=54321)])
def test_mock_member_accepts_dynamic_arguments(self): member = helpers.MockMember( nick="Dino Man", colour=discord.Colour.default(), ) self.assertEqual(member.nick, "Dino Man") self.assertEqual(member.colour, discord.Colour.default())
def test_mock_member_alternative_arguments(self): core_developer = helpers.MockRole(name="Core Developer", position=2) member = helpers.MockMember(name="Mark", id=12345, roles=[core_developer]) self.assertEqual(member.name, "Mark") self.assertEqual(member.id, 12345) self.assertListEqual( member.roles, [helpers.MockRole(name="@everyone", position=1, id=0), core_developer], ) self.assertEqual(member.mention, "@Mark")
def test_mock_member_default_initialization(self): member = helpers.MockMember() # The `spec` argument makes sure `isistance` checks with `discord.Member` pass self.assertIsInstance(member, discord.Member) self.assertEqual(member.name, "member") self.assertListEqual( member.roles, [helpers.MockRole(name="@everyone", position=1, id=0)] ) self.assertEqual(member.mention, "@member")
def test_mocks_rejects_access_to_attributes_not_part_of_spec(self): mocks = ( helpers.MockGuild(), helpers.MockRole(), helpers.MockMember(), helpers.MockBot(), helpers.MockContext(), helpers.MockTextChannel(), helpers.MockMessage(), ) for mock in mocks: with self.subTest(mock=mock), self.assertRaises(AttributeError): mock.the_cake_is_a_lie
def test_mocks_allows_access_to_attributes_part_of_spec(self): mocks = ( (helpers.MockGuild(), "name"), (helpers.MockRole(), "hoist"), (helpers.MockMember(), "display_name"), (helpers.MockBot(), "user"), (helpers.MockContext(), "invoked_with"), (helpers.MockTextChannel(), "last_message"), (helpers.MockMessage(), "mention_everyone"), ) for mock, valid_attribute in mocks: with self.subTest(mock=mock): try: getattr(mock, valid_attribute) except AttributeError: msg = f"accessing valid attribute `{valid_attribute}` raised an AttributeError" self.fail(msg)