|
11 | 11 | import sift |
12 | 12 |
|
13 | 13 | if sys.version_info[0] < 3: |
14 | | - import six.moves.urllib as urllib |
| 14 | + import six.moves.urllib as urllib |
15 | 15 | else: |
16 | 16 | import urllib.parse |
17 | 17 |
|
@@ -144,6 +144,7 @@ def workflow_statuses_json(): |
144 | 144 | ] |
145 | 145 | }""" |
146 | 146 |
|
| 147 | + |
147 | 148 | # A sample response from the /{version}/users/{userId}/score API. |
148 | 149 | USER_SCORE_RESPONSE_JSON = """{ |
149 | 150 | "status": 0, |
@@ -559,10 +560,10 @@ def test_sync_workflow_ok(self): |
559 | 560 | params={'return_workflow_status': 'true', 'return_route_info': 'true', |
560 | 561 | 'abuse_types': 'payment_abuse,content_abuse,legacy'}) |
561 | 562 | self.assertIsInstance(response, sift.client.Response) |
562 | | - assert(response.is_ok()) |
563 | | - assert(response.api_status == 0) |
564 | | - assert(response.api_error_message == "OK") |
565 | | - assert(response.body['workflow_statuses']['route']['name'] == 'my route') |
| 563 | + assert (response.is_ok()) |
| 564 | + assert (response.api_status == 0) |
| 565 | + assert (response.api_error_message == "OK") |
| 566 | + assert (response.body['workflow_statuses']['route']['name'] == 'my route') |
566 | 567 |
|
567 | 568 | def test_get_decisions_fails(self): |
568 | 569 | with self.assertRaises(ValueError): |
@@ -1410,6 +1411,48 @@ def test_update_psp_merchant_profile(self): |
1410 | 1411 | self.assertIsInstance(response, sift.client.Response) |
1411 | 1412 | assert ('address' in response.body) |
1412 | 1413 |
|
| 1414 | + def test_with__include_score_percentiles_ok(self): |
| 1415 | + event = '$transaction' |
| 1416 | + mock_response = mock.Mock() |
| 1417 | + mock_response.content = '{"status": 0, "error_message": "OK"}' |
| 1418 | + mock_response.json.return_value = json.loads(mock_response.content) |
| 1419 | + mock_response.status_code = 200 |
| 1420 | + mock_response.headers = response_with_data_header() |
| 1421 | + with mock.patch.object(self.sift_client.session, 'post') as mock_post: |
| 1422 | + mock_post.return_value = mock_response |
| 1423 | + response = self.sift_client.track(event, valid_transaction_properties(), include_score_percentiles=True) |
| 1424 | + mock_post.assert_called_with( |
| 1425 | + 'https://api.siftscience.com/v205/events', |
| 1426 | + data=mock.ANY, |
| 1427 | + headers=mock.ANY, |
| 1428 | + timeout=mock.ANY, |
| 1429 | + params={'fields': 'SCORE_PERCENTILES'}) |
| 1430 | + self.assertIsInstance(response, sift.client.Response) |
| 1431 | + assert (response.is_ok()) |
| 1432 | + assert (response.api_status == 0) |
| 1433 | + assert (response.api_error_message == "OK") |
| 1434 | + |
| 1435 | + def test_include_score_percentiles_as_false_ok(self): |
| 1436 | + event = '$transaction' |
| 1437 | + mock_response = mock.Mock() |
| 1438 | + mock_response.content = '{"status": 0, "error_message": "OK"}' |
| 1439 | + mock_response.json.return_value = json.loads(mock_response.content) |
| 1440 | + mock_response.status_code = 200 |
| 1441 | + mock_response.headers = response_with_data_header() |
| 1442 | + with mock.patch.object(self.sift_client.session, 'post') as mock_post: |
| 1443 | + mock_post.return_value = mock_response |
| 1444 | + response = self.sift_client.track(event, valid_transaction_properties(), include_score_percentiles=False) |
| 1445 | + mock_post.assert_called_with( |
| 1446 | + 'https://api.siftscience.com/v205/events', |
| 1447 | + data=mock.ANY, |
| 1448 | + headers=mock.ANY, |
| 1449 | + timeout=mock.ANY, |
| 1450 | + params={}) |
| 1451 | + self.assertIsInstance(response, sift.client.Response) |
| 1452 | + assert (response.is_ok()) |
| 1453 | + assert (response.api_status == 0) |
| 1454 | + assert (response.api_error_message == "OK") |
| 1455 | + |
1413 | 1456 |
|
1414 | 1457 | def main(): |
1415 | 1458 | unittest.main() |
|
0 commit comments