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_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)
'amr_import_string': None, } json_character['specs'].append(json_spec) specs_to_remove = filter(lambda x: x['name'] not in specs, json_character['specs']) for spec in specs_to_remove: json_character['specs'].remove(spec) else: json_character = { 'name': (isinstance(character.name, unicode) and character.name) or character.name.decode('utf-8'), 'level': character.level, 'class': character.get_class_name(), 'max_ilvl': character.equipment.average_item_level, 'armory_url': 'http://%s.battle.net/wow/%s/character/%s/%s/advanced' % (region, settings.LOCALE, character.get_realm_name(), character.name), 'specs': [], 'raid_upgrades': None, } for spec in specs: json_spec = { 'name': spec, 'ilvl': None, 'role': None, 'icon': None, 'items': {}, 'modifications': {}, 'valid_modifications': True, 'amr_import_string': None, }
for spec in specs_to_remove: json_character['specs'].remove(spec) else: json_character = { 'name': (isinstance(character.name, unicode) and character.name) or character.name.decode('utf-8'), 'level': character.level, 'class': character.get_class_name(), 'max_ilvl': character.equipment.average_item_level, 'armory_url': 'http://%s.battle.net/wow/%s/character/%s/%s/advanced' % (region, settings.LOCALE, character.get_realm_name(), character.name), 'specs': [], 'raid_upgrades': None, } for spec in specs: json_spec = { 'name': spec, 'ilvl': None, 'role': None, 'icon': None, 'items': {}, 'modifications': {}, 'valid_modifications': True,
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