Skip to content

Commit 60e15d7

Browse files
author
Lev Rubel
committed
Fixing arguments and default arguments for several API methods
1 parent 4484349 commit 60e15d7

File tree

8 files changed

+98
-21
lines changed

8 files changed

+98
-21
lines changed

HISTORY.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
History
22
=================
33

4+
0.1.3 (2019-04-05)
5+
------------------
6+
7+
* Fixed several API calls where default values should not be provided.
8+
* Fixed places where default values were different than default API values.
9+
410
0.1.2 (2019-04-01)
511
------------------
612

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ A Python package for interacting with the Identix.one API
1919
* API documentation: https://kb.identix.one/
2020
* API changelog: https://kb.identix.one/#/apichangelog
2121
* Current supported most recent API version: **1.10.0**
22-
* Current stable package version: **0.1.2**
22+
* Current stable package version: **0.1.3**
2323

2424

2525
Installation

identixone/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
__author__ = """Identix One"""
44
__email__ = '[email protected]'
5-
__version__ = '0.1.2'
5+
__version__ = '0.1.3'

identixone/api/persons/v1/persons.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ class Persons(object):
66
def __init__(self, http_client):
77
self.http_client = http_client
88

9-
def create(self, photo, source, facesize=None, create_on_ha=False,
10-
create_on_junk=False, asm=False, liveness=False,
9+
def create(self, photo, source, facesize=None, asm=None, liveness=None,
10+
create_on_ha=False, create_on_junk=False,
1111
create_liveness_only=False):
1212
data = {
1313
'source': source,
@@ -31,14 +31,14 @@ def entry(self, id, facesize=None, create_on_ha=False,
3131
}
3232
return self.http_client.post('v1/persons/entry/', data=data)
3333

34-
def search(self, photo, asm=False, liveness=False):
34+
def search(self, photo, asm=None, liveness=None):
3535
data = {'asm': asm, 'liveness': liveness}
3636
files = {'photo': photo}
3737
return self.http_client.post(
3838
'v1/persons/search/', data=data, files=files)
3939

4040
def reinit_image(self, idxid, photo, source, conf=Conf.HA, facesize=None,
41-
liveness=False, reinit_liveness_only=False):
41+
liveness=None, reinit_liveness_only=False):
4242
data = {
4343
'source': source,
4444
'conf': conf,

identixone/api/users/v1/users.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ def __init__(self, http_client):
66
def me(self):
77
return self.http_client.get('v1/users/me/')
88

9-
def change_password(self, password, password2, reset_tokens=True):
9+
def change_password(self, password, password2, reset_tokens=None):
1010
data = {
1111
'password': password,
1212
'password2': password2,
@@ -24,10 +24,9 @@ def get_token(self, id_or_token):
2424
return self.http_client.get(
2525
'v1/users/tokens/{}/'.format(id_or_token))
2626

27-
def update_token(self, id_or_token, is_active=True):
28-
data = {'is_active': is_active}
27+
def update_token(self, id_or_token, **kwargs):
2928
return self.http_client.patch(
30-
'v1/users/tokens/{}/'.format(id_or_token), data=data)
29+
'v1/users/tokens/{}/'.format(id_or_token), data=kwargs)
3130

3231
def delete_token(self, id_or_token):
3332
return self.http_client.delete(

identixone/api/utility/v1/utility.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ def liveness(self, photo):
1414
files = {'photo': photo}
1515
return self.http_client.post('v1/utility/liveness/', files=files)
1616

17-
def compare(self, photo1, photo2, liveness_photo1, liveness_photo2,
18-
conf=Conf.HA):
17+
def compare(self, photo1, photo2,
18+
liveness_photo1=False, liveness_photo2=False, conf=Conf.HA):
1919
files = {'photo1': photo1, 'photo2': photo2}
2020
data = {
2121
'liveness_photo1': liveness_photo1,

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@
4040
test_suite='tests',
4141
tests_require=test_requirements,
4242
url='https://github.com/identixone/identixone-python',
43-
version='0.1.2',
43+
version='0.1.3',
4444
zip_safe=False,
4545
)

tests/api/test_api_modules.py

Lines changed: 80 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,25 +101,64 @@ def test_delete_notifications(self, mocked_send):
101101
class TestAPIPersonsModule(TestAPIModule):
102102

103103
@patch.object(Session, 'send')
104-
def test_create_persons(self, mocked_send):
104+
def test_create_persons_no_none_values_in_request(self, mocked_send):
105105
status_code = 200
106106
resp_body = {'key': 'value'}
107107
mocked_send.return_value = self.response(resp_body, status_code)
108108
response = self.client.persons.create(photo='photo', source='source')
109109
self.assertEqual(response.json(), resp_body)
110110
self.assertEqual(response.status_code, status_code)
111111

112+
sent_request_body = mocked_send.mock_calls[0][1][0].body.decode('utf-8')
113+
self.assertNotIn('name="asm"', sent_request_body)
114+
self.assertNotIn('name="liveness"', sent_request_body)
115+
self.assertNotIn('name="facesize"', sent_request_body)
116+
117+
@patch.object(Session, 'send')
118+
def test_create_persons_fill_optional_values_in_request(self, mocked_send):
119+
status_code = 200
120+
resp_body = {'key': 'value'}
121+
mocked_send.return_value = self.response(resp_body, status_code)
122+
response = self.client.persons.create(
123+
photo='photo', source='source',
124+
asm=True, liveness=True, facesize=25000)
125+
self.assertEqual(response.json(), resp_body)
126+
self.assertEqual(response.status_code, status_code)
127+
128+
sent_request_body = mocked_send.mock_calls[0][1][0].body.decode('utf-8')
129+
self.assertIn('name="asm"', sent_request_body)
130+
self.assertIn('name="liveness"', sent_request_body)
131+
self.assertIn('name="facesize"', sent_request_body)
132+
112133
@patch.object(Session, 'send')
113-
def test_search_persons(self, mocked_send):
134+
def test_search_persons_no_none_values_in_request(self, mocked_send):
114135
status_code = 200
115136
resp_body = {'key': 'value'}
116137
mocked_send.return_value = self.response(resp_body, status_code)
117138
response = self.client.persons.search(photo='photo')
118139
self.assertEqual(response.json(), resp_body)
119140
self.assertEqual(response.status_code, status_code)
120141

142+
sent_request_body = mocked_send.mock_calls[0][1][0].body.decode('utf-8')
143+
self.assertNotIn('name="asm"', sent_request_body)
144+
self.assertNotIn('name="liveness"', sent_request_body)
145+
121146
@patch.object(Session, 'send')
122-
def test_reinit_image_persons(self, mocked_send):
147+
def test_search_persons_fill_optional_values_in_request(self, mocked_send):
148+
status_code = 200
149+
resp_body = {'key': 'value'}
150+
mocked_send.return_value = self.response(resp_body, status_code)
151+
response = self.client.persons.search(
152+
photo='photo', asm=True, liveness=True)
153+
self.assertEqual(response.json(), resp_body)
154+
self.assertEqual(response.status_code, status_code)
155+
156+
sent_request_body = mocked_send.mock_calls[0][1][0].body.decode('utf-8')
157+
self.assertIn('name="asm"', sent_request_body)
158+
self.assertIn('name="liveness"', sent_request_body)
159+
160+
@patch.object(Session, 'send')
161+
def test_reinit_image_persons_no_none_values_in_request(self, mocked_send):
123162
status_code = 200
124163
resp_body = {'key': 'value'}
125164
mocked_send.return_value = self.response(resp_body, status_code)
@@ -128,6 +167,25 @@ def test_reinit_image_persons(self, mocked_send):
128167
self.assertEqual(response.json(), resp_body)
129168
self.assertEqual(response.status_code, status_code)
130169

170+
sent_request_body = mocked_send.mock_calls[0][1][0].body.decode('utf-8')
171+
self.assertNotIn('name="facesize"', sent_request_body)
172+
self.assertNotIn('name="liveness"', sent_request_body)
173+
174+
@patch.object(Session, 'send')
175+
def test_reinit_image_persons_fill_optional_values_in_request(self, mocked_send):
176+
status_code = 200
177+
resp_body = {'key': 'value'}
178+
mocked_send.return_value = self.response(resp_body, status_code)
179+
response = self.client.persons.reinit_image(
180+
idxid='1', photo='photo', source='source', conf=Conf.EXACT,
181+
liveness=True, facesize=25000)
182+
self.assertEqual(response.json(), resp_body)
183+
self.assertEqual(response.status_code, status_code)
184+
185+
sent_request_body = mocked_send.mock_calls[0][1][0].body.decode('utf-8')
186+
self.assertIn('name="facesize"', sent_request_body)
187+
self.assertIn('name="liveness"', sent_request_body)
188+
131189
@patch.object(Session, 'send')
132190
def test_reinit_id_persons(self, mocked_send):
133191
status_code = 200
@@ -308,15 +366,31 @@ def test_users_me(self, mocked_send):
308366
self.assertEqual(response.status_code, status_code)
309367

310368
@patch.object(Session, 'send')
311-
def test_users_change_password(self, mocked_send):
369+
def test_users_change_password_no_none_values_in_request(self, mocked_send):
312370
status_code = 200
313371
resp_body = {'key': 'value'}
314372
mocked_send.return_value = self.response(resp_body, status_code)
315373
response = self.client.users.change_password(
316-
password='p', password2='p', reset_tokens=False)
374+
password='p', password2='p')
317375
self.assertEqual(response.json(), resp_body)
318376
self.assertEqual(response.status_code, status_code)
319377

378+
sent_request_body = mocked_send.mock_calls[0][1][0].body
379+
self.assertNotIn('reset_tokens', sent_request_body)
380+
381+
@patch.object(Session, 'send')
382+
def test_users_change_password_reset_tokens_in_request(self, mocked_send):
383+
status_code = 200
384+
resp_body = {'key': 'value'}
385+
mocked_send.return_value = self.response(resp_body, status_code)
386+
response = self.client.users.change_password(
387+
password='p', password2='p', reset_tokens=True)
388+
self.assertEqual(response.json(), resp_body)
389+
self.assertEqual(response.status_code, status_code)
390+
391+
sent_request_body = mocked_send.mock_calls[0][1][0].body
392+
self.assertIn('reset_tokens', sent_request_body)
393+
320394
@patch.object(Session, 'send')
321395
def test_users_list_tokens(self, mocked_send):
322396
status_code = 200
@@ -410,9 +484,7 @@ def test_utility_compare(self, mocked_send):
410484
resp_body = {'key': 'value'}
411485
mocked_send.return_value = self.response(resp_body, status_code)
412486
response = self.client.utility.compare(
413-
photo1='photo1', photo2='photo2',
414-
liveness_photo1=False, liveness_photo2=False,
415-
conf=Conf.JUNK)
487+
photo1='photo1', photo2='photo2', conf=Conf.JUNK)
416488
self.assertEqual(response.json(), resp_body)
417489
self.assertEqual(response.status_code, status_code)
418490

0 commit comments

Comments
 (0)