import sys import unittest from pathlib import Path from unittest import mock SOURCE = Path(__file__).resolve().parents[1] / "src" sys.path.insert(0, str(SOURCE)) from single_player_games import AUTHOR, DESCRIPTION, HELP_ENTRIES, plugin class PluginTests(unittest.TestCase): def test_registers_declared_commands_and_author(self): context = mock.Mock() plugin(context) registered = [ call.args[0] for call in context.commands.register.call_args_list ] self.assertEqual(AUTHOR, 'jwebot') self.assertEqual(DESCRIPTION, '虚拟金币账户、抽奖、群内多人彩票和单人21点') self.assertEqual(HELP_ENTRIES, ('/金币 /wallet;/抽奖 [金额] /draw;/游戏记录 /gamehistory', '/彩票 开始|报名|当前状态|开奖|取消;/lottery', '/21点 开始 [1~500](金额=本局下注,默认50,空格可省略)', '/21点 要牌|停牌|状态|结束;/blackjack hit|stand|status|end', '/游戏帮助;/games')) self.assertIn('/金币', registered) self.assertEqual(len(registered), 15) if __name__ == "__main__": unittest.main()