Skip to content

Commit 58f5ed3

Browse files
committed
Add the get_users parameters to User.all.
1 parent 83a24a4 commit 58f5ed3

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

intercom/user.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ def delete(cls, user_id=None, email=None):
131131
return cls(resp)
132132

133133
@classmethod
134-
def all(cls):
134+
def all(cls, page=None, per_page=None, tag_id=None, tag_name=None):
135135
""" Return all of the Users.
136136
137137
>>> users = User.all()
@@ -141,7 +141,8 @@ def all(cls):
141141
u'first.user@example.com'
142142
143143
"""
144-
resp = Intercom.get_users()
144+
resp = Intercom.get_users(
145+
page=page, per_page=per_page, tag_id=tag_id, tag_name=tag_name)
145146
return [cls(u) for u in resp['users']]
146147

147148
def save(self):

tests/unit/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,15 @@ def request(*args, **kwargs):
2525
return request
2626

2727

28-
def local_response():
28+
def local_response(**params):
2929
def _call(*args, **kwargs):
3030
response = Mock()
3131
reply = {}
3232
for name, value in kwargs.items():
3333
reply[name] = value
34+
for name, value in params.items():
35+
reply[name] = value
36+
3437
response.content = json.dumps(reply)
3538
response.status_code = 200
3639
return response

tests/unit/test_user.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from unittest import TestCase
1414

1515
from . import create_response
16+
from . import local_response
1617

1718
from intercom import AuthenticationError
1819
from intercom.user import CustomData
@@ -171,6 +172,18 @@ def test_get_users_valid(self):
171172
self.assertEqual('foobloggs@example.com', users[1].email)
172173
self.assertEqual('barbloggs@example.com', users[2].email)
173174

175+
@patch('requests.request', local_response(users=[]))
176+
def test_get_users_params(self):
177+
resp = User.all()
178+
resp = User.all(page=20)
179+
resp = User.all(per_page=10)
180+
resp = User.all(tag_id=100)
181+
resp = User.all(tag_name="starter")
182+
try:
183+
resp = User.all(no_such_param="value")
184+
except TypeError:
185+
pass
186+
174187
def test_properties(self):
175188
user = User()
176189
user.email = 'xxx@example.com'

0 commit comments

Comments
 (0)