Added /info test #139

This commit is contained in:
Sven Heidemann 2022-11-27 11:05:20 +01:00
parent 77d723b9da
commit 7260ed0164
7 changed files with 67 additions and 5 deletions

View File

@ -20,6 +20,8 @@
"TestSettings": { "TestSettings": {
"LoginUrl": "https://discord.com/login", "LoginUrl": "https://discord.com/login",
"MePageUrl": "https://discord.com/channels/@me", "MePageUrl": "https://discord.com/channels/@me",
"CmdURL": "https://discord.com/channels/910199451145076828/911578636899987526" "CmdURL": "https://discord.com/channels/910199451145076828/911578636899987526",
"GuildId": 910199451145076828,
"BotId": 998159802393964594
} }
} }

View File

@ -12,6 +12,8 @@ class TestSettings(ConfigurationModelABC):
self._login_url = '' self._login_url = ''
self._me_page_url = '' self._me_page_url = ''
self._cmd_url = '' self._cmd_url = ''
self._guild_id = 0
self._bot_id = 0
@property @property
def login_url(self) -> str: def login_url(self) -> str:
@ -25,11 +27,21 @@ class TestSettings(ConfigurationModelABC):
def cmd_url(self) -> str: def cmd_url(self) -> str:
return self._cmd_url return self._cmd_url
@property
def guild_id(self) -> int:
return self._guild_id
@property
def bot_id(self) -> int:
return self._bot_id
def from_dict(self, settings: dict): def from_dict(self, settings: dict):
try: try:
self._login_url = settings['LoginUrl'] self._login_url = settings['LoginUrl']
self._me_page_url = settings['MePageUrl'] self._me_page_url = settings['MePageUrl']
self._cmd_url = settings['CmdURL'] self._cmd_url = settings['CmdURL']
self._guild_id = settings['GuildId']
self._bot_id = settings['BotId']
except Exception as e: except Exception as e:
Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {type(self).__name__} settings') Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {type(self).__name__} settings')
Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}') Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')

View File

@ -4,7 +4,7 @@ from ui_tests_shared.command_test_case_with_app import CommandTestCaseWithApp
from ui_tests_shared.decorators import Async from ui_tests_shared.decorators import Async
class HelpTestCase(CommandTestCaseWithApp): class HelpCommandTestCase(CommandTestCaseWithApp):
@Async.test @Async.test
async def test_help(self): async def test_help(self):
@ -12,7 +12,7 @@ class HelpTestCase(CommandTestCaseWithApp):
self.send_command('help') self.send_command('help')
def check(m: discord.Message): def check(m: discord.Message):
return m.content == correct_response and m.author.id == 998159802393964594 return m.content == correct_response and m.author.id == self._test_settings.bot_id
response = await self._bot.wait_for('message', check=check) response = await self._bot.wait_for('message', check=check)
self.assertEqual(response.content, correct_response) self.assertEqual(response.content, correct_response)

View File

@ -0,0 +1,48 @@
from datetime import datetime
import discord
import bot
from bot_core.abc.client_utils_service_abc import ClientUtilsServiceABC
from ui_tests_shared.command_test_case_with_app import CommandTestCaseWithApp
from ui_tests_shared.decorators import Async
class HelpCommandTestCase(CommandTestCaseWithApp):
def get_embed(self) -> discord.Embed:
client_utils: ClientUtilsServiceABC = self._services.get_service(ClientUtilsServiceABC)
client = client_utils.get_client(self._bot.user.id, self._test_settings.guild_id)
embed = discord.Embed(
title=self._t.transform('modules.base.info.title'),
description=self._t.transform('modules.base.info.description'),
color=int('ef9d0d', 16)
)
embed.add_field(name=self._t.transform('modules.base.info.fields.version'), value=bot.__version__)
start_time = self._config.get_configuration('Bot_StartTime')
ontime = round((datetime.now() - datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S.%f')).total_seconds() / 3600, 2)
embed.add_field(name=self._t.transform('modules.base.info.fields.ontime'), value=f'{ontime}h')
embed.add_field(name=self._t.transform('modules.base.info.fields.sent_message_count'), value=client.sent_message_count, inline=False)
embed.add_field(name=self._t.transform('modules.base.info.fields.received_message_count'), value=client.received_message_count)
embed.add_field(name=self._t.transform('modules.base.info.fields.deleted_message_count'), value=client.deleted_message_count, inline=False)
embed.add_field(name=self._t.transform('modules.base.info.fields.received_command_count'), value=client.received_command_count)
embed.add_field(name=self._t.transform('modules.base.info.fields.moved_users_count'), value=client.moved_users_count)
from bot.module_list import ModuleList
modules = ModuleList.get_modules()
modules = modules.select(lambda x: x.__name__.replace('Module', ''))
embed.add_field(name=self._t.transform('modules.base.info.fields.modules'), value='\n'.join(modules), inline=False)
return embed
@Async.test
async def test_info(self):
correct_response = self.get_embed()
self.send_command('info')
def check(m: discord.Message):
return m.content == correct_response and m.author.id == self._test_settings.bot_id
response: discord.Message = await self._bot.wait_for('message', check=check)
self.assertEqual(len(response.embeds), 1)
self.assertEqual(response.embeds[0], correct_response)
await self._bot.close()

View File

@ -4,7 +4,7 @@ from ui_tests_shared.command_test_case_with_app import CommandTestCaseWithApp
from ui_tests_shared.decorators import Async from ui_tests_shared.decorators import Async
class PingTestCase(CommandTestCaseWithApp): class PingCommandTestCase(CommandTestCaseWithApp):
@Async.test @Async.test
async def test_ping(self): async def test_ping(self):
@ -13,7 +13,7 @@ class PingTestCase(CommandTestCaseWithApp):
self.send_command('ping') self.send_command('ping')
def check(m: discord.Message): def check(m: discord.Message):
return m.content == correct_response and m.author.id == 998159802393964594 return m.content == correct_response and m.author.id == self._test_settings.bot_id
response = await self._bot.wait_for('message', check=check) response = await self._bot.wait_for('message', check=check)
self.assertEqual(response.content, correct_response) self.assertEqual(response.content, correct_response)