Skip to content

Commit

Permalink
Merge pull request #18 from onfido/feature/v3.3
Browse files Browse the repository at this point in the history
Support for API v3.3
  • Loading branch information
Phoebe-B authored Mar 2, 2022
2 parents e779347 + 659af1f commit 892f7e9
Show file tree
Hide file tree
Showing 16 changed files with 51 additions and 47 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.MD
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## v2.2.0, 2nd March 2022

- Update to use API v3.3

## v2.1.0, 24th June 2021

- Update to use API v3.2
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Version 2.0.0

The official wrapper for Onfido's API. Refer to the full [API documentation](https://documentation.onfido.com) for details of expected requests and responses for all resources.

This version uses Onfido API v3.2. Refer to our [API versioning guide](https://developers.onfido.com/guide/api-versioning-policy#client-libraries) for details of which client library versions use which versions of the API.
This version uses Onfido API v3.3. Refer to our [API versioning guide](https://developers.onfido.com/guide/api-versioning-policy#client-libraries) for details of which client library versions use which versions of the API.

This project supersedes the automatically generated [api-python-client](https://github.com/onfido/api-python-client) library (`onfido` in PyPI).

Expand Down
6 changes: 3 additions & 3 deletions onfido/regions.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@


class Region(Enum):
EU = "https://api.eu.onfido.com/v3.2/"
US = "https://api.us.onfido.com/v3.2/"
CA = "https://api.ca.onfido.com/v3.2/"
EU = "https://api.eu.onfido.com/v3.3/"
US = "https://api.us.onfido.com/v3.3/"
CA = "https://api.ca.onfido.com/v3.3/"

@property
def region_url(self):
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "onfido-python"
version = "2.1.0"
version = "2.2.0"
description = "The official wrapper for the Onfido API"
homepage = "https://github.com/onfido/onfido-python"
readme = "README.md"
Expand Down
2 changes: 1 addition & 1 deletion tests/test_address_picker.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@


def test_address_picker(requests_mock):
mock_create = requests_mock.get("https://api.eu.onfido.com/v3.2/addresses/pick?postcode=SW46EH", json=[])
mock_create = requests_mock.get("https://api.eu.onfido.com/v3.3/addresses/pick?postcode=SW46EH", json=[])
api.address.pick("SW46EH")
assert mock_create.called is True

14 changes: 7 additions & 7 deletions tests/test_applicants.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,34 +20,34 @@


def test_create_applicant(requests_mock):
mock_create = requests_mock.post("https://api.eu.onfido.com/v3.2/applicants/", json=[])
mock_create = requests_mock.post("https://api.eu.onfido.com/v3.3/applicants/", json=[])
api.applicant.create(applicant_details)
assert mock_create.called is True

def test_find_applicant(requests_mock):
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.2/applicants/{fake_uuid}", json=[])
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.3/applicants/{fake_uuid}", json=[])
api.applicant.find(fake_uuid)
assert mock_find.called is True

def test_update_applicant(requests_mock):
mock_update = requests_mock.put(f"https://api.eu.onfido.com/v3.2/applicants/{fake_uuid}", json=[])
mock_update = requests_mock.put(f"https://api.eu.onfido.com/v3.3/applicants/{fake_uuid}", json=[])
api.applicant.update(fake_uuid, applicant_details)
assert mock_update.called is True

def test_delete_applicant(requests_mock):
mock_delete = requests_mock.delete(f"https://api.eu.onfido.com/v3.2/applicants/{fake_uuid}", json=[])
mock_delete = requests_mock.delete(f"https://api.eu.onfido.com/v3.3/applicants/{fake_uuid}", json=[])
api.applicant.delete(fake_uuid)
assert mock_delete.called is True

def test_restore_applicant(requests_mock):
mock_restore = requests_mock.post(f"https://api.eu.onfido.com/v3.2/applicants/{fake_uuid}/restore", json=[])
mock_restore = requests_mock.post(f"https://api.eu.onfido.com/v3.3/applicants/{fake_uuid}/restore", json=[])
api.applicant.restore(fake_uuid)
assert mock_restore.called is True

def test_list_applicants(requests_mock):
mock_list = requests_mock.get("https://api.eu.onfido.com/v3.2/applicants", json=[])
mock_list = requests_mock.get("https://api.eu.onfido.com/v3.3/applicants", json=[])
api.applicant.all(include_deleted=True, per_page=5, page=2)
history = mock_list.request_history
assert mock_list.called is True
assert history[0].method == 'GET'
assert history[0].url == "https://api.eu.onfido.com/v3.2/applicants?include_deleted=True&per_page=5&page=2"
assert history[0].url == "https://api.eu.onfido.com/v3.3/applicants?include_deleted=True&per_page=5&page=2"
10 changes: 5 additions & 5 deletions tests/test_checks.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,28 @@


def test_create_check(requests_mock):
mock_create = requests_mock.post("https://api.eu.onfido.com/v3.2/checks/", json=[])
mock_create = requests_mock.post("https://api.eu.onfido.com/v3.3/checks/", json=[])
api.check.create(check_details)
assert mock_create.called is True
assert mock_create.last_request.text is not None

def test_find_check(requests_mock):
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.2/checks/{fake_uuid}", json=[])
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.3/checks/{fake_uuid}", json=[])
api.check.find(fake_uuid)
assert mock_find.called is True

def test_list_checks(requests_mock):
mock_list = requests_mock.get(f"https://api.eu.onfido.com/v3.2/checks/?applicant_id={fake_uuid}", json=[])
mock_list = requests_mock.get(f"https://api.eu.onfido.com/v3.3/checks/?applicant_id={fake_uuid}", json=[])
api.check.all(fake_uuid)
assert mock_list.called is True

def test_resume_check(requests_mock):
mock_resume = requests_mock.post(f"https://api.eu.onfido.com/v3.2/checks/{fake_uuid}/resume", json=[])
mock_resume = requests_mock.post(f"https://api.eu.onfido.com/v3.3/checks/{fake_uuid}/resume", json=[])
api.check.resume(fake_uuid)
assert mock_resume.called is True

def test_download_check(requests_mock):
mock_download = requests_mock.get(f"https://api.eu.onfido.com/v3.2/checks/{fake_uuid}/download", text="FAKE PDF BINARY", headers={"Content-type": "application/pdf"})
mock_download = requests_mock.get(f"https://api.eu.onfido.com/v3.3/checks/{fake_uuid}/download", text="FAKE PDF BINARY", headers={"Content-type": "application/pdf"})
onfido_download = api.check.download(fake_uuid)
assert mock_download.called is True
assert onfido_download.content_type == "application/pdf"
8 changes: 4 additions & 4 deletions tests/test_documents.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@


def test_upload_document(requests_mock):
mock_upload = requests_mock.post("https://api.eu.onfido.com/v3.2/documents/", json=[])
mock_upload = requests_mock.post("https://api.eu.onfido.com/v3.3/documents/", json=[])

request_body = {"applicant_id": fake_uuid,
"document_type": "driving_licence"}
Expand All @@ -27,17 +27,17 @@ def test_upload_document_missing_params():
api.document.upload(sample_file=string_io)

def test_find_document(requests_mock):
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.2/documents/{fake_uuid}", json=[])
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.3/documents/{fake_uuid}", json=[])
api.document.find(fake_uuid)
assert mock_find.called is True

def test_list_documents(requests_mock):
mock_list = requests_mock.get(f"https://api.eu.onfido.com/v3.2/documents?applicant_id={fake_uuid}", json=[])
mock_list = requests_mock.get(f"https://api.eu.onfido.com/v3.3/documents?applicant_id={fake_uuid}", json=[])
api.document.all(fake_uuid)
assert mock_list.called is True

def test_download_document(requests_mock):
mock_download = requests_mock.get(f"https://api.eu.onfido.com/v3.2/documents/{fake_uuid}/download", text="FAKE IMAGE BINARY", headers={"Content-type": "image/png"})
mock_download = requests_mock.get(f"https://api.eu.onfido.com/v3.3/documents/{fake_uuid}/download", text="FAKE IMAGE BINARY", headers={"Content-type": "image/png"})
onfido_download = api.document.download(fake_uuid)
assert mock_download.called is True
assert onfido_download.content_type == "image/png"
6 changes: 3 additions & 3 deletions tests/test_errors.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,19 @@ def test_mocked_status_code(requests_mock):
response = requests.Response()
response.status_code = 422

requests_mock.get(f"https://api.eu.onfido.com/v3.2/applicants/{fake_uuid}", exc=requests.HTTPError(response=response))
requests_mock.get(f"https://api.eu.onfido.com/v3.3/applicants/{fake_uuid}", exc=requests.HTTPError(response=response))
with pytest.raises(OnfidoRequestError):
api.applicant.find(fake_uuid)

def test_onfido_unknown_error(requests_mock):
requests_mock.get(f"https://api.eu.onfido.com/v3.2/applicants/{fake_uuid}", text="NOT VALID JSON")
requests_mock.get(f"https://api.eu.onfido.com/v3.3/applicants/{fake_uuid}", text="NOT VALID JSON")

with pytest.raises(OnfidoUnknownError):
api.applicant.find(fake_uuid)

def test_region_error():
with pytest.raises(OnfidoRegionError):
onfido.Api("<AN_API_TOKEN>", region="https://api.onfido.com/v3.2/")
onfido.Api("<AN_API_TOKEN>", region="https://api.onfido.com/v3.3/")

def test_errors():
with pytest.raises(OnfidoTimeoutError):
Expand Down
2 changes: 1 addition & 1 deletion tests/test_extraction.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@


def test_perform_extraction(requests_mock):
mock_upload = requests_mock.post("https://api.eu.onfido.com/v3.2/extractions/", json=[])
mock_upload = requests_mock.post("https://api.eu.onfido.com/v3.3/extractions/", json=[])

api.extraction.perform(fake_document_uuid)

Expand Down
8 changes: 4 additions & 4 deletions tests/test_live_photos.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@


def test_upload_photo(requests_mock):
mock_upload = requests_mock.post("https://api.eu.onfido.com/v3.2/live_photos/", json=[])
mock_upload = requests_mock.post("https://api.eu.onfido.com/v3.3/live_photos/", json=[])

sample_file = open("sample_photo.png", "rb")
request_body = {"advanced_validation": "true"}
Expand All @@ -18,17 +18,17 @@ def test_upload_photo(requests_mock):
assert mock_upload.called is True

def test_find_live_photo(requests_mock):
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.2/live_photos/{fake_uuid}", json=[])
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.3/live_photos/{fake_uuid}", json=[])
api.live_photo.find(fake_uuid)
assert mock_find.called is True

def test_list_live_photos(requests_mock):
mock_list = requests_mock.get(f"https://api.eu.onfido.com/v3.2/live_photos/?applicant_id={fake_uuid}", json=[])
mock_list = requests_mock.get(f"https://api.eu.onfido.com/v3.3/live_photos/?applicant_id={fake_uuid}", json=[])
api.live_photo.all(fake_uuid)
assert mock_list.called is True

def test_download_live_photo(requests_mock):
mock_download = requests_mock.get(f"https://api.eu.onfido.com/v3.2/live_photos/{fake_uuid}/download", text="FAKE IMAGE BINARY", headers={"Content-type": "image/png"})
mock_download = requests_mock.get(f"https://api.eu.onfido.com/v3.3/live_photos/{fake_uuid}/download", text="FAKE IMAGE BINARY", headers={"Content-type": "image/png"})
onfido_download = api.live_photo.download(fake_uuid)
assert mock_download.called is True
assert onfido_download.content_type == "image/png"
8 changes: 4 additions & 4 deletions tests/test_live_videos.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,23 @@


def test_find_live_video(requests_mock):
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.2/live_videos/{fake_uuid}", json=[])
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.3/live_videos/{fake_uuid}", json=[])
api.live_video.find(fake_uuid)
assert mock_find.called is True

def test_list_live_videos(requests_mock):
mock_list = requests_mock.get(f"https://api.eu.onfido.com/v3.2/live_videos/?applicant_id={fake_uuid}", json=[])
mock_list = requests_mock.get(f"https://api.eu.onfido.com/v3.3/live_videos/?applicant_id={fake_uuid}", json=[])
api.live_video.all(fake_uuid)
assert mock_list.called is True

def test_download_live_video(requests_mock):
mock_download = requests_mock.get(f"https://api.eu.onfido.com/v3.2/live_videos/{fake_uuid}/download", text="FAKE VIDEO BINARY", headers={"Content-type": "video/mp4"})
mock_download = requests_mock.get(f"https://api.eu.onfido.com/v3.3/live_videos/{fake_uuid}/download", text="FAKE VIDEO BINARY", headers={"Content-type": "video/mp4"})
onfido_download = api.live_video.download(fake_uuid)
assert mock_download.called is True
assert onfido_download.content_type == "video/mp4"

def test_download_live_video_frame(requests_mock):
mock_download = requests_mock.get(f"https://api.eu.onfido.com/v3.2/live_videos/{fake_uuid}/frame", text="FAKE VIDEO BINARY", headers={"Content-type": "video/mp4"})
mock_download = requests_mock.get(f"https://api.eu.onfido.com/v3.3/live_videos/{fake_uuid}/frame", text="FAKE VIDEO BINARY", headers={"Content-type": "video/mp4"})
onfido_download = api.live_video.download_frame(fake_uuid)
assert mock_download.called is True
assert onfido_download.content_type == "video/mp4"
6 changes: 3 additions & 3 deletions tests/test_regions.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,19 @@

def test_europe_region(requests_mock):
api = onfido.Api("<AN_API_TOKEN>", region=Region.EU)
mock_create = requests_mock.post("https://api.eu.onfido.com/v3.2/applicants/", json=[])
mock_create = requests_mock.post("https://api.eu.onfido.com/v3.3/applicants/", json=[])
api.applicant.create(applicant_details)
assert mock_create.called is True

def test_canada_region(requests_mock):
api = onfido.Api("<AN_API_TOKEN>", region=Region.CA)
mock_create = requests_mock.post("https://api.ca.onfido.com/v3.2/applicants/", json=[])
mock_create = requests_mock.post("https://api.ca.onfido.com/v3.3/applicants/", json=[])
api.applicant.create(applicant_details)
assert mock_create.called is True

def test_us_region(requests_mock):
api = onfido.Api("<AN_API_TOKEN>", region=Region.US)
mock_create = requests_mock.post("https://api.us.onfido.com/v3.2/applicants/", json=[])
mock_create = requests_mock.post("https://api.us.onfido.com/v3.3/applicants/", json=[])
api.applicant.create(applicant_details)
assert mock_create.called is True

8 changes: 4 additions & 4 deletions tests/test_reports.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@


def test_find_report(requests_mock):
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.2/reports/{fake_uuid}", json=[])
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.3/reports/{fake_uuid}", json=[])
api.report.find(fake_uuid)
assert mock_find.called is True

def test_list_reports(requests_mock):
mock_list = requests_mock.get(f"https://api.eu.onfido.com/v3.2/reports/?check_id={fake_uuid}", json=[])
mock_list = requests_mock.get(f"https://api.eu.onfido.com/v3.3/reports/?check_id={fake_uuid}", json=[])
api.report.all(fake_uuid)
assert mock_list.called is True

def test_resume_report(requests_mock):
mock_resume = requests_mock.post(f"https://api.eu.onfido.com/v3.2/reports/{fake_uuid}/resume", json=[])
mock_resume = requests_mock.post(f"https://api.eu.onfido.com/v3.3/reports/{fake_uuid}/resume", json=[])
api.report.resume(fake_uuid)
assert mock_resume.called is True

def test_cancel_report(requests_mock):
mock_cancel = requests_mock.post(f"https://api.eu.onfido.com/v3.2/reports/{fake_uuid}/cancel", json=[])
mock_cancel = requests_mock.post(f"https://api.eu.onfido.com/v3.3/reports/{fake_uuid}/cancel", json=[])
api.report.cancel(fake_uuid)
assert mock_cancel.called is True
2 changes: 1 addition & 1 deletion tests/test_sdk_token.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@


def test_generate_sdk_token(requests_mock):
mock_generate = requests_mock.post("https://api.eu.onfido.com/v3.2/sdk_token", json=[])
mock_generate = requests_mock.post("https://api.eu.onfido.com/v3.3/sdk_token", json=[])

request_body = {"applicant_id": fake_uuid,
"application_id": fake_uuid2}
Expand Down
10 changes: 5 additions & 5 deletions tests/test_webhooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,26 @@


def test_create_webhook(requests_mock):
mock_create = requests_mock.post("https://api.eu.onfido.com/v3.2/webhooks", json=[])
mock_create = requests_mock.post("https://api.eu.onfido.com/v3.3/webhooks", json=[])
api.webhook.create(webhook_details)
assert mock_create.called is True

def test_list_webhooks(requests_mock):
mock_list = requests_mock.get("https://api.eu.onfido.com/v3.2/webhooks", json=[])
mock_list = requests_mock.get("https://api.eu.onfido.com/v3.3/webhooks", json=[])
api.webhook.all()
assert mock_list.called is True

def test_find_webhook(requests_mock):
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.2/webhooks/{fake_uuid}", json=[])
mock_find = requests_mock.get(f"https://api.eu.onfido.com/v3.3/webhooks/{fake_uuid}", json=[])
api.webhook.find(fake_uuid)
assert mock_find.called is True

def test_edit_webhook(requests_mock):
mock_edit = requests_mock.put(f"https://api.eu.onfido.com/v3.2/webhooks/{fake_uuid}", json=[])
mock_edit = requests_mock.put(f"https://api.eu.onfido.com/v3.3/webhooks/{fake_uuid}", json=[])
api.webhook.edit(fake_uuid, webhook_details)
assert mock_edit.called is True

def test_delete_webhook(requests_mock):
mock_delete = requests_mock.delete(f"https://api.eu.onfido.com/v3.2/webhooks/{fake_uuid}", json=[])
mock_delete = requests_mock.delete(f"https://api.eu.onfido.com/v3.3/webhooks/{fake_uuid}", json=[])
api.webhook.delete(fake_uuid)
assert mock_delete.called is True

0 comments on commit 892f7e9

Please sign in to comment.