Example #1
0
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)
Example #2
0
    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)
Example #3
0
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)
Example #4
0
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)