Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
    def test_stats(self):
        character = Character(self._region,
                              self._realm_name,
                              self._character_name,
                              fields=[Character.STATS])

        self.assertIsInstance(character.stats.agility, int)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
    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("'", ""))
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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])
Exemplo n.º 8
0
    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))
Exemplo n.º 9
0
    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])
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
    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)
Exemplo n.º 12
0
    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)
Exemplo n.º 13
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)
Exemplo n.º 14
0
    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)
Exemplo n.º 15
0
 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)
Exemplo n.º 16
0
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
Exemplo n.º 17
0
 def test_talents(self):
     character = Character(self._region,
                           self._realm_name,
                           self._character_name,
                           fields=[Character.TALENTS])
     self.assertEqual(len(character.talents), 2)
Exemplo n.º 18
0
 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)
Exemplo n.º 19
0
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
Exemplo n.º 20
0
    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?
Exemplo n.º 21
0
    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)