Skip to content

Commit

Permalink
Merge branch 'release/0.3.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
snake575 committed Jul 10, 2017
2 parents a974259 + f50e738 commit ccd28bd
Show file tree
Hide file tree
Showing 8 changed files with 50 additions and 52 deletions.
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
coverage==4.4.1
pytest==3.1.2
pytest==3.1.3
python-decouple==3.0
requests==2.18.1
tox==2.7.0
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

setup(
name='trading_api_wrappers',
version='0.3.0',
version='0.3.1',
description='Trading API Wrappers for Python 3.5',
url='https://github.com/delta575/trading-api-wrappers',
author='Felipe Aránguiz, Sebastián Aránguiz',
Expand Down
23 changes: 11 additions & 12 deletions test/surbtc_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,14 @@ def test_order_book(self):
order_book = self.client.order_book(MARKET_ID)
self.assertIsInstance(order_book, models.OrderBook)

def test_trade_transaction_pages(self):
page, per_page = 2, 10
trade_trans_pages = self.client.trade_transaction_pages(
MARKET_ID, page=page, per_page=per_page)
self.assertIsInstance(trade_trans_pages, models.TradeTransactionPages)
self.assertEqual(trade_trans_pages.meta.current_page, page)
self.assertEqual(len(trade_trans_pages.trade_transactions), per_page)


class SURBTCAuthTest(unittest.TestCase):

Expand Down Expand Up @@ -67,16 +75,6 @@ def test_quotation_limit(self):
amount=1, limit=1)
self.assertIsInstance(quotation, models.Quotation)

def test_fee_percentage(self):
fee_percentage = self.client.fee_percentage(
MARKET_ID, SURBTC.OrderType.ASK, market_order=False)
self.assertIsInstance(fee_percentage, models.FeePercentage)

def test_trade_transaction_pages(self):
trade_transactions = self.client.trade_transaction_pages(MARKET_ID)
for transaction in trade_transactions:
self.assertIsInstance(transaction, models.TradeTransaction)

def test_report_average_prices(self):
end = datetime.now()
start = end - timedelta(days=30)
Expand Down Expand Up @@ -120,10 +118,11 @@ def test_simulate_withdrawal(self):
self.assertIsInstance(simulate_withdrawal, models.Withdrawal)

def test_order_pages(self):
per_page = 10
page, per_page = 2, 10
order_pages = self.client.order_pages(
MARKET_ID, page=1, per_page=per_page)
MARKET_ID, page=page, per_page=per_page)
self.assertIsInstance(order_pages, models.OrderPages)
self.assertEqual(order_pages.meta.current_page, page)
self.assertEqual(len(order_pages.orders), per_page)

def test_order_details(self):
Expand Down
2 changes: 1 addition & 1 deletion trading_api_wrappers/cryptomkt/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Market(_Enum):

@staticmethod
def _format_value(value):
return f'{value[:3]}_{value[3:]}'.upper()
return '{0}_{1}'.format(value[:3], value[3:]).upper()


class TimeFrame(_Enum):
Expand Down
34 changes: 0 additions & 34 deletions trading_api_wrappers/surbtc/client_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,40 +58,6 @@ def quotation_limit(self,
market_id=market_id, quotation_type=quotation_type,
amount=amount, limit=limit)

def fee_percentage(self,
market_id: _c.Market,
order_type: _c.OrderType,
market_order: bool=False):
market_id = _c.Market.check(market_id)
order_type = _c.OrderType.check(order_type)
params = {
'type': order_type.value,
'market_order': market_order,
}
url, path = self.url_path_for(_p.FEE_PERCENTAGE,
path_arg=market_id.value)
headers = self._sign_payload(method='GET', path=path, params=params)
data = self.get(url, headers=headers, params=params)
return _m.FeePercentage.create_from_json(data['fee_percentage'])

def trade_transaction_pages(self,
market_id: _c.Market,
page: int=None,
per_page: int=None):
market_id = _c.Market.check(market_id)
# TODO: Pagination isn't working, it always returns 25 items
params = {
'page': page,
'per': per_page,
}
url, path = self.url_path_for(_p.TRADE_TRANSACTIONS,
path_arg=market_id.value)
headers = self._sign_payload(method='GET', path=path, params=params)
data = self.get(url, headers=headers, params=params)
# TODO: Response doesn't contain a meta field
return [_m.TradeTransaction.create_from_json(transaction)
for transaction in data['trade_transactions']]

# REPORTS -----------------------------------------------------------------
def _report(self,
market_id: _c.Market,
Expand Down
15 changes: 15 additions & 0 deletions trading_api_wrappers/surbtc/client_public.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,18 @@ def order_book(self, market_id: _c.Market):
url = self.url_for(_p.ORDER_BOOK, path_arg=market_id.value)
data = self.get(url)
return _m.OrderBook.create_from_json(data['order_book'])

def trade_transaction_pages(self,
market_id: _c.Market,
page: int=None,
per_page: int=None):
market_id = _c.Market.check(market_id)
params = {
'page': page,
'per': per_page,
}
url, path = self.url_path_for(_p.TRADE_TRANSACTIONS,
path_arg=market_id.value)
data = self.get(url, params=params)
return _m.TradeTransactionPages.create_from_json(
data['trade_transactions'], data.get('meta'))
2 changes: 2 additions & 0 deletions trading_api_wrappers/surbtc/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ class Currency(_Enum):
class Market(_Enum):
BTC_CLP = 'BTC-CLP'
BTC_COP = 'BTC-COP'
ETH_BTC = 'ETH-BTC'
ETH_CLP = 'ETH-CLP'
ETH_COP = 'ETH-BTC'

@staticmethod
def _format_value(value):
Expand Down
22 changes: 19 additions & 3 deletions trading_api_wrappers/surbtc/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ class PagesMeta(
def create_from_json(cls, meta):
if meta:
return cls(
current_page=meta['current_page'],
total_count=meta['total_count'],
total_pages=meta['total_pages']
current_page=int(meta['current_page']),
total_count=int(meta['total_count']),
total_pages=int(meta['total_pages']),
)
return meta

Expand Down Expand Up @@ -361,6 +361,22 @@ def create_from_json(cls, transaction):
)


class TradeTransactionPages(
namedtuple('trade_transaction_pages', [
'trade_transactions',
'meta',
])
):

@classmethod
def create_from_json(cls, transactions, pages_meta):
return cls(
trade_transactions=[TradeTransaction.create_from_json(transaction)
for transaction in transactions],
meta=PagesMeta.create_from_json(pages_meta),
)


class TransferData(
namedtuple('transfer', [
'type',
Expand Down

0 comments on commit ccd28bd

Please sign in to comment.