Skip to content

Commit

Permalink
Merge f7dd793 into be398eb
Browse files Browse the repository at this point in the history
  • Loading branch information
ob-stripe committed Dec 19, 2017
2 parents be398eb + f7dd793 commit d56d501
Show file tree
Hide file tree
Showing 57 changed files with 2,423 additions and 2,511 deletions.
28 changes: 27 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
sudo: false

language: python

python:
- "2.6"
- "2.7"
Expand All @@ -10,25 +12,49 @@ python:
- "3.7-dev"
- "pypy"
- "pypy3"

cache:
apt: true
directories:
- stripe-mock
pip: false
env: PYCURL_SSL_LIBRARY=gnutls

env:
global:
- PYCURL_SSL_LIBRARY=gnutls
- STRIPE_MOCK_VERSION=0.5.0

addons:
apt:
packages:
- libcurl4-gnutls-dev
- librtmp-dev

before_install:
# Unpack and start stripe-mock so that the test suite can talk to it
- |
if [ ! -d "stripe-mock/stripe-mock_${STRIPE_MOCK_VERSION}" ]; then
mkdir -p stripe-mock/stripe-mock_${STRIPE_MOCK_VERSION}/
curl -L "https://github.com/stripe/stripe-mock/releases/download/v${STRIPE_MOCK_VERSION}/stripe-mock_${STRIPE_MOCK_VERSION}_linux_amd64.tar.gz" -o "stripe-mock/stripe-mock_${STRIPE_MOCK_VERSION}_linux_amd64.tar.gz"
tar -zxf "stripe-mock/stripe-mock_${STRIPE_MOCK_VERSION}_linux_amd64.tar.gz" -C "stripe-mock/stripe-mock_${STRIPE_MOCK_VERSION}/"
fi
- |
stripe-mock/stripe-mock_${STRIPE_MOCK_VERSION}/stripe-mock > /dev/null &
STRIPE_MOCK_PID=$!
install:
- pip install -U setuptools pip
- pip install unittest2 mock pycurl flake8 tox-travis coveralls
- python setup.py clean --all
- python setup.py install

script:
- if [[ $TRAVIS_PYTHON_VERSION == '2.7' ]]; then flake8 stripe; fi
- python -W all -bb -W error::BytesWarning -m coverage.__main__ run setup.py test

after_success:
coveralls

matrix:
allow_failures:
- python: 3.7-dev
Expand Down
2 changes: 0 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
except ImportError:
from distutils.core import setup

from distutils.command.build_py import build_py

path, script = os.path.split(sys.argv[0])
os.chdir(os.path.abspath(path))
Expand Down Expand Up @@ -43,7 +42,6 @@

setup(
name='stripe',
cmdclass={'build_py': build_py},
version=VERSION,
description='Stripe python bindings',
long_description=long_description,
Expand Down
52 changes: 34 additions & 18 deletions tests/api_resources/abstract/test_api_resource.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,59 @@
from __future__ import absolute_import, division, print_function

import stripe
from tests.helper import StripeApiTestCase
from tests.helper import StripeTestCase


class MyResource(stripe.api_resources.abstract.APIResource):
pass


class APIResourceTests(StripeApiTestCase):
class APIResourceTests(StripeTestCase):

def test_retrieve_and_refresh(self):
self.mock_response({
'id': 'foo2',
'bobble': 'scrobble',
})
url = '/v1/myresources/foo%2A'
self.stub_request(
'get',
url,
{
'id': 'foo2',
'bobble': 'scrobble',
}
)

res = MyResource.retrieve('foo*', myparam=5)

url = '/v1/myresources/foo%2A'
self.requestor_mock.request.assert_called_with(
'get', url, {'myparam': 5}, None
self.assert_requested(
'get',
url,
{
'myparam': 5,
},
None
)

self.assertEqual('scrobble', res.bobble)
self.assertEqual('foo2', res.id)
self.assertEqual('reskey', res.api_key)
self.assertEqual('sk_test_123', res.api_key)

self.mock_response({
'frobble': 5,
})
url = '/v1/myresources/foo2'
self.stub_request(
'get',
url,
{
'frobble': 5,
}
)

res = res.refresh()

url = '/v1/myresources/foo2'
self.requestor_mock.request.assert_called_with(
'get', url, {'myparam': 5}, None
self.assert_requested(
'get',
url,
{
'myparam': 5,
},
None
)

self.assertEqual(5, res.frobble)
self.assertRaises(KeyError, res.__getitem__, 'bobble')

Expand Down
45 changes: 29 additions & 16 deletions tests/api_resources/abstract/test_createable_api_resource.py
Original file line number Diff line number Diff line change
@@ -1,39 +1,52 @@
from __future__ import absolute_import, division, print_function

import stripe
from tests.helper import StripeApiTestCase
from tests.helper import StripeTestCase


class MyCreatable(stripe.api_resources.abstract.CreateableAPIResource):
pass


class CreateableAPIResourceTests(StripeApiTestCase):
class CreateableAPIResourceTests(StripeTestCase):

def test_create(self):
self.mock_response({
'object': 'charge',
'foo': 'bar',
})
self.stub_request(
'post',
'/v1/mycreatables',
{
'object': 'charge',
'foo': 'bar',
}
)

res = MyCreatable.create()

self.requestor_mock.request.assert_called_with(
'post', '/v1/mycreatables', {}, None)

self.assert_requested(
'post',
'/v1/mycreatables',
{}
)
self.assertTrue(isinstance(res, stripe.Charge))
self.assertEqual('bar', res.foo)

def test_idempotent_create(self):
self.mock_response({
'object': 'charge',
'foo': 'bar',
})
self.stub_request(
'post',
'/v1/mycreatables',
{
'object': 'charge',
'foo': 'bar',
}
)

res = MyCreatable.create(idempotency_key='foo')

self.requestor_mock.request.assert_called_with(
'post', '/v1/mycreatables', {}, {'Idempotency-Key': 'foo'})

self.assert_requested(
'post',
'/v1/mycreatables',
{},
{'Idempotency-Key': 'foo'}
)
self.assertTrue(isinstance(res, stripe.Charge))
self.assertEqual('bar', res.foo)
22 changes: 15 additions & 7 deletions tests/api_resources/abstract/test_deletable_api_resource.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,33 @@
from __future__ import absolute_import, division, print_function

import stripe
from tests.helper import StripeApiTestCase
from tests.helper import StripeTestCase


class MyDeletable(stripe.api_resources.abstract.DeletableAPIResource):
pass


class DeletableAPIResourceTests(StripeApiTestCase):
class DeletableAPIResourceTests(StripeTestCase):
def test_delete(self):
self.mock_response({
'id': 'mid',
'deleted': True,
})
self.stub_request(
'delete',
'/v1/mydeletables/mid',
{
'id': 'mid',
'deleted': True,
}
)

obj = MyDeletable.construct_from({
'id': 'mid'
}, 'mykey')

self.assertTrue(obj is obj.delete())

self.assert_requested(
'delete',
'/v1/mydeletables/mid',
{}
)
self.assertEqual(True, obj.deleted)
self.assertEqual('mid', obj.id)
47 changes: 26 additions & 21 deletions tests/api_resources/abstract/test_listable_api_resource.py
Original file line number Diff line number Diff line change
@@ -1,37 +1,42 @@
from __future__ import absolute_import, division, print_function

import stripe
from tests.helper import StripeApiTestCase
from tests.helper import StripeTestCase


class MyListable(stripe.api_resources.abstract.ListableAPIResource):
pass


class ListableAPIResourceTests(StripeApiTestCase):
class ListableAPIResourceTests(StripeTestCase):

def test_all(self):
self.mock_response({
'object': 'list',
'data': [
{
'object': 'charge',
'name': 'jose',
},
{
'object': 'charge',
'name': 'curly',
}
],
'url': '/v1/charges',
'has_more': False,
})
self.stub_request(
'get',
'/v1/mylistables',
{
'object': 'list',
'data': [
{
'object': 'charge',
'name': 'jose',
},
{
'object': 'charge',
'name': 'curly',
}
],
'url': '/v1/charges',
'has_more': False,
}
)

res = MyListable.list()

self.requestor_mock.request.assert_called_with(
'get', '/v1/mylistables', {})

self.assert_requested(
'get',
'/v1/mylistables',
{}
)
self.assertEqual(2, len(res.data))
self.assertTrue(all(isinstance(obj, stripe.Charge)
for obj in res.data))
Expand Down
Loading

0 comments on commit d56d501

Please sign in to comment.