Update Tests and Documentation

This commit is contained in:
Cameron Yick
2017-08-25 01:32:43 -04:00
parent 4dba25302a
commit 2d411a368e
3 changed files with 41 additions and 13 deletions

View File

@@ -74,6 +74,7 @@ Features
* Easy programmatic access to Tiingo API
* Coming soon: client-side validation of tickers, to save your API calls!
* Data validation of returned responses / case insensitivity
* Free software: MIT license
Credits

View File

@@ -2,9 +2,7 @@
# -*- coding: utf-8 -*-
"""Tests for `tiingo` package."""
import pytest
from tiingo import TiingoClient
@@ -22,13 +20,44 @@ def ticker_metadata_response():
return t.get_ticker_metadata("GOOGL")
def test_ticker_price(ticker_price_response):
"""Sample pytest test function with the pytest fixture as an argument."""
@pytest.fixture
def fund_metadata_response():
"""Test /tiingo/<ticker> endpoint"""
t = TiingoClient()
return t.get_fund_metadata("vfinx")
@pytest.fixture
def fund_metrics_response():
"""Test /tiingo/<ticker> endpoint"""
t = TiingoClient()
return t.get_fund_metrics("VFINX")
# PRICES ENDPOINTS
class TestTickerPrices(object):
def test_ticker_price(self, ticker_price_response):
"""Test the EOD Prices Endpoint"""
assert len(ticker_price_response) == 1
assert ticker_price_response.get('adjClose')
assert ticker_price_response[0].get('adjClose')
def test_ticker_metadata(ticker_metadata_response):
def test_ticker_metadata(self, ticker_metadata_response):
"""Refactor this with python data schemavalidation"""
assert ticker_metadata_response.get('ticker') == "GOOGL"
assert ticker_metadata_response.get("name")
# FUND ENDPOINTS
@pytest.mark.skip(reason="My API key doesn't have access to mutual funds API")
class TestMutualFunds(object):
def test_fund_metadata(self, fund_metadata_response):
"""Refactor this with python data schemavalidation"""
assert fund_metadata_response.get('ticker') == "vfinx"
assert fund_metadata_response.get("shareClass", startDate="2012-1-1",
endDate="2016-1-1")
def test_fund_metrics(self, fund_metrics_response):
"""Test Fund Level Metrics"""
assert len(fund_metrics_response) > 0
assert fund_metrics_response[0].get('managementFee')

View File

@@ -19,7 +19,6 @@ class TiingoClient(RestClient):
api_key = self._config['api_key']
except KeyError:
api_key = os.environ.get('TIINGO_API_KEY')
assert(api_key)
self._headers = {
@@ -33,7 +32,7 @@ class TiingoClient(RestClient):
# TICKER PRICE ENDPOINTS
# https://api.tiingo.com/docs/tiingo/daily
def get_price_metadata(self, ticker):
def get_ticker_metadata(self, ticker):
"""Return metadata for 1 ticker.
"""
url = "tiingo/daily/{}".format(ticker)
@@ -56,7 +55,6 @@ class TiingoClient(RestClient):
fmt (string): 'csv' or 'json'
frequency (string): Resample frequency
"""
url = "tiingo/daily/{}/prices".format(ticker)
params = {