def test_card_rarity_number(self): result = filterArguments("kokoro", "sr", "8") self.assertIsNone(result.failure) self.assertIsNotNone(result.success) self.assertEqual(type(result.success), FilteredArguments) success: FilteredArguments = result.success self.assertEqual(success.char, Character.Kokoro) self.assertEqual(success.rarity, Rarity.Sr) self.assertIsNone(success.attr) self.assertFalse(success.df) self.assertFalse(success.last) self.assertEqual(success.position, 8) self.assertIsNone(success.title)
def test_card_df(self): result = filterArguments("kokoro", "df") self.assertIsNone(result.failure) self.assertIsNotNone(result.success) self.assertEqual(type(result.success), FilteredArguments) success: FilteredArguments = result.success self.assertEqual(success.char, Character.Kokoro) self.assertIsNone(success.rarity) self.assertIsNone(success.attr) self.assertTrue(success.df) self.assertTrue(success.last) self.assertIsNone(success.position) self.assertIsNone(success.title)
def test_card_alias(self): result = filterArguments("Yukinya") self.assertIsNone(result.failure) self.assertIsNotNone(result.success) self.assertEqual(type(result.success), FilteredArguments) success: FilteredArguments = result.success self.assertEqual(success.char, Character.Yukina) self.assertEqual(success.rarity, Rarity.Ssr) self.assertIsNone(success.attr) self.assertFalse(success.df) self.assertTrue(success.last) self.assertIsNone(success.position) self.assertIsNone(success.title)
def test_title(self): result = filterArguments("title", "maritime", "detective") self.assertIsNone(result.failure) self.assertIsNotNone(result.success) self.assertEqual(type(result.success), FilteredArguments) success: FilteredArguments = result.success self.assertIsNone(success.char) self.assertIsNone(success.rarity, Rarity.Ssr) self.assertIsNone(success.attr) self.assertFalse(success.df) self.assertFalse(success.last) self.assertIsNone(success.position) self.assertEqual(success.title, "maritime detective")
def test_card_last_rarity_attr_misspell(self): result = filterArguments("kokoro", "last", "ssr", "hpy") self.assertIsNone(result.failure) self.assertIsNotNone(result.success) self.assertEqual(type(result.success), FilteredArguments) success: FilteredArguments = result.success self.assertEqual(success.char, Character.Kokoro) self.assertEqual(success.rarity, Rarity.Ssr) self.assertIsNone(success.attr) self.assertFalse(success.df) self.assertTrue(success.last) self.assertIsNone(success.position) self.assertIsNone(success.title)
def test_card_last_rarity_attr_together(self): result = filterArguments("kokoro", "lastsr", "happy") self.assertIsNone(result.failure) self.assertIsNotNone(result.success) self.assertEqual(type(result.success), FilteredArguments) success: FilteredArguments = result.success self.assertEqual(success.char, Character.Kokoro) self.assertEqual(success.rarity, Rarity.Sr) self.assertEqual(success.attr, Attribute.Happy) self.assertFalse(success.df) self.assertTrue(success.last) self.assertIsNone(success.position) self.assertIsNone(success.title)
async def card(self, ctx: discord.abc.Messageable, *args): try: from discord import File if not args: await ctx.send( 'No filters were entered. For help please use `.help card`' ) else: resultFilteredArguments = filterArguments(*args) if resultFilteredArguments.failure: return await ctx.send(resultFilteredArguments.failure) cardsApi = requests.get( 'https://bestdori.com/api/cards/all.5.json').json() skillsApi = requests.get( 'https://bestdori.com/api/skills/all.5.json').json() cards = parseCards(cardsApi, skillsApi) resultCard = findCardFromArguments( cards, resultFilteredArguments.success) if resultCard.failure: return await ctx.send(resultCard.failure) card: Card = resultCard.success palette = Palette(card.attribute) imagePath = generateImage(card, palette) enRelease = card.enRelease jpRelase = card.jpRelease ImageFileObject = File(imagePath[0], filename=imagePath[1]) ThumbnailFileObject = File( f'data/img/icons/full_icons/{card.cardId}.png', filename=f'{card.cardId}.png') embed = discord.Embed( title=f'{card.cardName}', color=discord.Color.blue(), url=f'https://bestdori.com/info/cards/{card.cardId}') embed.set_thumbnail(url=f'attachment://{card.cardId}.png') embed.add_field(name='EN Release', value=enRelease, inline=True) embed.add_field(name='\u200b', value='\u200b', inline=True) embed.add_field(name='\u200b', value='\u200b', inline=True) embed.add_field(name='JP Release', value=jpRelase, inline=True) embed.add_field(name='\u200b', value='\u200b', inline=True) embed.add_field(name='\u200b', value='\u200b', inline=True) embed.set_image(url=f'attachment://{imagePath[1]}') await ctx.send(embed=embed, files=[ThumbnailFileObject, ImageFileObject]) except Exception as e: print(traceback.format_exc()) await ctx.send( 'Failed getting card info, please use the `notify` command and include the search options used' )
def test_wrong_name(self): result = filterArguments("foo2") self.assertIsNone(result.success) self.assertIsNotNone(result.failure)