Skip to content

Commit 95cdb5d

Browse files
committed
Merge branch 'release/2.1.0'
* release/2.1.0: bump version add support for simulate parameter for batch endpoints. slow down tests. send emails in post body instead of params for batch create Update .travis.yml
2 parents bc6ed04 + aaf4913 commit 95cdb5d

File tree

4 files changed

+41
-31
lines changed

4 files changed

+41
-31
lines changed

.travis.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
language: python
22

33
python:
4-
- "3.4"
5-
- "3.5"
64
- "3.6"
75
- "3.7"
86
- "3.8"

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.0.0
1+
2.1.0

emailable/client.py

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,49 +11,56 @@ def __init__(self, api_key):
1111
self.base_url = 'https://api.emailable.com/v1/'
1212

1313
def verify(self, email, smtp=True, accept_all=False, timeout=None):
14-
params = {
15-
'api_key': self.api_key,
16-
'email': email,
17-
'smtp': str(smtp).lower(),
18-
'accept_all': str(accept_all).lower(),
19-
'timeout': timeout
14+
options = {
15+
'params': {
16+
'api_key': self.api_key,
17+
'email': email,
18+
'smtp': str(smtp).lower(),
19+
'accept_all': str(accept_all).lower(),
20+
'timeout': timeout
21+
}
2022
}
2123

2224
url = self.base_url + 'verify'
23-
return self.__request('get', url, params)
24-
25-
def batch(self, emails, callback_url = None):
26-
if isinstance(emails, list):
27-
emails = ','.join(emails)
25+
return self.__request('get', url, options)
2826

29-
params = {
27+
def batch(self, emails, callback_url=None, simulate=None):
28+
options = {
29+
'params': {
3030
'api_key': self.api_key,
31-
'emails': emails,
32-
'url': callback_url
31+
'url': callback_url,
32+
'simulate': simulate
33+
},
34+
'json': {
35+
'emails': emails
36+
}
3337
}
3438
url = self.base_url + 'batch'
35-
return self.__request('post', url, params)
39+
return self.__request('post', url, options)
3640

37-
def batch_status(self, batch_id):
38-
params = {
41+
def batch_status(self, batch_id, simulate=None):
42+
options = {
43+
'params': {
3944
'api_key': self.api_key,
40-
'id': batch_id
45+
'id': batch_id,
46+
'simulate': simulate
47+
}
4148
}
4249

4350
url = self.base_url + 'batch'
44-
return self.__request('get', url, params)
51+
return self.__request('get', url, options)
4552

4653
def account(self):
47-
params = {
54+
options = {
55+
'params': {
4856
'api_key': self.api_key
57+
}
4958
}
5059

5160
url = self.base_url + 'account'
52-
return self.__request('get', url, params)
53-
54-
def __request(self, method, url, params):
55-
options = { 'params': params }
61+
return self.__request('get', url, options)
5662

63+
def __request(self, method, url, options):
5764
try:
5865
response = requests.request(method, url, **options)
5966
response.raise_for_status()

tests/test_client.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from unittest import TestCase
22
import emailable
3+
import time
34

45
class TestClient(TestCase):
56
def setUp(self):
67
self.client = emailable.Client('test_7aff7fc0142c65f86a00')
78
self.response = self.client.verify('[email protected]')
9+
time.sleep(0.25)
810

911
def test_invalid_api_key(self):
1012
client = emailable.Client('test_7aff7fc0141c65f86a00')
@@ -21,10 +23,10 @@ def test_missing_api_key(self):
2123
self.client.verify,
2224
2325
)
24-
26+
2527
def test_verify_returns_response(self):
2628
self.assertIsInstance(self.response, emailable.Response)
27-
29+
2830
def test_verification_role(self):
2931
response = self.client.verify('[email protected]')
3032
self.assertTrue(response.role)
@@ -54,9 +56,12 @@ def test_batch_creation(self):
5456
5557
)
5658
self.assertIsNotNone(response.id)
57-
59+
5860
def test_batch_status(self):
59-
response = self.client.batch_status('5cff27400000000000000000')
61+
response = self.client.batch(
62+
63+
)
64+
response = self.client.batch_status(response.id)
6065
self.assertIsNotNone(response.emails)
6166
self.assertIsNotNone(response.id)
6267
self.assertIsNotNone(response.reason_counts)

0 commit comments

Comments
 (0)