def create_player(self, **kwargs): kwargs = merge_args( { 'bid': randint(0, 1e9), 'region': Region.EU, 'realm': 1, 'mode': Mode.TEAM_1V1, 'season': self.season, 'race': Race.ZERG, 'name': uniqueid(12), 'clan': uniqueid(32), 'tag': uniqueid(6) }, **kwargs) self.player = Player(**kwargs) self.player.save() return self.player
def gen_member(**kwargs): """ Generate member as returned from ApiLadder and used by process_ladder. """ return merge_args( { "bid": randint(1, 1e6), "realm": 0, "name": uniqueid(length=12), "clan": uniqueid(length=32), "tag": uniqueid(length=6), "join_time": int(to_unix(utcnow())), "points": float(randint(0, 2000)), "wins": randint(0, 200), "mmr": randint(1000, 5000), "losses": randint(0, 200), "race": choice([Race.ZERG, Race.PROTOSS, Race.TERRAN, Race.RANDOM]) }, **kwargs)
def gen_api_data(l_bid, *p_bids, mmq="HOTS_SOLO", league="SILVER", race="ZERG", join_time=None, join_times=None, season="currentSeason", team_size=None): """ Generate api data from blizzard. Returns <ladder_data, player_ladder_data>. Player ladder data will contain one team. """ join_time = join_time or utcnow() join_times = join_times or [join_time] team_size = team_size or len(p_bids) names = [uniqueid(10) for _ in p_bids] pld = { "ladderId": l_bid, "league": league, "matchMakingQueue": mmq, "wins": 20, "losses": 22 } ppds = [{ "id": p_bid, "realm": 1, "displayName": name, "profilePath": "/profile/%d/1/%s/" % (p_bid, name) } for p_bid, name in zip(p_bids, names)] members = [{ "character": { "id": p_bid, "realm": 1, "profilePath": "/profile/%d/1/%s/" % (p_bid, name) }, "joinTimestamp": int(jt.strftime("%s")), "points": 102.2, "wins": 20, "losses": 22, "favoriteRaceP1": race } for p_bid, jt, name in zip(p_bids, itertools.cycle(join_times), names)] for member in members: if team_size > 1: member['favoriteRaceP2'] = race if team_size > 2: member['favoriteRaceP3'] = race if team_size > 3: member['favoriteRaceP4'] = race l = {"ladderMembers": members} p = {season: [{"ladder": [pld], "characters": ppds}]} # To simplify l_bid = p_bid. return ApiLadder(l, '/ladder/%d/' % l_bid), ApiPlayerLadders( p, '/profile/%d/' % l_bid)
def create_cache(self, type=Cache.LADDER, members=None, **kwargs): data = kwargs.pop('data', None) if data is None and members is not None: data = gen_ladder_data(members) kwargs = merge_args( { 'bid': randint(1, 1e6), 'url': 'http://bnet/' + uniqueid(10), 'type': type, 'region': Region.EU, 'created': utcnow(), 'updated': utcnow(), 'status': 200, 'retry_count': 0 }, **kwargs) kwargs['data'] = json.dumps(data) self.cache = Cache(**kwargs) self.cache.save() return self.cache
def create_teams(self, count=1, **kwargs): teams = [] for i in range(count): self.create_player(name="%s-%d" % (uniqueid(8), i)) teams.append(self.create_team(**kwargs)) return teams
# See comment in aid.test.base. from django import setup from django.conf import settings from rocky import syspath syspath.add('../..', __file__) syspath.add('../../site', __file__) if not settings.configured: from common.utils import uniqueid from common.settings import site_settings test_settings = site_settings() test_settings['DATABASES']['default']['NAME'] = 'rankedftw-' + uniqueid(6) settings.configure(**test_settings) setup()