Skip to content

Commit

Permalink
Added new API resources
Browse files Browse the repository at this point in the history
  • Loading branch information
David Lewis committed Jul 7, 2015
1 parent 0480596 commit 5589017
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 3 deletions.
13 changes: 13 additions & 0 deletions HISTORY.rst
Expand Up @@ -3,6 +3,19 @@
History
-------

0.3.0 (2015-07-06)
------------------

* Added the following resources
* Materials
* Bank
* Bank Materials
* Characters
* Inventory
* Equipment
* Account
* Token Info

0.2.0 (2015-05-21)
------------------

Expand Down
2 changes: 1 addition & 1 deletion guildwars2api/__init__.py
@@ -1,2 +1,2 @@
# -*- coding: utf-8 -*-
__version__ = '0.2.0'
__version__ = '0.3.0'
16 changes: 16 additions & 0 deletions guildwars2api/v2/client.py
Expand Up @@ -18,6 +18,14 @@
File,
Quaggan,
World,
Material,
Bank,
BankMaterial,
Character,
Inventory,
Equipment,
Account,
TokenInfo,
)


Expand All @@ -44,6 +52,14 @@ def __init__(self, user_agent='Guild Wars 2 Python API Wrapper', api_key=None):
self.files = self._register(File)
self.quaggans = self._register(Quaggan)
self.worlds = self._register(World)
self.materials = self._register(Material)
self.bank = self._register(Bank)
self.bank_materials = self._register(BankMaterial)
self.characters = self._register(Character)
self.inventory = self._register(Inventory)
self.equipment = self._register(Equipment)
self.account = self._register(Account)
self.token_info = self._register(TokenInfo)

def _register(self, resource):
return resource(self.host, self.session)
40 changes: 40 additions & 0 deletions guildwars2api/v2/resources.py
Expand Up @@ -120,3 +120,43 @@ class Quaggan(BaseResource):

class World(BaseResource):
resource = "worlds"


class Material(BaseResource):
resource = "materials"


class Bank(BaseResource):
resource = "account/bank"


class BankMaterial(BaseResource):
resource = "account/materials"


class Character(BaseResource):
resource = "characters"


class Inventory(BaseResource):
resource = "characters/{0}/inventory"

def build_url(self, character, *args, **kwargs):
base_url = super(Inventory, self).build_url(self.resource, **kwargs)
return base_url.format(character)


class Equipment(BaseResource):
resource = "characters/{0}/equipment"

def build_url(self, character, *args, **kwargs):
base_url = super(Equipment, self).build_url(self.resource, **kwargs)
return base_url.format(character)


class Account(BaseResource):
resource = "account"


class TokenInfo(BaseResource):
resource = "tokeninfo"
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -18,7 +18,7 @@

setup(
name='guildwars2api',
version='0.2.0',
version='0.3.0',
description='A Python API Wrapper for the Guild Wars 2 API',
long_description=readme + '\n\n' + history,
author='David Lewis',
Expand Down
26 changes: 25 additions & 1 deletion tests/test_urls.py
Expand Up @@ -18,7 +18,7 @@ def test_multiple_items_url(self):
self.assertEqual(self.api.items.build_url(ids="1051,1052"), 'https://api.guildwars2.com/v2/items?ids=1051%2C1052')

def test_list_items_url(self):
self.assertEqual(self.api.items.build_url(ids=[1051,1052]), 'https://api.guildwars2.com/v2/items?ids=1051%2C1052')
self.assertEqual(self.api.items.build_url(ids=[1051, 1052]), 'https://api.guildwars2.com/v2/items?ids=1051%2C1052')

def test_items_url_with_bad_param(self):
self.assertEqual(self.api.items.build_url(testattr="food"), 'https://api.guildwars2.com/v2/items?testattr=food')
Expand All @@ -43,3 +43,27 @@ def test_transactions_history_buys(self):

def test_transactions_history_sells(self):
self.assertEqual(self.api.transactions.build_url('history', 'sells'), 'https://api.guildwars2.com/v2/commerce/transactions/history/sells')

def test_materials_url(self):
self.assertEqual(self.api.materials.build_url(), 'https://api.guildwars2.com/v2/materials')

def test_bank_url(self):
self.assertEqual(self.api.bank.build_url(), 'https://api.guildwars2.com/v2/account/bank')

def test_bank_materials_url(self):
self.assertEqual(self.api.bank_materials.build_url(), 'https://api.guildwars2.com/v2/account/materials')

def test_characters_url(self):
self.assertEqual(self.api.characters.build_url(), 'https://api.guildwars2.com/v2/characters')

def test_inventory_url(self):
self.assertEqual(self.api.inventory.build_url('Test Character'), 'https://api.guildwars2.com/v2/characters/Test Character/inventory')

def test_equipment_url(self):
self.assertEqual(self.api.equipment.build_url('Test Character'), 'https://api.guildwars2.com/v2/characters/Test Character/equipment')

def test_account_url(self):
self.assertEqual(self.api.account.build_url(), 'https://api.guildwars2.com/v2/account')

def test_tokeninfo_url(self):
self.assertEqual(self.api.token_info.build_url(), 'https://api.guildwars2.com/v2/tokeninfo')

0 comments on commit 5589017

Please sign in to comment.