Skip to content

Commit d6e20f7

Browse files
committed
Added integration tests.
1 parent 554255a commit d6e20f7

20 files changed

+50
-25
lines changed

intercom/intercom.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ def api_call(func_to_decorate):
3434
def wrapper(*args, **kwargs):
3535
""" Decorator closure. """
3636
response = func_to_decorate(*args, **kwargs)
37-
print response.content
3837
if response.status_code == 401:
3938
raise AuthError("Invalid API key/username provided.")
4039
result = json.loads(response.content)
@@ -72,7 +71,7 @@ def _call(cls, method, url, params=None):
7271

7372
resp = requests.request(method, url, timeout=Intercom.timeout, \
7473
auth=(Intercom.app_id, Intercom.api_key),
75-
config={'verbose': sys.stderr}, **req_params)
74+
**req_params)
7675
return resp
7776

7877
@classmethod
@@ -95,7 +94,7 @@ def get_user(cls, email=None, user_id=None):
9594
email or user_id. """
9695

9796
params = { 'email': email, 'user_id': user_id }
98-
user_dict = Intercom._call('GET', '%sussers' % (Intercom.api_endpoint), params=params)
97+
user_dict = Intercom._call('GET', '%susers' % (Intercom.api_endpoint), params=params)
9998
return user_dict
10099

101100
@classmethod

intercom/message_thread.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ def find_all(cls, user_id=None, email=None):
2323

2424
@classmethod
2525
def create(cls, user_id=None, email=None, body=None):
26-
print "CREATE...."
2726
resp = Intercom.create_message_thread(user_id=user_id, email=email,
2827
body=body)
2928
return MessageThread(resp)
@@ -48,7 +47,7 @@ def created_at(self):
4847
def set_body(self, value):
4948
self['body'] = value
5049
body = property(None, set_body, None)
51-
50+
5251
@property
5352
def thread_id(self):
5453
return dict.get(self, 'thread_id', None)
@@ -86,7 +85,6 @@ def html(self):
8685
@property
8786
@from_timestamp_property
8887
def created_at(self):
89-
print "CREATED AT!"
9088
return dict.get(self, 'created_at', None)
9189

9290
class MessageAuthor(dict):

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44
# License: http://jkeyes.mit-license.org/
55
#
6-
requests==0.10.6
6+
requests==0.10.8
77
nose==1.1.2
88
coverage==3.5.1
99
mock==0.8.0

tests/__init__.py

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,3 @@
33
#
44
# License: http://jkeyes.mit-license.org/
55
#
6-
7-
import os
8-
9-
from os import environ as ENV
10-
from mock import Mock
11-
12-
DIRPATH = os.path.dirname(__file__)
13-
FIXTURES = os.path.join(DIRPATH, 'fixtures')
14-
15-
def create_response(status, fixture=None):
16-
def request(*args, **kwargs):
17-
response = Mock()
18-
response.status_code = status
19-
if fixture:
20-
fixture_path = os.path.join(FIXTURES, fixture)
21-
response.content = open(fixture_path).read()
22-
return response
23-
return request

tests/integration/test.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from unittest import TestCase
2+
3+
from intercom.intercom import AuthError
4+
from intercom.intercom import APIError
5+
from intercom.intercom import NotFoundError
6+
from intercom import Intercom
7+
from intercom import User
8+
from intercom import MessageThread
9+
from intercom import Impression
10+
11+
from nose.tools import raises
12+
13+
Intercom.app_id = 'dummy-app-id'
14+
Intercom.api_key = 'dummy-secret-key'
15+
16+
class IntegrationTest(TestCase):
17+
18+
def test_user(self):
19+
user = User.find(email='somebody@example.com')
20+
self.assertEqual('Somebody', user.name)
21+
22+
@raises(NotFoundError)
23+
def test_not_found(self):
24+
User.find(email='not-found@example.com')
25+
26+
@raises(APIError)
27+
def test_server_error(self):
28+
User.find(email='server-error@example.com')
29+
30+
@raises(AuthError)
31+
def test_bad_api_key(self):
32+
try:
33+
Intercom.app_id = 'bad-app-id'
34+
Intercom.api_key = 'bad-secret-key'
35+
User.find(email='not-found@example.com')
36+
finally:
37+
Intercom.app_id = 'dummy-app-id'
38+
Intercom.api_key = 'dummy-secret-key'
39+
40+
def test_message_threads(self):
41+
threads = MessageThread.find_all(email='somebody@example.com')
42+
self.assertEqual(1, len(threads))
43+
44+
def test_impression(self):
45+
impression = Impression.create(email='somebody@example.com')
46+
self.assertEqual(1, impression.unread_messages)
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)