示例#1
0
    def test_one_month_of_updates(self):
        """"
            Adds stats for a month
            Starts with:
            "total_resources_earned": 5002
            "week_resources_earned": 0
            "battles": 731

            It should end up with:
            "total_resources_earned": 5002 + 65 = 5067
            "week_resources_earned": 20
            30 day = 65
        """ ""
        TestTime.set_app_time(datetime.datetime(2015, 8, 1))
        account_stats = AccountStatsFixtures.standard_accounts_record()
        player_stats = AccountStatsFixtures.personal_data_response()
        conn = DatabaseUtils.get_db_connection()
        DatabaseUtils.recreate_database(conn)
        conn = DatabaseUtils.get_db_connection()
        controller = ClanController()
        controller._retrieve_account_stats = lambda account_id, app_id: account_stats
        controller._retrieve_personal_stats = lambda account_id, app_id: player_stats
        members = [{'account_id': 512841364, 'account_name': 'test_player'}]
        players_data = controller.get_players_data(conn, 123, 123, members)
        self.assertEqual(1, len(players_data))
        TestTime.set_app_time(datetime.datetime(2015, 8, 5))
        self._amend_accounts_stats(account_stats, 10, 1, 10)
        controller.get_players_data(conn, 123, 500050913, members)
        TestTime.set_app_time(datetime.datetime(2015, 8, 10))
        self._amend_accounts_stats(account_stats, 35, 2, 45)
        controller.get_players_data(conn, 123, 500050913, members)
        TestTime.set_app_time(datetime.datetime(2015, 8, 15))
        self._amend_accounts_stats(account_stats, 0, 2, 35)
        controller.get_players_data(conn, 123, 500050913, members)
        TestTime.set_app_time(datetime.datetime(2015, 8, 25))
        self._amend_accounts_stats(account_stats, 20, 1, 20, 10)
        self._amend_player_stats(player_stats, 21, 10)
        controller.get_players_data(conn, 123, 500050913, members)
        TestTime.set_app_time(datetime.datetime(2015, 8, 31))
        players_data = controller.get_players_data(conn, 123, 500050913,
                                                   members)
        expected = {
            "clan_id": 500050913,
            "account_id": 512841364,
            "account_name": 'test_player',
            'all_battles': 25367,
            'clan_battles': 46,
            "total_resources_earned": 5067,
            "stronghold_defense_battles": 19,
            "thirty_day_defense_battles": 10,
            "stronghold_skirmish_battles": 737,
            "thirty_day_skirmish_battles": 6,
            "seven_day_resources_earned": 20,
            "thirty_day_resources_earned": 65,
            'thirty_day_clan_battles': 0,
            'thirty_day_all_battles': 21,
            "last_update": AppTime.get_now()
        }
        self.maxDiff = None
        self.assertEqual(expected, players_data[0])
    def test_one_month_of_updates(self):
        """"
            Adds stats for a month
            Starts with:
            "total_resources_earned": 5002
            "week_resources_earned": 0
            "battles": 731

            It should end up with:
            "total_resources_earned": 5002 + 65 = 5067
            "week_resources_earned": 20
            30 day = 65
        """""
        TestTime.set_app_time(datetime.datetime(2015, 8, 1))
        account_stats = AccountStatsFixtures.standard_accounts_record()
        player_stats = AccountStatsFixtures.personal_data_response()
        conn = DatabaseUtils.get_db_connection()
        DatabaseUtils.recreate_database(conn)
        conn = DatabaseUtils.get_db_connection()
        controller = ClanController()
        controller._retrieve_account_stats = lambda account_id, app_id: account_stats
        controller._retrieve_personal_stats = lambda account_id, app_id: player_stats
        members = [{'account_id': 512841364, 'account_name': 'test_player'}]
        players_data = controller.get_players_data(conn, 123, 123, members)
        self.assertEqual(1, len(players_data))
        TestTime.set_app_time(datetime.datetime(2015, 8, 5))
        self._amend_accounts_stats(account_stats, 10, 1, 10)
        controller.get_players_data(conn, 123, 500050913, members)
        TestTime.set_app_time(datetime.datetime(2015, 8, 10))
        self._amend_accounts_stats(account_stats, 35, 2, 45)
        controller.get_players_data(conn, 123, 500050913, members)
        TestTime.set_app_time(datetime.datetime(2015, 8, 15))
        self._amend_accounts_stats(account_stats, 0, 2, 35)
        controller.get_players_data(conn, 123, 500050913, members)
        TestTime.set_app_time(datetime.datetime(2015, 8, 25))
        self._amend_accounts_stats(account_stats, 20, 1, 20, 10)
        self._amend_player_stats(player_stats, 21, 10)
        controller.get_players_data(conn, 123, 500050913, members)
        TestTime.set_app_time(datetime.datetime(2015, 8, 31))
        players_data = controller.get_players_data(conn, 123, 500050913, members)
        expected = {
            "clan_id": 500050913,
            "account_id": 512841364,
            "account_name": 'test_player',
            'all_battles':25367,
            'clan_battles': 46,
            "total_resources_earned": 5067,
            "stronghold_defense_battles": 19,
            "thirty_day_defense_battles": 10,
            "stronghold_skirmish_battles": 737,
            "thirty_day_skirmish_battles": 6,
            "seven_day_resources_earned": 20,
            "thirty_day_resources_earned": 65,
            'thirty_day_clan_battles': 0,
            'thirty_day_all_battles': 21,
            "last_update": AppTime.get_now()
        }
        self.maxDiff = None
        self.assertEqual(expected, players_data[0])