From 558901756e2ef9fd37cf13f2938d2babe3432908 Mon Sep 17 00:00:00 2001 From: David Lewis Date: Mon, 6 Jul 2015 22:33:10 -0500 Subject: [PATCH] Added new API resources --- HISTORY.rst | 13 ++++++++++++ guildwars2api/__init__.py | 2 +- guildwars2api/v2/client.py | 16 ++++++++++++++ guildwars2api/v2/resources.py | 40 +++++++++++++++++++++++++++++++++++ setup.py | 2 +- tests/test_urls.py | 26 ++++++++++++++++++++++- 6 files changed, 96 insertions(+), 3 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 833ef6b..96af1f2 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -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) ------------------ diff --git a/guildwars2api/__init__.py b/guildwars2api/__init__.py index 04bd79f..a750fdc 100644 --- a/guildwars2api/__init__.py +++ b/guildwars2api/__init__.py @@ -1,2 +1,2 @@ # -*- coding: utf-8 -*- -__version__ = '0.2.0' +__version__ = '0.3.0' diff --git a/guildwars2api/v2/client.py b/guildwars2api/v2/client.py index 2415e7d..8a1232f 100644 --- a/guildwars2api/v2/client.py +++ b/guildwars2api/v2/client.py @@ -18,6 +18,14 @@ File, Quaggan, World, + Material, + Bank, + BankMaterial, + Character, + Inventory, + Equipment, + Account, + TokenInfo, ) @@ -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) diff --git a/guildwars2api/v2/resources.py b/guildwars2api/v2/resources.py index 11f5c3d..3550a2d 100644 --- a/guildwars2api/v2/resources.py +++ b/guildwars2api/v2/resources.py @@ -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" diff --git a/setup.py b/setup.py index 0cce1a9..a2b5ac9 100644 --- a/setup.py +++ b/setup.py @@ -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', diff --git a/tests/test_urls.py b/tests/test_urls.py index 87e2e91..00d7999 100644 --- a/tests/test_urls.py +++ b/tests/test_urls.py @@ -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') @@ -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')