import unittest import praw import random import requests import json import dotenv import re import discord from discord.ext import commands import General class TestGeneral(unittest.TestCase): def setUp(self): dotenv.load_dotenv() intents = discord.Intents.default() intents.message_content = True intents.members = True bot = commands.Bot(command_prefix=commands.when_mentioned_or('!'), description='Stroopwafel. Shitpost bot extraordinaire.', pm_help=True, intents=intents) self.cog = General.General(bot) def test_playlist(self): data = self.cog.get_playlist_json() if data.status_code >= 500: self.skipTest(f"Server at {self.cog.muzak_url} has an error") with self.subTest(msg=f"{self.cog.muzak_url} doesn't return 200"): self.assertEqual(data.status_code, 200) with self.subTest(msg="Not a good response"): self.assertIsInstance(data, requests.Response) with self.subTest(msg="Does not convert to json"): self.assertIsInstance(json.loads(data.content), dict) def test_aww(self): if not isinstance(self.cog.r, praw.Reddit): self.skipTest("PRAW Reddit instance failed to create") post = self.cog.get_aww_post() self.assertIsInstance(post.url, str) def test_kopieerpasta(self): if not isinstance(self.cog.r, praw.Reddit): self.skipTest("PRAW Reddit instance failed to create") post = self.cog.get_kopieerpasta() if post: self.assertIsInstance(post.url, str) def test_huge(self): embed = self.cog.get_emoji_embed("<:test:123456789>") self.assertIsInstance(embed, discord.Embed)