Skip to content

Commit aa00c2e

Browse files
author
Arnaud Breton
committed
Add __version__, improved tests
1 parent 1dc8431 commit aa00c2e

File tree

5 files changed

+31
-15
lines changed

5 files changed

+31
-15
lines changed

mailjet_rest/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44
from .client import Client
55

6-
__version__ = '0.1.0'
7-
__all__ = ('Client',)
6+
from ._version import __version__
7+
__all__ = (Client,)

mailjet_rest/_version.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
__version__ = "1.3.0"

mailjet_rest/client.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import requests
88
from requests.compat import urljoin
9+
from ._version import __version__
910

1011
requests.packages.urllib3.disable_warnings()
1112

@@ -14,6 +15,7 @@ class Config(object):
1415
API_URL = 'https://api.mailjet.com/'
1516
API_REF = 'http://dev.mailjet.com/email-api/v3/'
1617
version = 'v3'
18+
user_agent = 'mailjet-apiv3-python/'+ __version__
1719

1820
def __init__(self, version=None):
1921
if version is not None:
@@ -24,7 +26,7 @@ def __getitem__(self, key):
2426
# Append version to URL.
2527
# Forward slash is ignored if present in self.version.
2628
url = urljoin(url, self.version + '/')
27-
headers = {'Content-type': 'application/json', 'User-agent': 'mailjet-apiv3-python'}
29+
headers = {'Content-type': 'application/json', 'User-agent': self.user_agent}
2830
if key.lower() == 'contactslist_csvdata':
2931
url = urljoin(url, 'DATA/')
3032
headers['Content-type'] = 'text/plain'

setup.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,22 @@
66
import re
77
from setuptools import setup
88
from setuptools.command.test import test as TestCommand
9+
import re
910

1011
HERE = os.path.abspath(os.path.dirname(__file__))
1112
PACKAGE_NAME = 'mailjet_rest'
12-
VERSION = 'v1.3.0'
13+
14+
__version__ = re.search(
15+
r'__version__\s*=\s*[\'"]([^\'"]*)[\'"]', # It excludes inline comment too
16+
open('mailjet_rest/_version.py').read()).group(1)
1317

1418
setup(
1519
name=PACKAGE_NAME,
16-
version=VERSION,
20+
version=__version__,
1721
author='starenka',
1822
author_email='[email protected]',
19-
maintainer='Guillaume Badi',
20-
maintainer_email='gbadi@mailjet.com',
23+
maintainer='Mailjet',
24+
maintainer_email='api@mailjet.com',
2125
download_url='https://github.com/mailjet/mailjet-apiv3-python/releases/tag/v1.2.2',
2226
url='https://github.com/mailjet/mailjet-apiv3-python',
2327
description=('Mailjet V3 API wrapper'),
@@ -33,8 +37,8 @@
3337
'Programming Language :: Python :: 3.5',
3438
'Programming Language :: Python :: 3.6',
3539
'Topic :: Utilities'],
36-
license='GPLv3',
37-
keywords='mailjet api wrapper email client',
40+
license='MIT',
41+
keywords='Mailjet API v3 / v3.1 Python Wrapper',
3842

3943
include_package_data=True,
4044
install_requires=['requests>=2.4.3'],

test.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import unittest
2-
from mailjet_rest import Client
2+
from mailjet_rest import Client, __version__
33
import os
44

55

@@ -18,7 +18,7 @@ def test_get_no_param(self):
1818

1919
def test_get_valid_params(self):
2020
result = self.client.contact.get(filters={'limit': 2}).json()
21-
self.failUnless('Count' in result)
21+
self.failUnless('Count' >= 0 or Count <= 2)
2222

2323
def test_get_invalid_parameters(self):
2424
# invalid parameters are ignored
@@ -27,16 +27,19 @@ def test_get_invalid_parameters(self):
2727

2828
def test_get_with_data(self):
2929
# it shouldn't use data
30-
result = self.client.contact.get(data={'Email': 'gbadi@mailjet.com'})
30+
result = self.client.contact.get(data={'Email': 'api@mailjet.com'})
3131
self.failUnless(result.status_code == 200)
3232

3333
def test_get_with_action(self):
34-
result = self.client.contact_getcontactslists.get(id=5771382).json()
34+
result_cl = self.client.contactslist.get(filters={'limit': 1}).json()
35+
self.failUnless(result_cl['Count'] > 0 )
36+
result = self.client.contact_getcontactslists.get(result_cl['Data'][0]['ID']).json()
3537
self.failUnless('Count' in result)
3638

3739
def test_get_with_id_filter(self):
38-
result = self.client.contact.get(filter={'id': 5771382}).json()
39-
self.failUnless('Count' in result)
40+
result_contact = self.client.contact.get(filters={'limit': 1}).json()
41+
result_contact_with_id = self.client.contact.get(filter={'Email': result_contact['Data'][0]['Email']}).json()
42+
self.failUnless(result_contact_with_id['Data'][0]['Email'] == result_contact['Data'][0]['Email'])
4043

4144
def test_post_with_no_param(self):
4245
result = self.client.sender.create(data={}).json()
@@ -53,6 +56,12 @@ def test_client_custom_version(self):
5356
'https://api.mailjet.com/v3.1/send'
5457
)
5558

59+
def test_user_agent(self):
60+
self.client = Client(
61+
auth=self.auth,
62+
version='v3.1'
63+
)
64+
self.assertEqual(self.client.config.user_agent, 'mailjet-apiv3-python/'+__version__)
5665

5766
if __name__ == '__main__':
5867
unittest.main()

0 commit comments

Comments
 (0)