class TestBase(unittest.TestCase): # Overwrite these! num_start_players = 5 quest_constructor = Quest starting_gold = 1000 starting_exp = 100 def setUp(self): player_save_patcher = patch( 'twitch.player_manager.PlayerManager.save_player_data') player_load_patcher = patch( 'twitch.player_manager.PlayerManager.load_player_data') randint_0_patcher = patch('quest.quests.{}.randint'.format( self.quest_constructor.__name__.lower()), return_value=0) for patcher in [ player_save_patcher, player_load_patcher, randint_0_patcher ]: patcher.start() self.addCleanup(patcher.stop) self.bot = MagicMock() with patch('twitch.player_manager.PlayerManager.load_player_data'): self.player_manager = QuestPlayerManager(self.bot) self.channel = MagicMock() self.channel.channel_manager.bot = self.bot self.channel.channel_manager.bot.player_manager = self.player_manager self.player1 = 'Player1' self.player2 = 'Player2' self.player3 = 'Player3' self.player4 = 'Player4' self.player5 = 'Player5' self.player6 = 'Player6' self.player7 = 'Player7' self.player8 = 'Player8' self.player9 = 'Player9' self.player10 = 'Player10' self.all_players = [ self.player1, self.player2, self.player3, self.player4, self.player5, self.player6, self.player7, self.player8, self.player9, self.player10 ] self.party = self.all_players[:self.num_start_players] with patch('twitch.player_manager.PlayerManager.save_player_data'): self.player_manager.reward(self.all_players, gold=self.starting_gold, exp=self.starting_exp) self.quest_manager = QuestManager(self.channel) self.quest_manager.party = self.party if self.quest_constructor: self.quest = self.quest_constructor(self.quest_manager)
def setUp(self): player_save_patcher = patch('twitch.player_manager.PlayerManager.save_player_data') player_load_patcher = patch('twitch.player_manager.PlayerManager.load_player_data') for patcher in [player_save_patcher, player_load_patcher]: patcher.start() self.addCleanup(patcher.stop) bot = MagicMock() self.player_manager = QuestPlayerManager(bot) self.existing_player = 'Existing_Player' self.new_player = 'New_Player' self.player_manager.add_gold(self.existing_player, 256)
class TestBase(unittest.TestCase): # Overwrite these! num_start_players = 5 quest_constructor = Quest starting_gold = 1000 starting_exp = 100 def setUp(self): player_save_patcher = patch('twitch.player_manager.PlayerManager.save_player_data') player_load_patcher = patch('twitch.player_manager.PlayerManager.load_player_data') randint_0_patcher = patch('quest.quests.{}.randint'.format(self.quest_constructor.__name__.lower()), return_value=0) for patcher in [player_save_patcher, player_load_patcher, randint_0_patcher]: patcher.start() self.addCleanup(patcher.stop) self.bot = MagicMock() with patch('twitch.player_manager.PlayerManager.load_player_data'): self.player_manager = QuestPlayerManager(self.bot) self.channel = MagicMock() self.channel.channel_manager.bot = self.bot self.channel.channel_manager.bot.player_manager = self.player_manager self.player1 = 'Player1' self.player2 = 'Player2' self.player3 = 'Player3' self.player4 = 'Player4' self.player5 = 'Player5' self.player6 = 'Player6' self.player7 = 'Player7' self.player8 = 'Player8' self.player9 = 'Player9' self.player10 = 'Player10' self.all_players = [self.player1, self.player2, self.player3, self.player4, self.player5, self.player6, self.player7, self.player8, self.player9, self.player10] self.party = self.all_players[:self.num_start_players] with patch('twitch.player_manager.PlayerManager.save_player_data'): self.player_manager.reward(self.all_players, gold=self.starting_gold, exp=self.starting_exp) self.quest_manager = QuestManager(self.channel) self.quest_manager.party = self.party if self.quest_constructor: self.quest = self.quest_constructor(self.quest_manager)
class TestPlayerManager(unittest.TestCase): def setUp(self): player_save_patcher = patch('twitch.player_manager.PlayerManager.save_player_data') player_load_patcher = patch('twitch.player_manager.PlayerManager.load_player_data') for patcher in [player_save_patcher, player_load_patcher]: patcher.start() self.addCleanup(patcher.stop) bot = MagicMock() self.player_manager = QuestPlayerManager(bot) self.existing_player = 'Existing_Player' self.new_player = 'New_Player' self.player_manager.add_gold(self.existing_player, 256) def test_exp_to_level(self): self.assertEqual(self.player_manager.exp_to_level(0), 1) self.assertEqual(self.player_manager.exp_to_level(settings.EXP_LEVELS[1]), 1) self.assertEqual(self.player_manager.exp_to_level(settings.EXP_LEVELS[5]), 5) self.assertEqual(self.player_manager.exp_to_level(settings.EXP_LEVELS[settings.LEVEL_CAP]), settings.LEVEL_CAP) self.assertEqual(self.player_manager.exp_to_level(settings.EXP_LEVELS[settings.LEVEL_CAP] + 1), settings.LEVEL_CAP) self.assertEqual(self.player_manager.exp_to_level(settings.EXP_LEVELS[settings.LEVEL_CAP] + 9999999), settings.LEVEL_CAP) def test_default_player(self): self.assertEqual(self.player_manager.get_gold(self.existing_player), 256) self.assertEqual(self.player_manager.get_exp(self.existing_player), 0) self.assertEqual(self.player_manager.get_gold(self.new_player), 0) self.assertEqual(self.player_manager.get_exp(self.new_player), 0) def test_gold(self): self.player_manager.add_gold(self.new_player, 128) self.assertEqual(self.player_manager.get_gold(self.new_player), 128) self.assertEqual(self.player_manager.get_exp(self.new_player), 0) self.player_manager.add_gold(self.new_player, -64) self.assertEqual(self.player_manager.get_gold(self.new_player), 64) self.assertEqual(self.player_manager.get_exp(self.new_player), 0) self.player_manager.add_gold(self.new_player, -77) self.assertEqual(self.player_manager.get_gold(self.new_player), 0) self.assertEqual(self.player_manager.get_exp(self.new_player), 0) def test_prestige(self): self.assertFalse(self.player_manager.prestige(self.new_player)) self.assertEqual(self.player_manager.get_prestige(self.new_player), 0) self.player_manager.reward(self.new_player, gold=settings.PRESTIGE_COST, exp=settings.EXP_LEVELS[settings.LEVEL_CAP], ) self.player_manager.prestige(self.new_player) self.assertEqual(self.player_manager.get_prestige(self.new_player), 1) self.assertEqual(self.player_manager.get_gold(self.new_player), 0) self.assertEqual(self.player_manager.get_exp(self.new_player), 0) # Check gold increase rate bonus self.player_manager.add_gold(self.new_player, 128) self.assertGreater(self.player_manager.get_gold(self.new_player), 128) def test_rewards(self): item = 'ItemName' missing_item = 'NonexistentItem' self.player_manager.reward(self.new_player, gold=64, exp=100, item=[item, item, item], prestige_benefits=True) self.assertEqual(self.player_manager.get_gold(self.new_player), 64) self.assertEqual(self.player_manager.get_exp(self.new_player), 100) level = self.player_manager.get_level(self.new_player) self.assertGreater(level, 1) self.assertLess(level, 30) items = self.player_manager.get_items(self.new_player) self.assertEqual(items[item], 3) self.assertNotIn(missing_item, items) self.player_manager.penalize(self.new_player, 32, 25, item=[item, missing_item, item], prestige_benefits=True) self.assertEqual(self.player_manager.get_gold(self.new_player), 32) self.assertEqual(self.player_manager.get_exp(self.new_player), 75) items = self.player_manager.get_items(self.new_player) self.assertEqual(items[item], 1) self.assertNotIn(missing_item, items) self.player_manager.penalize(self.new_player, 32, 25, item=item, prestige_benefits=True) self.assertEqual(self.player_manager.get_gold(self.new_player), 0) self.assertEqual(self.player_manager.get_exp(self.new_player), 50) items = self.player_manager.get_items(self.new_player) self.assertNotIn(item, items) self.assertNotIn(missing_item, items)