Skip to content

Commit 32dafb2

Browse files
daz-stripebrandur-stripe
authored andcommitted
Bindings for Terminal endpoints (#478)
* Bindings for Terminal endpoints * Handle lint and initial test failures * Bump StripeMock version
1 parent 582f8a9 commit 32dafb2

11 files changed

Lines changed: 181 additions & 2 deletions

File tree

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ cache:
2222
env:
2323
global:
2424
# If changing this number, please also change it in `tests/conftest.py`.
25-
- STRIPE_MOCK_VERSION=0.32.0
25+
- STRIPE_MOCK_VERSION=0.33.0
2626

2727
before_install:
2828
# Unpack and start stripe-mock so that the test suite can talk to it

stripe/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from stripe.api_resources import issuing # noqa
3030
from stripe.api_resources import reporting # noqa
3131
from stripe.api_resources import sigma # noqa
32+
from stripe.api_resources import terminal # noqa
3233

3334
# OAuth
3435
from stripe.oauth import OAuth # noqa
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from __future__ import absolute_import, division, print_function
2+
3+
# flake8: noqa
4+
5+
from stripe.api_resources.terminal.connection_token import ConnectionToken
6+
from stripe.api_resources.terminal.location import Location
7+
from stripe.api_resources.terminal.reader import Reader
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from __future__ import absolute_import, division, print_function
2+
3+
from stripe.api_resources.abstract import CreateableAPIResource
4+
5+
6+
class ConnectionToken(CreateableAPIResource):
7+
OBJECT_NAME = 'terminal.connection_token'
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from __future__ import absolute_import, division, print_function
2+
3+
from stripe.api_resources.abstract import CreateableAPIResource
4+
from stripe.api_resources.abstract import UpdateableAPIResource
5+
from stripe.api_resources.abstract import ListableAPIResource
6+
7+
8+
class Location(CreateableAPIResource, ListableAPIResource,
9+
UpdateableAPIResource):
10+
OBJECT_NAME = 'terminal.location'
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from __future__ import absolute_import, division, print_function
2+
3+
from stripe.api_resources.abstract import CreateableAPIResource
4+
from stripe.api_resources.abstract import UpdateableAPIResource
5+
from stripe.api_resources.abstract import ListableAPIResource
6+
7+
8+
class Reader(CreateableAPIResource, ListableAPIResource,
9+
UpdateableAPIResource):
10+
OBJECT_NAME = 'terminal.reader'

stripe/util.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,12 @@ def load_object_classes():
214214
api_resources.UsageRecord.OBJECT_NAME: api_resources.UsageRecord,
215215
api_resources.UsageRecordSummary.OBJECT_NAME:
216216
api_resources.UsageRecordSummary,
217+
api_resources.terminal.Location.OBJECT_NAME:
218+
api_resources.terminal.Location,
219+
api_resources.terminal.ConnectionToken.OBJECT_NAME:
220+
api_resources.terminal.ConnectionToken,
221+
api_resources.terminal.Reader.OBJECT_NAME:
222+
api_resources.terminal.Reader,
217223
}
218224

219225

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from __future__ import absolute_import, division, print_function
2+
3+
import stripe
4+
5+
6+
TEST_RESOURCE_ID = 'rdr_123'
7+
8+
9+
class TestConnectionToken(object):
10+
def test_is_creatable(self, request_mock):
11+
resource = stripe.terminal.ConnectionToken.create()
12+
request_mock.assert_requested(
13+
'post',
14+
'/v1/terminal/connection_tokens'
15+
)
16+
assert isinstance(resource, stripe.terminal.ConnectionToken)
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from __future__ import absolute_import, division, print_function
2+
3+
import stripe
4+
5+
6+
TEST_RESOURCE_ID = 'loc_123'
7+
8+
9+
class TestLocation(object):
10+
def test_is_creatable(self, request_mock):
11+
resource = stripe.terminal.Location.create(
12+
display_name='name',
13+
address={
14+
'line1': 'line1',
15+
'country': 'US',
16+
'state': 'CA',
17+
'postal_code': '12345',
18+
'city': 'San Francisco',
19+
}
20+
)
21+
request_mock.assert_requested(
22+
'post',
23+
'/v1/terminal/locations'
24+
)
25+
assert isinstance(resource, stripe.terminal.Location)
26+
27+
def test_is_listable(self, request_mock):
28+
resources = stripe.terminal.Location.list()
29+
request_mock.assert_requested(
30+
'get',
31+
'/v1/terminal/locations'
32+
)
33+
assert isinstance(resources.data, list)
34+
assert isinstance(resources.data[0], stripe.terminal.Location)
35+
36+
def test_is_modifiable(self, request_mock):
37+
resource = stripe.terminal.Location.modify(
38+
TEST_RESOURCE_ID,
39+
display_name='new-name'
40+
)
41+
request_mock.assert_requested(
42+
'post',
43+
'/v1/terminal/locations/%s' % TEST_RESOURCE_ID
44+
)
45+
assert isinstance(resource, stripe.terminal.Location)
46+
47+
def test_is_retrievable(self, request_mock):
48+
resource = stripe.terminal.Location.retrieve(TEST_RESOURCE_ID)
49+
request_mock.assert_requested(
50+
'get',
51+
'/v1/terminal/locations/%s' % TEST_RESOURCE_ID
52+
)
53+
assert isinstance(resource, stripe.terminal.Location)
54+
55+
def test_is_saveable(self, request_mock):
56+
resource = stripe.terminal.Location.retrieve(TEST_RESOURCE_ID)
57+
resource.display_name = 'new-name'
58+
location = resource.save()
59+
request_mock.assert_requested(
60+
'post',
61+
'/v1/terminal/locations/%s' % TEST_RESOURCE_ID
62+
)
63+
assert isinstance(resource, stripe.terminal.Location)
64+
assert resource is location
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
from __future__ import absolute_import, division, print_function
2+
3+
import stripe
4+
5+
6+
TEST_RESOURCE_ID = 'rdr_123'
7+
8+
9+
class TestReader(object):
10+
def test_is_creatable(self, request_mock):
11+
resource = stripe.terminal.Reader.create(
12+
registration_code='a-b-c',
13+
label='name'
14+
)
15+
request_mock.assert_requested(
16+
'post',
17+
'/v1/terminal/readers'
18+
)
19+
assert isinstance(resource, stripe.terminal.Reader)
20+
21+
def test_is_listable(self, request_mock):
22+
resources = stripe.terminal.Reader.list()
23+
request_mock.assert_requested(
24+
'get',
25+
'/v1/terminal/readers'
26+
)
27+
assert isinstance(resources.data, list)
28+
assert isinstance(resources.data[0], stripe.terminal.Reader)
29+
30+
def test_is_modifiable(self, request_mock):
31+
resource = stripe.terminal.Reader.modify(
32+
TEST_RESOURCE_ID,
33+
label='new-name'
34+
)
35+
request_mock.assert_requested(
36+
'post',
37+
'/v1/terminal/readers/%s' % TEST_RESOURCE_ID
38+
)
39+
assert isinstance(resource, stripe.terminal.Reader)
40+
41+
def test_is_retrievable(self, request_mock):
42+
resource = stripe.terminal.Reader.retrieve(TEST_RESOURCE_ID)
43+
request_mock.assert_requested(
44+
'get',
45+
'/v1/terminal/readers/%s' % TEST_RESOURCE_ID
46+
)
47+
assert isinstance(resource, stripe.terminal.Reader)
48+
49+
def test_is_saveable(self, request_mock):
50+
resource = stripe.terminal.Reader.retrieve(TEST_RESOURCE_ID)
51+
resource.label = 'new-name'
52+
reader = resource.save()
53+
request_mock.assert_requested(
54+
'post',
55+
'/v1/terminal/readers/%s' % TEST_RESOURCE_ID
56+
)
57+
assert isinstance(resource, stripe.terminal.Reader)
58+
assert resource is reader

0 commit comments

Comments
 (0)