Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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")
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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'
         )
Exemplo n.º 8
0
 def test_wrong_name(self):
     result = filterArguments("foo2")
     self.assertIsNone(result.success)
     self.assertIsNotNone(result.failure)