def test_general(self): character = Character(self._region, self._realm_name, self._character_name) self.assertEqual(character.name, self._character_name) self.assertEqual(str(character), self._character_name) self.assertEqual(character.get_realm_name(), self._realm_name.replace("'", "")) self.assertEqual(character.realm.name, self._realm_name.replace("'", "")) self.assertEqual(str(character.realm), self._realm_name.replace("'", "")) self.assertEqual(character.faction, self._faction) self.assertEqual(character.get_race_name(), self._race) self.assertEqual(character.get_class_name(), self._class) self.assertIsInstance(character.level, int) self.assertGreaterEqual(character.level, 85) self.assertIsInstance(character.achievement_points, int) self.assertEqual(character.gender, self._gender)
def test_talents_worldwide(self): for region, realm, character_name in self._characters: character = Character(region, realm, character_name, fields=[Character.TALENTS]) self.assertEqual(len(character.talents), 2)
def test_stats(self): character = Character(self._region, self._realm_name, self._character_name, fields=[Character.STATS]) self.assertIsInstance(character.stats.agility, int)
def test_ids(self): character = Character(self._region, self._realm_name, self._character_name) for raid in character.progression['raids']: expansion_short, expansion_long = Raid(raid.id).expansion() self.assertIsNotNone(expansion_short) self.assertIsNotNone(expansion_long)
def test_lazyload(self): character = Character(self._region, self._realm_name, self._character_name) self.assertIsInstance(repr(character), str) self.assertEqual(character.guild.realm.name, self._realm_name.replace("'", ""))
def test_guild(self): character = Character(self._region, self._realm_name, self._character_name, fields=[Character.GUILD]) self.assertEqual(character.guild.name, self._guild_name)
def test_pet_class(self): character = Character(self._region, self._realm_name, self._character_name_hunter, fields=[Character.PETS]) self.assertTrue(hasattr(character, 'pets')) self.assertIn(self._pet_name, [pet.name for pet in character.pets])
def test_achievements(self): character = Character(self._region, self._realm_name, self._character_name, fields=[Character.ACHIEVEMENTS]) self.assertEqual(character.achievements[513], datetime.datetime(2008, 10, 16, 1, 12, 6))
def test_hunter_pet_class(self): character = Character(battlenet.UNITED_STATES, 'Kiljaeden', 'Tandisse', fields=[Character.HUNTER_PETS]) self.assertTrue(hasattr(character, 'hunter_pets')) self.assertIn('Rudebull', [pet.name for pet in character.hunter_pets])
def test_appearance(self): character = Character(self._region, self._realm_name, self._character_name, fields=[Character.APPEARANCE]) self.assertEqual(character.appearance.face, self._appearance_face) self.assertEqual(character.appearance.feature, self._appearance_feature) self.assertEqual(character.appearance.hair_color, self._appearance_hair_color) self.assertEqual(character.appearance.show_cloak, self._appearance_show_cloak) self.assertEqual(character.appearance.show_helm, self._appearance_show_helm) self.assertEqual(character.appearance.hair, self._appearance_hair)
def test_progression(self): character = Character(self._region, self._realm_name, self._character_name, fields=[Character.PROGRESSION]) for instance in character.progression['raids']: if instance.name == 'Blackwing Descent': self.assertTrue(instance.is_complete('normal')) for boss in instance.bosses: if boss.name == 'Nefarian': self.assertGreater(boss.normal, 0)
def test_general(self): character = Character(battlenet.UNITED_STATES, 'Nazjatar', 'Vishnevskiy') self.assertEqual(character.name, 'Vishnevskiy') self.assertEqual(str(character), 'Vishnevskiy') self.assertEqual(character.get_realm_name(), 'Nazjatar') self.assertEqual(character.realm.name, 'Nazjatar') self.assertEqual(str(character.realm), 'Nazjatar') self.assertEqual(character.faction, Character.HORDE) self.assertEqual(character.get_race_name(), Character.GOBLIN) self.assertEqual(character.get_class_name(), Character.WARLOCK) self.assertIsInstance(character.level, int) self.assertGreaterEqual(character.level, 85) self.assertIsInstance(character.achievement_points, int) self.assertEqual(character.gender, Character.MALE)
def test_professions(self): character = Character(self._region, self._realm_name, self._character_name, fields=[Character.PROFESSIONS]) primary = character.professions['primary'] profession_1 = primary[0] profession_2 = primary[1] self.assertEqual(profession_1.name, self._profession_1) self.assertIsInstance(profession_1.rank, int) self.assertIsInstance(profession_1.recipes, list) self.assertEqual(profession_2.name, self._profession_2) secondary = [p.name for p in character.professions['secondary']] for p in self._professions_secondary: self.assertIn(p, secondary) for p in secondary: self.assertIn(p, self._professions_secondary)
def test_raids_worldwide(self): for region, realm, character_name in self._characters: character = Character(region, realm, character_name) for raid in character.progression['raids']: self.assertIsNotNone(raid)
def get_char(name, server, target_region=battlenet.UNITED_STATES): Connection.setup(api_key=API_KEY, locale='us') try: character = Character(target_region, server, name, fields=[ Character.GUILD, Character.ITEMS, Character.PROGRESSION, Character.ACHIEVEMENTS ]) except Exception as e: raise e return_string = "" return_string += "**%s** - **%s(%s)** - **%s %s**\n" % ( character.name, character.get_realm_name(), character.region.upper(), character.level, character.get_class_name()) return_string += "Last Modified: {}\n".format( character.last_modified.strftime("%x - %I:%M:%S %p")) armory_url = "http://{}.battle.net/wow/en/character/{}/{}/advanced".format( target_region, character.get_realm_name().replace(' ', '%20'), character.name) # Raid Progression en_progress = get_raid_progression(character.progression, 8025) # the emarld nightmare tov_progress = get_raid_progression(character.progression, 8440) # trial of valor mythic_progress = get_mythic_progression(character) sockets = get_sockets(character.equipment) enchants = get_enchants(character.equipment) return_string += "<{}>\n".format(armory_url) return_string += "```CSS\n" # start Markdown # iLvL return_string += "Equipped Item Level: %s\n" % character.equipment.average_item_level_equipped # Mythic Progression return_string += "Mythics: +2: %s, +5: %s, +10: %s\n" % ( mythic_progress["plus_two"], mythic_progress["plus_five"], mythic_progress["plus_ten"]) return_string += "EN: {1}/{0} (N), {2}/{0} (H), {3}/{0} (M)\n".format( en_progress["total_bosses"], en_progress["normal"], en_progress["heroic"], en_progress["mythic"]) return_string += "TOV: {1}/{0} (N), {2}/{0} (H), {3}/{0} (M)\n".format( tov_progress["total_bosses"], tov_progress["normal"], tov_progress["heroic"], tov_progress["mythic"]) # Gems return_string += "Gems Equipped: %s/%s\n" % (sockets["equipped_gems"], sockets["total_sockets"]) # Enchants return_string += "Enchants: %s/%s\n" % (enchants["enchantable_slots"] - enchants["total_missing"], enchants["enchantable_slots"]) if enchants["total_missing"] > 0: return_string += "Missing Enchants: {0}".format(", ".join( enchants["missing_slots"])) return_string += "```" # end Markdown return return_string
def test_talents(self): character = Character(self._region, self._realm_name, self._character_name, fields=[Character.TALENTS]) self.assertEqual(len(character.talents), 2)
def test_characters_worldwide(self): for region, realm, character_name in self._characters: character = Character(region, realm, character_name) self.assertEqual(character.name, character_name)
if json_raids is not None: json_data['raids'] = map(lambda x: { 'name': x['name'], 'wings': x['wings'] }, json_raids) # Setup the connection Connection.setup(locale=settings.LOCALE) # Complete the data for (region, server, name, specs) in settings.CHARACTER_NAMES: print ("Retrieving '%s (%s - %s)'..." % (name, server, region)).encode('utf-8') try: character = Character(region, server, name, fields=[Character.ITEMS, Character.TALENTS]) except: # 2nd try... print ("Retrieving '%s (%s - %s)'..." % (name, server, region)).encode('utf-8') try: character = Character(region, server, name, fields=[Character.ITEMS, Character.TALENTS]) except: print " FAILED" continue # Known character or new one? if name in characters.keys(): json_character = characters[name] json_character['level'] = character.level
json_data['raids'] = map( lambda x: { 'name': x['name'], 'wings': x['wings'] }, json_raids) # Setup the connection Connection.setup(locale=settings.LOCALE) # Complete the data for (region, server, name, specs) in settings.CHARACTER_NAMES: print("Retrieving '%s (%s - %s)'..." % (name, server, region)).encode('utf-8') try: character = Character(region, server, name, fields=[Character.ITEMS, Character.TALENTS]) except: # 2nd try... print("Retrieving '%s (%s - %s)'..." % (name, server, region)).encode('utf-8') try: character = Character(region, server, name, fields=[Character.ITEMS, Character.TALENTS]) except: print " FAILED" continue # Known character or new one?
def test_unicode(self): character = Character(self._region, self._realm_name, self._character_name_unicode) self.assertIsInstance(repr(character), str) self.assertEqual(character.name, self._character_name_unicode)