def test_define_zone(self): random.choice = MonkeyPatches.mock_choice_first_index random.randint = lambda l, u: 5 lvl = 6 visited = {} z = Zone.construct_next_zone_choice(lvl, visited) self.assertEqual(z[ZoneDBFields.FULL_NAME], "Empty Space") self.assertEqual(z[ZoneDBFields.LVL], 11) self.assertEqual(z[ZoneDBFields.MAX_MONSTERS], 5) self.assertEqual(len(visited), 1) self.assertEqual(visited['emptySpace'], 1) z = Zone.construct_next_zone_choice(lvl, visited) self.assertEqual(len(visited), 1) self.assertEqual(visited['emptySpace'], 2) self.assertEqual(z[ZoneDBFields.FULL_NAME], "Empty Space Alpha") z = Zone.construct_next_zone_choice(lvl, visited, True) self.assertEqual(z[ZoneDBFields.LVL], 6) self.assertEqual(len(visited), 1) self.assertEqual(visited['emptySpace'], 3) self.assertEqual(z[ZoneDBFields.FULL_NAME], "Empty Space Beta")
def test_define_zone(self): random.choice = MonkeyPatches.mock_choice_first_index random.randint = lambda l,u: 5 lvl = 6 visited = {} z = Zone.construct_next_zone_choice(lvl,visited) self.assertEqual(z[ZoneDBFields.FULL_NAME],"Empty Space") self.assertEqual(z[ZoneDBFields.LVL],11) self.assertEqual(z[ZoneDBFields.MAX_MONSTERS],5) self.assertEqual(len(visited),1) self.assertEqual(visited['emptySpace'],1) z = Zone.construct_next_zone_choice(lvl,visited) self.assertEqual(len(visited),1) self.assertEqual(visited['emptySpace'],2) self.assertEqual(z[ZoneDBFields.FULL_NAME],"Empty Space Alpha") z = Zone.construct_next_zone_choice(lvl,visited,True) self.assertEqual(z[ZoneDBFields.LVL],6) self.assertEqual(len(visited),1) self.assertEqual(visited['emptySpace'],3) self.assertEqual(z[ZoneDBFields.FULL_NAME],"Empty Space Beta")
def construct_unsaved_hero(cls, accountPk=None, shipName=""): """ args: accountPk: an objectId for the accounts collection shipName: string. self-explainatory returns: an instance of the Hero class. Doesn't exist in db """ import uuid zoneVisitCounts = {} homeZone = Zone.get_home_zone() zonesChoices = [] zonesChoices.append( Zone.construct_next_zone_choice(1, zoneVisitCounts, True)) zonesChoices.append(Zone.construct_next_zone_choice( 1, zoneVisitCounts)) zonesChoices.append(Zone.construct_next_zone_choice( 1, zoneVisitCounts)) homeZone.nextZoneReferenceList = zonesChoices hero = { HeroDbFields.ACCOUNT_PK_KEY: accountPk, HeroDbFields.SHIP_NAME: shipName, HeroDbFields.LVL: 1, HeroDbFields.GOLD: 0, HeroDbFields.MAX_HP: 100, HeroDbFields.NOW_HP: 100, HeroDbFields.MAX_XP: 50, HeroDbFields.NOW_XP: 0, HeroDbFields.ATTACK_LVL: 1, HeroDbFields.DEFENSE_LVL: 1, HeroDbFields.PUBLIC_KEY: uuid.uuid4().hex, HeroDbFields.ZONE_VISIT_COUNTS: zoneVisitCounts, HeroDbFields.ZONE: homeZone.dict } heroObj = cls.construct_model_from_dict(hero) return heroObj