Skip to content

Commit

Permalink
Begin writing tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
andygoldschmidt committed May 30, 2015
1 parent c16dfe3 commit 1edf1ae
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 0 deletions.
8 changes: 8 additions & 0 deletions .travis.yml
@@ -0,0 +1,8 @@
language: python
python:
- "2.7"
- "3.4"
# command to install dependencies
install: "pip install -r requirements.txt"
# command to run tests
script: py.test
3 changes: 3 additions & 0 deletions requirements.txt
@@ -1 +1,4 @@
coverage==3.7.1
pytest==2.7.1
pytest-mock==0.5.0
requests-oauthlib==0.5.0
1 change: 1 addition & 0 deletions tests/__init__.py
@@ -0,0 +1 @@
__author__ = 'andy'
76 changes: 76 additions & 0 deletions tests/test_client.py
@@ -0,0 +1,76 @@
import requests
import pytest
from kiefer.client import KieferClient, KieferClientError


@pytest.fixture
def setup(mocker):
class Setup:
resp = mocker.patch.object(requests.Response, '__init__')
resp.status_code = 200
resp.json = lambda: {'meta': {'error_type': 'CustomError',
'error_detail': 'custom error detail'}}
req_get = mocker.patch('requests.get')
req_get.return_value = resp

req_post = mocker.patch('requests.post')
req_post.return_value = resp

req_delete = mocker.patch('requests.delete')
req_delete.return_value = resp

client = KieferClient('access_token')
headers = {'Authorization': 'Bearer access_token'}
return Setup


def test_client():
client = KieferClient('access_token')
assert client.access_token == 'access_token'
assert client._headers['Authorization'] == 'Bearer access_token'


def test_get_helper(setup):
req_url = 'https://jawbone.com/nudge/api/v.1.1/myurl'
setup.client._get('myurl')
setup.req_get.assert_called_once_with(req_url, params=None,
headers=setup.headers)

setup.resp.status_code = 404
with pytest.raises(KieferClientError):
setup.client._get('myurl')


def test_post_helper(setup):
req_url = 'https://jawbone.com/nudge/api/v.1.1/myurl'
setup.client._post('myurl', payload={})
setup.req_post.assert_called_once_with(req_url, data={},
headers=setup.headers)

setup.resp.status_code = 404
with pytest.raises(KieferClientError):
setup.client._post('myurl', payload={'foo': 'bar'})


def test_delete_helper(setup):
req_url = 'https://jawbone.com/nudge/api/v.1.1/myurl'
setup.client._delete('myurl')
setup.req_delete.assert_called_once_with(req_url, headers=setup.headers)

setup.resp.status_code = 404
with pytest.raises(KieferClientError):
setup.client._delete('myurl')


def test_get_band_events(setup):
url = 'https://jawbone.com/nudge/api/v.1.1/users/@me/bandevents'
setup.client.get_band_events()
setup.req_get.assert_called_once_with(url, params=None,
headers=setup.headers)


def test_get_body_events(setup):
url = 'https://jawbone.com/nudge/api/v.1.1/users/@me/body_events'
setup.client.get_body_events()
setup.req_get.assert_called_once_with(url, params={},
headers=setup.headers)

0 comments on commit 1edf1ae

Please sign in to comment.