def test_create_channel_category_full(self): parent1 = Channel( id=22222, type=ChannelType.GUILD_CATEGORY, name=DISCORD_TEXT_CATEGORY, ) parent2 = Channel( id=33333, type=ChannelType.GUILD_CATEGORY, name=DISCORD_TEXT_CATEGORY, ) channels_list = {parent1.id: parent1, parent2.id: parent2} # Make parent1 full. for i in range(MAX_CHANNELS_PER_CATEGORY): channels_list[parent1.id + i + 1] = Channel( id=parent1.id + i + 1, type=ChannelType.GUILD_TEXT, name="child", parent_id=parent1.id, ) # The next channel created should go under parent2. self.mock_client.guilds_channels_list.return_value = channels_list self.service.create_text_channel(DISCORD_GUILD_ID, "new", DISCORD_TEXT_CATEGORY) self.mock_client.guilds_channels_create.assert_called_once_with( DISCORD_GUILD_ID, ChannelType.GUILD_TEXT, "new", parent_id=parent2.id, ) # Make parent2 full. for i in range(MAX_CHANNELS_PER_CATEGORY): channels_list[parent2.id + i + 1] = Channel( id=parent2.id + i + 1, type=ChannelType.GUILD_TEXT, name="child", parent_id=parent2.id, ) # The next channel created should create a new parent. self.mock_client.guilds_channels_list.return_value = channels_list new_parent = Channel( id=44444, type=ChannelType.GUILD_CATEGORY, name=DISCORD_TEXT_CATEGORY, ) self.mock_client.guilds_channels_create.return_value = new_parent self.service.create_text_channel(DISCORD_GUILD_ID, "new", DISCORD_TEXT_CATEGORY) self.mock_client.guilds_channels_create.assert_has_calls([ # Create parent category channel first. mock.call( DISCORD_GUILD_ID, ChannelType.GUILD_CATEGORY, DISCORD_TEXT_CATEGORY, parent_id=None, ), # Create text channel under category created above. mock.call( DISCORD_GUILD_ID, ChannelType.GUILD_TEXT, "new", parent_id=44444, ), ])
def test_archive_channel_category_full(self): puzzles = Channel( id=33332, type=ChannelType.GUILD_CATEGORY, name=DISCORD_TEXT_CATEGORY, ) archive = Channel( id=33333, type=ChannelType.GUILD_CATEGORY, name=DISCORD_ARCHIVE_CATEGORY, ) channels_list = {archive.id: archive, puzzles.id: puzzles} # Make archive full. for i in range(MAX_CHANNELS_PER_CATEGORY): channels_list[archive.id + i + 1] = Channel( id=archive.id + i + 1, type=ChannelType.GUILD_TEXT, name="child", parent_id=archive.id, ) # Create channel with no parent. channel1 = Channel(id=22222, type=ChannelType.GUILD_VOICE, name="channel1") # The next channel archived should create a new archive. new_archive = Channel( id=44444, type=ChannelType.GUILD_CATEGORY, name=DISCORD_ARCHIVE_CATEGORY, ) self.mock_client.guilds_channels_list.return_value = channels_list self.mock_client.guilds_channels_create.return_value = new_archive self.service.archive_channel(DISCORD_GUILD_ID, channel1.id, DISCORD_ARCHIVE_CATEGORY) self.mock_client.guilds_channels_create.assert_called_once_with( DISCORD_GUILD_ID, ChannelType.GUILD_CATEGORY, DISCORD_ARCHIVE_CATEGORY, parent_id=None, ) # Unarchive to make archive not full. channels_list[new_archive.id] = new_archive self.mock_client.guilds_channels_list.return_value = channels_list self.service.unarchive_text_channel(DISCORD_GUILD_ID, archive.id + 1, DISCORD_TEXT_CATEGORY) # Archive another channel. This should go inside the first archive. channels_list.pop(archive.id + 1) self.mock_client.guilds_channels_list.return_value = channels_list channel2 = Channel(id=22223, type=ChannelType.GUILD_VOICE, name="channel2") self.service.archive_channel(DISCORD_GUILD_ID, channel2.id, DISCORD_ARCHIVE_CATEGORY) self.mock_client.channels_modify.assert_has_calls([ mock.call(channel1.id, parent_id=new_archive.id), mock.call(archive.id + 1, parent_id=puzzles.id), mock.call(channel2.id, parent_id=archive.id), ])
def test_nsfw_channel(): channel = Channel(name='test', nsfw=True, type=ChannelType.GUILD_TEXT) assert channel.is_nsfw