diff --git a/.gitignore b/.gitignore index 4391dcbf..538ee107 100644 --- a/.gitignore +++ b/.gitignore @@ -41,7 +41,7 @@ htmlcov/ .coverage.* .cache nosetests.xml -coverage.xml +coverage.* *,cover .hypothesis/ @@ -102,3 +102,5 @@ examples/yoti_example_flask/static/YotiSelfie.jpg #.pem files for examples examples/yoti_example_django/*.pem examples/yoti_example_flask/*.pem + +.scannerwork \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..654b9b23 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,10 @@ +- repo: https://github.com/ambv/black + rev: stable + hooks: + - id: black +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v1.2.3 + hooks: + - id: flake8 + args: + - --ignore=E501,W5 diff --git a/examples/aml/app.py b/examples/aml/app.py index e301a38a..688acb99 100644 --- a/examples/aml/app.py +++ b/examples/aml/app.py @@ -7,11 +7,11 @@ from yoti_python_sdk import Client from yoti_python_sdk import aml -dotenv_path = join(dirname(__file__), '.env') +dotenv_path = join(dirname(__file__), ".env") load_dotenv(dotenv_path) -YOTI_CLIENT_SDK_ID = environ.get('YOTI_CLIENT_SDK_ID') -YOTI_KEY_FILE_PATH = environ.get('YOTI_KEY_FILE_PATH') +YOTI_CLIENT_SDK_ID = environ.get("YOTI_CLIENT_SDK_ID") +YOTI_KEY_FILE_PATH = environ.get("YOTI_KEY_FILE_PATH") # The following exits cleanly on Ctrl-C, @@ -25,11 +25,7 @@ def cli_exception(exception_type, value, tb): family_name = "Heath" aml_address = aml.AmlAddress(country="GBR") -aml_profile = aml.AmlProfile( - given_names, - family_name, - aml_address -) +aml_profile = aml.AmlProfile(given_names, family_name, aml_address) if sys.stdin.isatty(): sys.excepthook = cli_exception diff --git a/examples/aml/requirements.txt b/examples/aml/requirements.txt index e0308bc2..e0bb5113 100644 --- a/examples/aml/requirements.txt +++ b/examples/aml/requirements.txt @@ -1,2 +1,2 @@ -yoti>=2.7.0 +yoti>=2.8.0 python-dotenv>=0.7.1 diff --git a/examples/yoti_example_django/app_settings.py b/examples/yoti_example_django/app_settings.py index 4c88d947..f9b14cb6 100644 --- a/examples/yoti_example_django/app_settings.py +++ b/examples/yoti_example_django/app_settings.py @@ -1,5 +1,5 @@ from os import environ -YOTI_SCENARIO_ID = environ.get('YOTI_SCENARIO_ID') -YOTI_CLIENT_SDK_ID = environ.get('YOTI_CLIENT_SDK_ID') -YOTI_KEY_FILE_PATH = environ.get('YOTI_KEY_FILE_PATH') +YOTI_SCENARIO_ID = environ.get("YOTI_SCENARIO_ID") +YOTI_CLIENT_SDK_ID = environ.get("YOTI_CLIENT_SDK_ID") +YOTI_KEY_FILE_PATH = environ.get("YOTI_KEY_FILE_PATH") diff --git a/examples/yoti_example_django/requirements.in b/examples/yoti_example_django/requirements.in index 6495580e..bac7e98d 100644 --- a/examples/yoti_example_django/requirements.in +++ b/examples/yoti_example_django/requirements.in @@ -4,4 +4,4 @@ django-sslserver>=0.2.0 python-dotenv>=0.7.1 requests>=2.20.0 urllib3>=1.24.2 -yoti>=2.7.0 +yoti>=2.8.0 diff --git a/examples/yoti_example_django/requirements.txt b/examples/yoti_example_django/requirements.txt index 480fc7ea..19059855 100644 --- a/examples/yoti_example_django/requirements.txt +++ b/examples/yoti_example_django/requirements.txt @@ -23,4 +23,7 @@ requests==2.21.0 six==1.11.0 # via cryptography, protobuf, pyopenssl sqlparse==0.3.0 # via django urllib3==1.24.2 -yoti==2.7.0 +yoti==2.8.0 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools==41.1.0 # via django-sslserver, protobuf diff --git a/examples/yoti_example_django/yoti_example/settings.py b/examples/yoti_example_django/yoti_example/settings.py index a06faebd..73bd1b2a 100644 --- a/examples/yoti_example_django/yoti_example/settings.py +++ b/examples/yoti_example_django/yoti_example/settings.py @@ -21,7 +21,7 @@ # See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'p3dh1cx&ey8oesy-nj_md-ouo75xi548m22j^zrv((d1@k%%3!' +SECRET_KEY = "p3dh1cx&ey8oesy-nj_md-ouo75xi548m22j^zrv((d1@k%%3!" # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True @@ -31,52 +31,52 @@ # Application definition INSTALLED_APPS = [ - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'sslserver' + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.contenttypes", + "django.contrib.sessions", + "django.contrib.messages", + "django.contrib.staticfiles", + "sslserver", ] MIDDLEWARE = [ - 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', + "django.middleware.security.SecurityMiddleware", + "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.common.CommonMiddleware", + "django.middleware.csrf.CsrfViewMiddleware", + "django.contrib.auth.middleware.AuthenticationMiddleware", + "django.contrib.messages.middleware.MessageMiddleware", + "django.middleware.clickjacking.XFrameOptionsMiddleware", ] -ROOT_URLCONF = 'yoti_example.urls' +ROOT_URLCONF = "yoti_example.urls" TEMPLATES = [ { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [join(BASE_DIR, 'yoti_example/templates')], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - ], + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [join(BASE_DIR, "yoti_example/templates")], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + ] }, - }, + } ] -WSGI_APPLICATION = 'yoti_example.wsgi.application' +WSGI_APPLICATION = "yoti_example.wsgi.application" # Database # https://docs.djangoproject.com/en/1.10/ref/settings/#databases DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': join(BASE_DIR, 'db.sqlite3'), + "default": { + "ENGINE": "django.db.backends.sqlite3", + "NAME": join(BASE_DIR, "db.sqlite3"), } } @@ -85,25 +85,19 @@ AUTH_PASSWORD_VALIDATORS = [ { - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator" }, + {"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator"}, + {"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator"}, + {"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator"}, ] # Internationalization # https://docs.djangoproject.com/en/1.10/topics/i18n/ -LANGUAGE_CODE = 'en-us' +LANGUAGE_CODE = "en-us" -TIME_ZONE = 'UTC' +TIME_ZONE = "UTC" USE_I18N = True @@ -114,8 +108,8 @@ # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ -STATIC_URL = '/static/' -STATICFILES_FOLDER_NAME = 'static' -PROJECT_DIR = 'yoti_example/' +STATIC_URL = "/static/" +STATICFILES_FOLDER_NAME = "static" +PROJECT_DIR = "yoti_example/" STATIC_ROOT = os.path.join(BASE_DIR, STATICFILES_FOLDER_NAME) -STATICFILES_DIRS = os.path.join(PROJECT_DIR, STATICFILES_FOLDER_NAME), +STATICFILES_DIRS = (os.path.join(PROJECT_DIR, STATICFILES_FOLDER_NAME),) diff --git a/examples/yoti_example_django/yoti_example/templates/attribute_snippet.html b/examples/yoti_example_django/yoti_example/templates/attribute_snippet.html index 04fa0e9b..0b5c894a 100644 --- a/examples/yoti_example_django/yoti_example/templates/attribute_snippet.html +++ b/examples/yoti_example_django/yoti_example/templates/attribute_snippet.html @@ -13,6 +13,18 @@ {% for image in prop.value %} {% endfor %} + {% elif prop.name == "document_details" %} + + + + + {% if prop.value.expiration_date %} + + {% endif %} + {% if prop.value.issuing_authority %} + + {% endif %} +
Type{{ prop.value.document_type }}
Issuing Country{{ prop.value.issuing_country }}
Document Number{{ prop.value.document_number }}
Expiration Date{{ prop.value.expiration_date }}
Issuing Authority{{ prop.value.issuing_authority }}
{% elif prop.name == "structured_postal_address" %} {% for key, value in prop.value.items %} diff --git a/examples/yoti_example_django/yoti_example/templates/dynamic-share.html b/examples/yoti_example_django/yoti_example/templates/dynamic-share.html new file mode 100644 index 00000000..38799e85 --- /dev/null +++ b/examples/yoti_example_django/yoti_example/templates/dynamic-share.html @@ -0,0 +1,80 @@ + + + + + + Dynamic Share example + + + + + +
+
+
+ Yoti +
+ +

We now accept Yoti

+ +
+
+
+ + + + +
+ +
+

The Yoti app is free to download and use:

+ +
+ + Download on the App Store + + + + get it on Google Play + +
+
+
+ + + + + diff --git a/examples/yoti_example_django/yoti_example/templates/index.html b/examples/yoti_example_django/yoti_example/templates/index.html index 832adc15..26070ac6 100644 --- a/examples/yoti_example_django/yoti_example/templates/index.html +++ b/examples/yoti_example_django/yoti_example/templates/index.html @@ -70,7 +70,8 @@

The Yoti app is free to download and use: diff --git a/examples/yoti_example_django/yoti_example/urls.py b/examples/yoti_example_django/yoti_example/urls.py index bee93d7f..4aa44902 100644 --- a/examples/yoti_example_django/yoti_example/urls.py +++ b/examples/yoti_example_django/yoti_example/urls.py @@ -16,10 +16,11 @@ from django.conf.urls import url from django.contrib import admin -from .views import IndexView, AuthView +from .views import IndexView, AuthView, DynamicShareView urlpatterns = [ - url(r'^$', IndexView.as_view(), name='index'), - url(r'^yoti/auth/$', AuthView.as_view(), name='auth'), - url(r'^admin/', admin.site.urls), + url(r"^$", IndexView.as_view(), name="index"), + url(r"^yoti/auth/$", AuthView.as_view(), name="auth"), + url(r"^admin/", admin.site.urls), + url(r"^dynamic-share/$", DynamicShareView.as_view(), name="dynamic-share"), ] diff --git a/examples/yoti_example_django/yoti_example/views.py b/examples/yoti_example_django/yoti_example/views.py index 4972227f..7b908f77 100644 --- a/examples/yoti_example_django/yoti_example/views.py +++ b/examples/yoti_example_django/yoti_example/views.py @@ -1,51 +1,88 @@ from django.views.generic import TemplateView from dotenv import load_dotenv, find_dotenv -load_dotenv(find_dotenv()) from yoti_python_sdk import Client +from yoti_python_sdk.dynamic_sharing_service import ( + DynamicScenarioBuilder, + create_share_url, +) +from yoti_python_sdk.dynamic_sharing_service.policy import DynamicPolicyBuilder + +load_dotenv(find_dotenv()) + from app_settings import ( YOTI_SCENARIO_ID, YOTI_CLIENT_SDK_ID, - YOTI_KEY_FILE_PATH -) + YOTI_KEY_FILE_PATH, +) # noqa class IndexView(TemplateView): - template_name = 'index.html' + template_name = "index.html" def get(self, request, *args, **kwargs): - return self.render_to_response({'scenario_id': YOTI_SCENARIO_ID}) + return self.render_to_response( + {"scenario_id": YOTI_SCENARIO_ID, "client_sdk_id": YOTI_CLIENT_SDK_ID} + ) + + +class DynamicShareView(TemplateView): + template_name = "dynamic-share.html" + + def get(self, request, *args, **kwargs): + client = Client(YOTI_CLIENT_SDK_ID, YOTI_KEY_FILE_PATH) + policy = ( + DynamicPolicyBuilder() + .with_full_name() + .with_age_over(18) + .with_email() + .build() + ) + scenario = ( + DynamicScenarioBuilder() + .with_policy(policy) + .with_callback_endpoint("/yoti/auth") + .build() + ) + share = create_share_url(client, scenario) + context = { + "yoti_client_sdk_id": YOTI_CLIENT_SDK_ID, + "yoti_share_url": share.share_url, + } + return self.render_to_response(context) class AuthView(TemplateView): - template_name = 'profile.html' + template_name = "profile.html" def get(self, request, *args, **kwargs): client = Client(YOTI_CLIENT_SDK_ID, YOTI_KEY_FILE_PATH) - activity_details = client.get_activity_details(request.GET['token']) + activity_details = client.get_activity_details(request.GET["token"]) profile = activity_details.profile profile_dict = vars(profile) - context = profile_dict.get('attributes') - context['base64_selfie_uri'] = getattr(activity_details, 'base64_selfie_uri') - context['user_id'] = getattr(activity_details, 'user_id') - context['parent_remember_me_id'] = getattr(activity_details, 'parent_remember_me_id') - context['receipt_id'] = getattr(activity_details, 'receipt_id') - context['timestamp'] = getattr(activity_details, 'timestamp') + context = profile_dict.get("attributes") + context["base64_selfie_uri"] = getattr(activity_details, "base64_selfie_uri") + context["user_id"] = getattr(activity_details, "user_id") + context["parent_remember_me_id"] = getattr( + activity_details, "parent_remember_me_id" + ) + context["receipt_id"] = getattr(activity_details, "receipt_id") + context["timestamp"] = getattr(activity_details, "timestamp") # change this string according to the age condition defined in Yoti Hub - age_verified = profile.get_attribute('age_over:18') + age_verified = profile.get_attribute("age_over:18") if age_verified is not None: - context['age_verified'] = age_verified + context["age_verified"] = age_verified - selfie = context.get('selfie') + selfie = context.get("selfie") if selfie is not None: self.save_image(selfie.value) return self.render_to_response(context) @staticmethod def save_image(selfie_data): - fd = open('yoti_example/static/YotiSelfie.jpg', 'wb') + fd = open("yoti_example/static/YotiSelfie.jpg", "wb") fd.write(selfie_data) fd.close() diff --git a/examples/yoti_example_flask/app.py b/examples/yoti_example_flask/app.py index 11a7d4b0..88d823ac 100644 --- a/examples/yoti_example_flask/app.py +++ b/examples/yoti_example_flask/app.py @@ -6,56 +6,78 @@ from flask import Flask, render_template, request from yoti_python_sdk import Client +from yoti_python_sdk.dynamic_sharing_service.policy import DynamicPolicyBuilder +from yoti_python_sdk.dynamic_sharing_service import DynamicScenarioBuilder +from yoti_python_sdk.dynamic_sharing_service import create_share_url -dotenv_path = join(dirname(__file__), '.env') +dotenv_path = join(dirname(__file__), ".env") load_dotenv(dotenv_path) -from settings import ( - YOTI_SCENARIO_ID, - YOTI_CLIENT_SDK_ID, - YOTI_KEY_FILE_PATH, -) +from settings import YOTI_SCENARIO_ID, YOTI_CLIENT_SDK_ID, YOTI_KEY_FILE_PATH # noqa app = Flask(__name__) def save_image(selfie_data): - upload_path = os.path.join(app.root_path, 'static', 'YotiSelfie.jpg') - fd = open(upload_path, 'wb') + upload_path = os.path.join(app.root_path, "static", "YotiSelfie.jpg") + fd = open(upload_path, "wb") fd.write(selfie_data) fd.close() -@app.route('/') +@app.route("/") def index(): - return render_template('index.html', scenario_id=YOTI_SCENARIO_ID) + return render_template( + "index.html", scenario_id=YOTI_SCENARIO_ID, client_sdk_id=YOTI_CLIENT_SDK_ID + ) -@app.route('/yoti/auth') +@app.route("/dynamic-share") +def dynamic_share(): + client = Client(YOTI_CLIENT_SDK_ID, YOTI_KEY_FILE_PATH) + policy = ( + DynamicPolicyBuilder().with_full_name().with_age_over(18).with_email().build() + ) + scenario = ( + DynamicScenarioBuilder() + .with_policy(policy) + .with_callback_endpoint("/yoti/auth") + .build() + ) + share = create_share_url(client, scenario) + return render_template( + "dynamic-share.html", + yoti_client_sdk_id=YOTI_CLIENT_SDK_ID, + yoti_share_url=share.share_url, + ) + + +@app.route("/yoti/auth") def auth(): client = Client(YOTI_CLIENT_SDK_ID, YOTI_KEY_FILE_PATH) - activity_details = client.get_activity_details(request.args['token']) + activity_details = client.get_activity_details(request.args["token"]) profile = activity_details.profile profile_dict = vars(profile) - context = profile_dict.get('attributes') - context['base64_selfie_uri'] = getattr(activity_details, 'base64_selfie_uri') - context['user_id'] = getattr(activity_details, 'user_id') - context['parent_remember_me_id'] = getattr(activity_details, 'parent_remember_me_id') - context['receipt_id'] = getattr(activity_details, 'receipt_id') - context['timestamp'] = getattr(activity_details, 'timestamp') + context = profile_dict.get("attributes") + context["base64_selfie_uri"] = getattr(activity_details, "base64_selfie_uri") + context["user_id"] = getattr(activity_details, "user_id") + context["parent_remember_me_id"] = getattr( + activity_details, "parent_remember_me_id" + ) + context["receipt_id"] = getattr(activity_details, "receipt_id") + context["timestamp"] = getattr(activity_details, "timestamp") # change this string according to the age condition defined in Yoti Hub - age_verified = profile.get_attribute('age_over:18') + age_verified = profile.get_attribute("age_over:18") if age_verified is not None: - context['age_verified'] = age_verified + context["age_verified"] = age_verified - selfie = context.get('selfie') + selfie = context.get("selfie") if selfie is not None: save_image(selfie.value) - return render_template('profile.html', - **context) + return render_template("profile.html", **context) -if __name__ == '__main__': - app.run(host="0.0.0.0", ssl_context='adhoc') +if __name__ == "__main__": + app.run(host="0.0.0.0", ssl_context="adhoc") diff --git a/examples/yoti_example_flask/requirements.in b/examples/yoti_example_flask/requirements.in index 83e637ad..59378ead 100644 --- a/examples/yoti_example_flask/requirements.in +++ b/examples/yoti_example_flask/requirements.in @@ -5,4 +5,4 @@ pyopenssl>=19.0.0 python-dotenv>=0.7.1 requests>=2.20.0 urllib3>=1.24.2 -yoti>=2.7.0 +yoti>=2.8.0 diff --git a/examples/yoti_example_flask/requirements.txt b/examples/yoti_example_flask/requirements.txt index ed381f7b..284ba853 100644 --- a/examples/yoti_example_flask/requirements.txt +++ b/examples/yoti_example_flask/requirements.txt @@ -1,28 +1,31 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --output-file=requirements.txt requirements.in -# -asn1==2.2.0 # via yoti -asn1crypto==0.24.0 # via cryptography -certifi==2018.4.16 # via requests -cffi==1.11.5 # via cryptography -chardet==3.0.4 # via requests -click==6.7 # via flask -cryptography==2.5 -flask==1.0.2 -future==0.16.0 # via yoti -idna==2.7 # via requests -itsdangerous==0.24 # via flask -jinja2==2.10.1 -markupsafe==1.0 # via jinja2 -protobuf==3.6.0 # via yoti -pycparser==2.18 # via cffi -pyopenssl==19.0.0 -python-dotenv==0.8.2 -requests==2.21.0 -six==1.11.0 # via cryptography, protobuf, pyopenssl -urllib3==1.24.2 -werkzeug==0.14.1 # via flask -yoti==2.7.0 +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --output-file=requirements.txt requirements.in +# +asn1==2.2.0 # via yoti +asn1crypto==0.24.0 # via cryptography +certifi==2018.4.16 # via requests +cffi==1.11.5 # via cryptography +chardet==3.0.4 # via requests +click==6.7 # via flask +cryptography==2.5 +flask==1.0.2 +future==0.16.0 # via yoti +idna==2.7 # via requests +itsdangerous==0.24 # via flask +jinja2==2.10.1 +markupsafe==1.0 # via jinja2 +protobuf==3.6.0 # via yoti +pycparser==2.18 # via cffi +pyopenssl==19.0.0 +python-dotenv==0.8.2 +requests==2.21.0 +six==1.11.0 # via cryptography, protobuf, pyopenssl +urllib3==1.24.2 +werkzeug==0.14.1 # via flask +yoti==2.8.0 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools==41.1.0 # via protobuf diff --git a/examples/yoti_example_flask/settings.py b/examples/yoti_example_flask/settings.py index 4c88d947..f9b14cb6 100644 --- a/examples/yoti_example_flask/settings.py +++ b/examples/yoti_example_flask/settings.py @@ -1,5 +1,5 @@ from os import environ -YOTI_SCENARIO_ID = environ.get('YOTI_SCENARIO_ID') -YOTI_CLIENT_SDK_ID = environ.get('YOTI_CLIENT_SDK_ID') -YOTI_KEY_FILE_PATH = environ.get('YOTI_KEY_FILE_PATH') +YOTI_SCENARIO_ID = environ.get("YOTI_SCENARIO_ID") +YOTI_CLIENT_SDK_ID = environ.get("YOTI_CLIENT_SDK_ID") +YOTI_KEY_FILE_PATH = environ.get("YOTI_KEY_FILE_PATH") diff --git a/examples/yoti_example_flask/templates/dynamic-share.html b/examples/yoti_example_flask/templates/dynamic-share.html new file mode 100644 index 00000000..38799e85 --- /dev/null +++ b/examples/yoti_example_flask/templates/dynamic-share.html @@ -0,0 +1,80 @@ + + + + + + Dynamic Share example + + + + + +
+
+
+ Yoti +
+ +

We now accept Yoti

+ +
+
+
+ + + + +
+ +
+

The Yoti app is free to download and use:

+ +
+ + Download on the App Store + + + + get it on Google Play + +
+
+
+ + + + + diff --git a/examples/yoti_example_flask/templates/index.html b/examples/yoti_example_flask/templates/index.html index 832adc15..26070ac6 100644 --- a/examples/yoti_example_flask/templates/index.html +++ b/examples/yoti_example_flask/templates/index.html @@ -70,7 +70,8 @@

The Yoti app is free to download and use: {% endmacro %} +{% macro parse_document_details(prop) %} +

+ + + + {% if prop.value.expiration_date %} + + {% endif %} + {% if prop.value.issuing_authority %} + + {% endif %} +
Type{{ prop.value.document_type }}
Issuing Country{{ prop.value.issuing_country }}
Document Number{{ prop.value.document_number }}
Expiration Date{{ prop.value.expiration_date }}
Issuing Authority{{ prop.value.issuing_authority }}
+{% endmacro %} + {% macro attribute(name, icon, prop, prevalue="") %} {% if prop %} {% if prop.value %} @@ -32,6 +46,8 @@ {{ parse_document_images(prop) }} {% elif prop.name == "structured_postal_address" %} {{ parse_structured_address(prop) }} + {% elif prop.name == "document_details" %} + {{ parse_document_details(prop) }} {% else %} {{ prevalue }} {{ prop.value }} @@ -115,6 +131,7 @@ {% if structured_postal_address %}{{ attribute("Structured Address", "yoti-icon-address", structured_postal_address) }}{% endif %} {% if gender %}{{ attribute("Gender", "yoti-icon-gender", gender) }}{% endif %} {% if document_images %}{{ attribute("Document Images", "yoti-icon-profile", document_images) }}{% endif %} + {% if document_details %}{{ attribute("Document Details", "yoti-icon-profile", document_details) }} {% endif %} diff --git a/requirements.in b/requirements.in index 3ade698d..6ec178ff 100644 --- a/requirements.in +++ b/requirements.in @@ -11,5 +11,7 @@ pytest==3.3.2 pytz==2018.9 requests>=2.20.0 urllib3>=1.24.2 -virtualenv==13.1.2 +virtualenv==15.2 wheel==0.24.0 +deprecated==1.2.6 +pre-commit==1.17.0 diff --git a/requirements.txt b/requirements.txt index 04c5577c..f4c72ff6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,32 +1,46 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --output-file=requirements.txt requirements.in -# -asn1==2.2.0 -asn1crypto==0.24.0 # via cryptography -attrs==18.1.0 # via pytest -certifi==2018.11.29 # via requests -cffi==1.11.5 # via cryptography -chardet==3.0.4 # via requests -click==6.6 -colorama==0.3.9 # via pytest -cryptography==2.4.1 -future==0.15.2 -idna==2.7 # via cryptography, requests -itsdangerous==0.24 -mock==2.0.0 -pbr==1.10.0 -pluggy==0.6.0 # via pytest -protobuf==3.7.0 -py==1.5.3 # via pytest -pycparser==2.18 # via cffi -pyopenssl==18.0.0 -pytest==3.3.2 -pytz==2018.9 -requests==2.21.0 -six==1.10.0 # via cryptography, mock, protobuf, pyopenssl, pytest -urllib3==1.24.2 -virtualenv==13.1.2 -wheel==0.24.0 +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --output-file=requirements.txt requirements.in +# +asn1==2.2.0 +asn1crypto==0.24.0 # via cryptography +aspy.yaml==1.3.0 # via pre-commit +attrs==18.1.0 # via pytest +certifi==2018.11.29 # via requests +cffi==1.11.5 # via cryptography +cfgv==2.0.0 # via pre-commit +chardet==3.0.4 # via requests +click==6.6 +cryptography==2.4.1 +deprecated==1.2.6 +future==0.15.2 +identify==1.4.5 # via pre-commit +idna==2.7 # via cryptography, requests +importlib-metadata==0.18 # via pre-commit +importlib-resources==1.0.2 # via pre-commit +itsdangerous==0.24 +mock==2.0.0 +nodeenv==1.3.3 # via pre-commit +pbr==1.10.0 +pluggy==0.6.0 # via pytest +pre-commit==1.17.0 +protobuf==3.7.0 +py==1.5.3 # via pytest +pycparser==2.18 # via cffi +pyopenssl==18.0.0 +pytest==3.3.2 +pytz==2018.9 +pyyaml==5.1.1 # via aspy.yaml, pre-commit +requests==2.21.0 +six==1.10.0 # via cfgv, cryptography, mock, pre-commit, protobuf, pyopenssl, pytest +toml==0.10.0 # via pre-commit +urllib3==1.24.2 +virtualenv==15.2.0 +wheel==0.24.0 +wrapt==1.11.2 # via deprecated +zipp==0.5.2 # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools==41.1.0 # via protobuf, pytest diff --git a/setup.py b/setup.py index a26ec964..da33b41a 100644 --- a/setup.py +++ b/setup.py @@ -3,43 +3,56 @@ from yoti_python_sdk import __version__ -long_description = 'This package contains the tools you need to quickly ' \ - 'integrate your Python back-end with Yoti, so that your ' \ - 'users can share their identity details with your ' \ - 'application in a secure and trusted way.' +long_description = ( + "This package contains the tools you need to quickly " + "integrate your Python back-end with Yoti, so that your " + "users can share their identity details with your " + "application in a secure and trusted way." +) setup( - name='yoti', + name="yoti", version=__version__, packages=find_packages(), - license='MIT', - description='The Yoti Python SDK, providing API support for Login, Verify (2FA) and Age Verification.', + license="MIT", + description="The Yoti Python SDK, providing API support for Login, Verify (2FA) and Age Verification.", long_description=long_description, - url='https://github.com/getyoti/yoti-python-sdk', - author='Yoti', - author_email='websdk@yoti.com', - install_requires=['cryptography>=2.2.1', 'protobuf>=3.1.0', - 'requests>=2.11.1', 'future>=0.11.0', 'asn1==2.2.0', 'pyopenssl>=18.0.0'], + url="https://github.com/getyoti/yoti-python-sdk", + author="Yoti", + author_email="websdk@yoti.com", + install_requires=[ + "cryptography>=2.2.1", + "protobuf>=3.1.0", + "requests>=2.11.1", + "future>=0.11.0", + "asn1==2.2.0", + "pyopenssl>=18.0.0", + ], extras_require={ - 'examples': ['Django>1.11.16', 'Flask>=0.10', 'python-dotenv>=0.7.1', 'django-sslserver>=0.2', - 'Werkzeug==0.11.15'], + "examples": [ + "Django>1.11.16", + "Flask>=0.10", + "python-dotenv>=0.7.1", + "django-sslserver>=0.2", + "Werkzeug==0.11.15", + ] }, classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'License :: OSI Approved :: MIT License', - 'Operating System :: OS Independent', - 'Intended Audience :: Developers', - 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.6', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Topic :: Software Development :: Libraries :: Python Modules', + "Development Status :: 5 - Production/Stable", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Intended Audience :: Developers", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.6", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.3", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Topic :: Software Development :: Libraries :: Python Modules", ], - keywords='yoti sdk 2FA multifactor authentication verification identity login register verify 2Factor', + keywords="yoti sdk 2FA multifactor authentication verification identity login register verify 2Factor", ) diff --git a/yoti_python_sdk/__init__.py b/yoti_python_sdk/__init__.py index 6d3956a9..8486f9a9 100644 --- a/yoti_python_sdk/__init__.py +++ b/yoti_python_sdk/__init__.py @@ -6,27 +6,36 @@ from yoti_python_sdk.client import Client DEFAULTS = { - 'YOTI_API_URL': 'https://api.yoti.com', - 'YOTI_API_PORT': 443, - 'YOTI_API_VERSION': 'v1', + "YOTI_API_URL": "https://api.yoti.com", + "YOTI_API_PORT": 443, + "YOTI_API_VERSION": "v1", + "YOTI_API_VERIFY_SSL": "true" } main_ns = {} directory_name = os.path.dirname(__file__) -version_path = os.path.join(directory_name, 'version.py') +version_path = os.path.join(directory_name, "version.py") ver_path = convert_path(version_path) with open(ver_path) as ver_file: exec(ver_file.read(), main_ns) -__version__ = main_ns['__version__'] -YOTI_API_URL = environ.get('YOTI_API_URL', DEFAULTS['YOTI_API_URL']) -YOTI_API_PORT = environ.get('YOTI_API_PORT', DEFAULTS['YOTI_API_PORT']) -YOTI_API_VERSION = environ.get('YOTI_API_VERSION', DEFAULTS['YOTI_API_VERSION']) -YOTI_API_ENDPOINT = '{0}:{1}/api/{2}'.format(YOTI_API_URL, YOTI_API_PORT, YOTI_API_VERSION) +__version__ = main_ns["__version__"] +YOTI_API_URL = environ.get("YOTI_API_URL", DEFAULTS["YOTI_API_URL"]) +YOTI_API_PORT = environ.get("YOTI_API_PORT", DEFAULTS["YOTI_API_PORT"]) +YOTI_API_VERSION = environ.get("YOTI_API_VERSION", DEFAULTS["YOTI_API_VERSION"]) +YOTI_API_ENDPOINT = environ.get("YOTI_API_ENDPOINT", "{0}:{1}/api/{2}".format( + YOTI_API_URL, YOTI_API_PORT, YOTI_API_VERSION +)) + +YOTI_API_VERIFY_SSL = environ.get("YOTI_API_VERIFY_SSL", DEFAULTS["YOTI_API_VERIFY_SSL"]) +if YOTI_API_VERIFY_SSL.lower() == "false": + YOTI_API_VERIFY_SSL = False +else: + YOTI_API_VERIFY_SSL = True __all__ = [ - 'Client', + "Client", __version__ ] diff --git a/yoti_python_sdk/activity_details.py b/yoti_python_sdk/activity_details.py index 8b3793e9..8359dab8 100644 --- a/yoti_python_sdk/activity_details.py +++ b/yoti_python_sdk/activity_details.py @@ -2,38 +2,44 @@ import collections import json import logging +from deprecated import deprecated from datetime import datetime from yoti_python_sdk import attribute_parser, config -from yoti_python_sdk.profile import Profile +from yoti_python_sdk.profile import Profile, ApplicationProfile class ActivityDetails: - def __init__(self, receipt, decrypted_profile=None): + def __init__(self, receipt, decrypted_profile=None, decrypted_application_profile=None): self.decrypted_profile = decrypted_profile self.user_profile = {} # will be removed in v3.0.0 self.base64_selfie_uri = None + self.decrypted_application_profile = decrypted_application_profile - if decrypted_profile and hasattr(decrypted_profile, 'attributes'): + if decrypted_profile and hasattr(decrypted_profile, "attributes"): decrypted_profile_attributes = decrypted_profile.attributes self.profile = Profile(decrypted_profile_attributes) for field in decrypted_profile_attributes: # will be removed in v3.0.0 try: value = attribute_parser.value_based_on_content_type( - field.value, - field.content_type + field.value, field.content_type ) if field.name == config.ATTRIBUTE_SELFIE: self.base64_selfie_uri = value.base64_content() - value = field.value # set value to be byte content, for backwards compatibility + value = ( + field.value + ) # set value to be byte content, for backwards compatibility if field.name == config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS: - value = self.try_convert_structured_postal_address_to_dict(field) + value = self.try_convert_structured_postal_address_to_dict( + field + ) - if field.name.startswith(config.ATTRIBUTE_AGE_OVER) or field.name.startswith( - config.ATTRIBUTE_AGE_UNDER): + if field.name.startswith( + config.ATTRIBUTE_AGE_OVER + ) or field.name.startswith(config.ATTRIBUTE_AGE_UNDER): self.try_parse_age_verified_field(field) self.user_profile[field.name] = value @@ -44,41 +50,63 @@ def __init__(self, receipt, decrypted_profile=None): except Exception as exc: if logging.getLogger().propagate: logging.warning( - 'Error parsing profile attribute:{0}, exception: {1} - {2}'.format( - field.name, - type(exc).__name__, - exc)) + "Error parsing profile attribute:{0}, exception: {1} - {2}".format( + field.name, type(exc).__name__, exc + ) + ) self.ensure_postal_address() - self.user_id = receipt.get('remember_me_id') - self.parent_remember_me_id = receipt.get('parent_remember_me_id') - self.outcome = receipt.get('sharing_outcome') - self.receipt_id = receipt.get('receipt_id') - timestamp = receipt.get('timestamp') + if decrypted_application_profile and hasattr(decrypted_application_profile, "attributes"): + decrypted_application_profile_attributes = decrypted_application_profile.attributes + self.application_profile = ApplicationProfile(decrypted_application_profile_attributes) + + self.__remember_me_id = receipt.get("remember_me_id") + self.parent_remember_me_id = receipt.get("parent_remember_me_id") + self.outcome = receipt.get("sharing_outcome") + self.receipt_id = receipt.get("receipt_id") + timestamp = receipt.get("timestamp") if timestamp is not None: - self.timestamp = datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%SZ') + self.timestamp = datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%SZ") + + @property + def remember_me_id(self): + return self.__remember_me_id + + @property + @deprecated + def user_id(self): + return self.__remember_me_id + + @user_id.setter + @deprecated + def user_id(self, value): + self.__remember_me_id = value def try_parse_age_verified_field(self, field): if field is not None: age_verified = attribute_parser.value_based_on_content_type( - field.value, - field.content_type + field.value, field.content_type ) - if age_verified == 'true': + if age_verified == "true": self.user_profile[config.KEY_AGE_VERIFIED] = True return - if age_verified == 'false': + if age_verified == "false": self.user_profile[config.KEY_AGE_VERIFIED] = False return print( - "age_verified_field value: '{0}' was unable to be parsed into a boolean value".format(age_verified)) + "age_verified_field value: '{0}' was unable to be parsed into a boolean value".format( + age_verified + ) + ) @staticmethod def try_convert_structured_postal_address_to_dict(field): - decoder = json.JSONDecoder(object_pairs_hook=collections.OrderedDict, strict=False) + decoder = json.JSONDecoder( + object_pairs_hook=collections.OrderedDict, strict=False + ) value_to_decode = field.value if not isinstance(value_to_decode, str): value_to_decode = value_to_decode.decode() @@ -87,17 +115,24 @@ def try_convert_structured_postal_address_to_dict(field): def ensure_postal_address(self): # setting in 'user_profile' - will be removed once user_profile is removed - if config.ATTRIBUTE_POSTAL_ADDRESS not in self.user_profile and config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS in self.user_profile: - if config.KEY_FORMATTED_ADDRESS in self.user_profile[config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS]: - self.user_profile[config.ATTRIBUTE_POSTAL_ADDRESS] = \ - self.user_profile[config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS][ - config.KEY_FORMATTED_ADDRESS] + if ( + config.ATTRIBUTE_POSTAL_ADDRESS not in self.user_profile + and config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS in self.user_profile + ): + if ( + config.KEY_FORMATTED_ADDRESS + in self.user_profile[config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] + ): + self.user_profile[config.ATTRIBUTE_POSTAL_ADDRESS] = self.user_profile[ + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ][config.KEY_FORMATTED_ADDRESS] def __iter__(self): - yield 'user_id', self.user_id - yield 'parent_remember_me_id', self.parent_remember_me_id - yield 'outcome', self.outcome - yield 'receipt_id', self.receipt_id - yield 'user_profile', self.user_profile - yield 'profile', self.profile - yield 'base64_selfie_uri', self.base64_selfie_uri + yield "user_id", self.__remember_me_id # Using the private member directly to avoid a deprecation warning + yield "parent_remember_me_id", self.parent_remember_me_id + yield "outcome", self.outcome + yield "receipt_id", self.receipt_id + yield "user_profile", self.user_profile + yield "profile", self.profile + yield "base64_selfie_uri", self.base64_selfie_uri + yield "remember_me_id", self.remember_me_id diff --git a/yoti_python_sdk/aml.py b/yoti_python_sdk/aml.py index 93a52f88..c1d620d0 100644 --- a/yoti_python_sdk/aml.py +++ b/yoti_python_sdk/aml.py @@ -7,14 +7,16 @@ def __init__(self, response_text): raise ValueError("AML Response is not valid") try: - self.on_pep_list = json.loads(response_text).get('on_pep_list') - self.on_fraud_list = json.loads(response_text).get('on_fraud_list') - self.on_watch_list = json.loads(response_text).get('on_watch_list') + self.on_pep_list = json.loads(response_text).get("on_pep_list") + self.on_fraud_list = json.loads(response_text).get("on_fraud_list") + self.on_watch_list = json.loads(response_text).get("on_watch_list") except (AttributeError, IOError, TypeError, OSError) as exc: - error = 'Could not parse AML result from response: "{0}"'.format(response_text) - exception = '{0}: {1}'.format(type(exc).__name__, exc) - raise RuntimeError('{0}: {1}'.format(error, exception)) + error = 'Could not parse AML result from response: "{0}"'.format( + response_text + ) + exception = "{0}: {1}".format(type(exc).__name__, exc) + raise RuntimeError("{0}: {1}".format(error, exception)) self.__check_for_none_values(self.on_pep_list) self.__check_for_none_values(self.on_fraud_list) @@ -23,12 +25,16 @@ def __init__(self, response_text): @staticmethod def __check_for_none_values(arg): if arg is None: - raise TypeError(str.format("{0} argument was unable to be retrieved from the response", arg)) + raise TypeError( + str.format( + "{0} argument was unable to be retrieved from the response", arg + ) + ) def __iter__(self): - yield 'on_pep_list', self.on_pep_list - yield 'on_fraud_list', self.on_fraud_list - yield 'on_watch_list', self.on_watch_list + yield "on_pep_list", self.on_pep_list + yield "on_fraud_list", self.on_fraud_list + yield "on_watch_list", self.on_watch_list class AmlAddress: diff --git a/yoti_python_sdk/anchor.py b/yoti_python_sdk/anchor.py index 3a80b345..f3327e91 100644 --- a/yoti_python_sdk/anchor.py +++ b/yoti_python_sdk/anchor.py @@ -1,141 +1,187 @@ -import datetime -import logging - -import OpenSSL -import asn1 -import yoti_python_sdk.protobuf.common_public_api.SignedTimestamp_pb2 as compubapi -from OpenSSL import crypto - -from yoti_python_sdk import config - -UNKNOWN_EXTENSION = "" -SOURCE_EXTENSION = "1.3.6.1.4.1.47127.1.1.1" -VERIFIER_EXTENSION = "1.3.6.1.4.1.47127.1.1.2" - - -class Anchor: - def __init__(self, anchor_type="Unknown", sub_type="", value="", signed_timestamp=None, origin_server_certs=None): - self.__anchor_type = anchor_type - self.__sub_type = sub_type - self.__value = value - self.__signed_timestamp = signed_timestamp - self.__origin_server_certs = origin_server_certs - - def __iter__(self): - return self - - def __next__(self): - self.idx += 1 - try: - return self.data[self.idx - 1] - except IndexError: - self.idx = 0 - raise StopIteration - - next = __next__ # python2.x compatibility. - - @staticmethod - def parse_anchors(anchors): - - if anchors is None: - return None - - parsed_anchors = [] - for anc in anchors: - if hasattr(anc, 'origin_server_certs'): - anchor_type = "Unknown" - try: - origin_server_certs_list = list(anc.origin_server_certs) - origin_server_certs_item = origin_server_certs_list[0] - - crypto_cert = crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, - origin_server_certs_item).to_cryptography() - - except Exception as exc: - if logging.getLogger().propagate: - logging.warning( - 'Error loading anchor certificate, exception: {0} - {1}'.format(type(exc).__name__, exc)) - continue - - for i in range(len(crypto_cert.extensions)): - try: - extensions = crypto_cert.extensions[i] - if hasattr(extensions, 'oid'): - oid = extensions.oid - if hasattr(oid, 'dotted_string'): - if oid.dotted_string == SOURCE_EXTENSION: - anchor_type = config.ANCHOR_SOURCE - elif oid.dotted_string == VERIFIER_EXTENSION: - anchor_type = config.ANCHOR_VERIFIER - - if anchor_type != "Unknown": - parsed_anchors = Anchor.get_values_from_extensions(anc, anchor_type, extensions, - crypto_cert, parsed_anchors) - except Exception as exc: - if logging.getLogger().propagate: - logging.warning('Error parsing anchor certificate extension, exception: {0} - {1}'.format( - type(exc).__name__, exc)) - continue - - return parsed_anchors - - @staticmethod - def get_values_from_extensions(anc, anchor_type, extensions, crypto_cert, parsed_anchors): - if hasattr(extensions, 'value'): - extension_value = extensions.value - if hasattr(extension_value, 'value'): - parsed_anchors.append(Anchor( - anchor_type, - anc.sub_type, - Anchor.decode_asn1_value(extension_value.value), - anc.signed_time_stamp, - crypto_cert)) - - return parsed_anchors - - @staticmethod - def decode_asn1_value(value_to_decode): - extension_value_asn1 = value_to_decode - decoder = asn1.Decoder() - - decoder.start(extension_value_asn1) - tag, once_decoded_value = decoder.read() - - decoder.start(once_decoded_value) - tag, twice_decoded_value = decoder.read() - - utf8_value = twice_decoded_value.decode('utf-8') - return utf8_value - - @property - def anchor_type(self): - return self.__anchor_type - - @property - def value(self): - return self.__value - - @property - def sub_type(self): - return self.__sub_type - - @property - def signed_timestamp(self): - if self.__signed_timestamp is None: - return None - - signed_timestamp_object = compubapi.SignedTimestamp() - signed_timestamp_object.MergeFromString(self.__signed_timestamp) - - try: - signed_timestamp_parsed = datetime.datetime.fromtimestamp( - signed_timestamp_object.timestamp / float(1000000)) - except OSError: - print("Unable to parse timestamp from integer: '{0}'".format(signed_timestamp_object.timestamp)) - return "" - - return signed_timestamp_parsed - - @property - def origin_server_certs(self): - return self.__origin_server_certs +import datetime +import logging + +import OpenSSL +import asn1 +import yoti_python_sdk.protobuf.common_public_api.SignedTimestamp_pb2 as compubapi +from OpenSSL import crypto + +from yoti_python_sdk import config + +UNKNOWN_EXTENSION = "" +SOURCE_EXTENSION = "1.3.6.1.4.1.47127.1.1.1" +VERIFIER_EXTENSION = "1.3.6.1.4.1.47127.1.1.2" + +UNKNOWN_ANCHOR_TYPE = "Unknown" +UNKNOWN_ANCHOR_VALUE = "" + + +class Anchor: + def __init__( + self, + anchor_type=UNKNOWN_ANCHOR_TYPE, + sub_type="", + value="", + signed_timestamp=None, + origin_server_certs=None, + ): + self.__anchor_type = anchor_type + self.__sub_type = sub_type + self.__value = value + self.__signed_timestamp = signed_timestamp + self.__origin_server_certs = origin_server_certs + + def __iter__(self): + return self + + def __next__(self): + self.idx += 1 + try: + return self.data[self.idx - 1] + except IndexError: + self.idx = 0 + raise StopIteration + + next = __next__ # python2.x compatibility. + + @staticmethod + def parse_anchors(anchors): + if anchors is None: + return None + + parsed_anchors = [] + for anc in anchors: + if hasattr(anc, "origin_server_certs"): + anchor_type = UNKNOWN_ANCHOR_TYPE + try: + origin_server_certs_list = list(anc.origin_server_certs) + origin_server_certs_item = origin_server_certs_list[0] + + crypto_cert = crypto.load_certificate( + OpenSSL.crypto.FILETYPE_ASN1, origin_server_certs_item + ).to_cryptography() + + except Exception as exc: + if logging.getLogger().propagate: + logging.warning( + "Error loading anchor certificate, exception: {0} - {1}".format( + type(exc).__name__, exc + ) + ) + continue + + has_found_anchor = False + for i in range(len(crypto_cert.extensions)): + try: + extensions = crypto_cert.extensions[i] + if hasattr(extensions, "oid"): + oid = extensions.oid + if hasattr(oid, "dotted_string"): + if oid.dotted_string == SOURCE_EXTENSION: + anchor_type = config.ANCHOR_SOURCE + elif oid.dotted_string == VERIFIER_EXTENSION: + anchor_type = config.ANCHOR_VERIFIER + + if anchor_type != UNKNOWN_ANCHOR_TYPE: + has_found_anchor = True + parsed_anchors = Anchor.get_values_from_extensions( + anc, + anchor_type, + extensions, + crypto_cert, + parsed_anchors, + ) + + except Exception as exc: + if logging.getLogger().propagate: + logging.warning( + "Error parsing anchor certificate extension, exception: {0} - {1}".format( + type(exc).__name__, exc + ) + ) + continue + + if not has_found_anchor: + parsed_anchors.append( + Anchor( + UNKNOWN_ANCHOR_TYPE, + anc.sub_type, + UNKNOWN_ANCHOR_VALUE, + anc.signed_time_stamp, + crypto_cert, + ) + ) + + return parsed_anchors + + @staticmethod + def get_values_from_extensions( + anc, anchor_type, extensions, crypto_cert, parsed_anchors + ): + if hasattr(extensions, "value") and anchor_type != UNKNOWN_ANCHOR_TYPE: + extension_value = "" + if hasattr(extensions.value, "value"): + extension_value = Anchor.decode_asn1_value(extensions.value.value) + parsed_anchors.append( + Anchor( + anchor_type, + anc.sub_type, + extension_value, + anc.signed_time_stamp, + crypto_cert, + ) + ) + + return parsed_anchors + + @staticmethod + def decode_asn1_value(value_to_decode): + extension_value_asn1 = value_to_decode + decoder = asn1.Decoder() + + decoder.start(extension_value_asn1) + tag, once_decoded_value = decoder.read() + + decoder.start(once_decoded_value) + tag, twice_decoded_value = decoder.read() + + utf8_value = twice_decoded_value.decode("utf-8") + return utf8_value + + @property + def anchor_type(self): + return self.__anchor_type + + @property + def value(self): + return self.__value + + @property + def sub_type(self): + return self.__sub_type + + @property + def signed_timestamp(self): + if self.__signed_timestamp is None: + return None + + signed_timestamp_object = compubapi.SignedTimestamp() + signed_timestamp_object.MergeFromString(self.__signed_timestamp) + + try: + signed_timestamp_parsed = datetime.datetime.fromtimestamp( + signed_timestamp_object.timestamp / float(1000000) + ) + except OSError: + print( + "Unable to parse timestamp from integer: '{0}'".format( + signed_timestamp_object.timestamp + ) + ) + return "" + + return signed_timestamp_parsed + + @property + def origin_server_certs(self): + return self.__origin_server_certs diff --git a/yoti_python_sdk/attribute.py b/yoti_python_sdk/attribute.py index 9d2e514e..c933154a 100644 --- a/yoti_python_sdk/attribute.py +++ b/yoti_python_sdk/attribute.py @@ -1,30 +1,34 @@ -from yoti_python_sdk import config - - -class Attribute: - def __init__(self, name="", value="", anchors=None): - if anchors is None: - anchors = {} - self.__name = name - self.__value = value - self.__anchors = anchors - - @property - def name(self): - return self.__name - - @property - def value(self): - return self.__value - - @property - def anchors(self): - return self.__anchors - - @property - def sources(self): - return list(filter(lambda a: a.anchor_type == config.ANCHOR_SOURCE, self.__anchors)) - - @property - def verifiers(self): - return list(filter(lambda a: a.anchor_type == config.ANCHOR_VERIFIER, self.__anchors)) +from yoti_python_sdk import config + + +class Attribute: + def __init__(self, name="", value="", anchors=None): + if anchors is None: + anchors = {} + self.__name = name + self.__value = value + self.__anchors = anchors + + @property + def name(self): + return self.__name + + @property + def value(self): + return self.__value + + @property + def anchors(self): + return self.__anchors + + @property + def sources(self): + return list( + filter(lambda a: a.anchor_type == config.ANCHOR_SOURCE, self.__anchors) + ) + + @property + def verifiers(self): + return list( + filter(lambda a: a.anchor_type == config.ANCHOR_VERIFIER, self.__anchors) + ) diff --git a/yoti_python_sdk/attribute_parser.py b/yoti_python_sdk/attribute_parser.py index 50d3ecbc..95ce8554 100644 --- a/yoti_python_sdk/attribute_parser.py +++ b/yoti_python_sdk/attribute_parser.py @@ -11,27 +11,34 @@ def value_based_on_content_type(value, content_type=None): from yoti_python_sdk.image import Image + if content_type == Protobuf.CT_STRING: - return value.decode('utf-8') - elif value == b'': - raise ValueError("Content type: '{0}' should not have an empty value".format(content_type)) + return value.decode("utf-8") + elif value == b"": + raise ValueError( + "Content type: '{0}' should not have an empty value".format(content_type) + ) elif content_type == Protobuf.CT_DATE: - return value.decode('utf-8') + return value.decode("utf-8") elif content_type in Image.allowed_types(): return Image(value, content_type) elif content_type == Protobuf.CT_JSON: return convert_to_dict(value) elif content_type == Protobuf.CT_INT: - string_value = value.decode('utf-8') + string_value = value.decode("utf-8") int_value = int(string_value) return int_value elif content_type == Protobuf.CT_MULTI_VALUE: return tuple(multivalue.parse(value)) if logging.getLogger().propagate: - logging.warning("Unknown type '{0}', attempting to parse it as a String".format(content_type)) + logging.warning( + "Unknown type '{0}', attempting to parse it as a String".format( + content_type + ) + ) - return value.decode('utf-8') + return value.decode("utf-8") def convert_to_dict(byte_value): diff --git a/yoti_python_sdk/client.py b/yoti_python_sdk/client.py index aca1f56a..3d82bed5 100644 --- a/yoti_python_sdk/client.py +++ b/yoti_python_sdk/client.py @@ -15,24 +15,36 @@ from yoti_python_sdk.crypto import Crypto from yoti_python_sdk.endpoint import Endpoint from yoti_python_sdk.protobuf import protobuf -from .config import * - -NO_KEY_FILE_SPECIFIED_ERROR = 'Please specify the correct private key file ' \ - 'in Client(pem_file_path=...)\nor by setting ' \ - 'the "YOTI_KEY_FILE_PATH" environment variable' -HTTP_SUPPORTED_METHODS = ['POST', 'PUT', 'PATCH', 'GET', 'DELETE'] +from .config import ( + X_YOTI_AUTH_KEY, + X_YOTI_AUTH_DIGEST, + X_YOTI_SDK, + SDK_IDENTIFIER, + X_YOTI_SDK_VERSION, + JSON_CONTENT_TYPE, +) + +NO_KEY_FILE_SPECIFIED_ERROR = ( + "Please specify the correct private key file " + "in Client(pem_file_path=...)\nor by setting " + 'the "YOTI_KEY_FILE_PATH" environment variable' +) +HTTP_SUPPORTED_METHODS = ["POST", "PUT", "PATCH", "GET", "DELETE"] + +UNKNOWN_HTTP_ERROR = "Unknown HTTP error occured: {0} {1}" +DEFAULT_HTTP_CLIENT_ERRORS = {"default": UNKNOWN_HTTP_ERROR} class Client(object): def __init__(self, sdk_id=None, pem_file_path=None): - self.sdk_id = sdk_id or environ.get('YOTI_CLIENT_SDK_ID') - pem_file_path_env = environ.get('YOTI_KEY_FILE_PATH') + self.sdk_id = sdk_id or environ.get("YOTI_CLIENT_SDK_ID") + pem_file_path_env = environ.get("YOTI_KEY_FILE_PATH") if pem_file_path is not None: - error_source = 'argument specified in Client()' + error_source = "argument specified in Client()" pem = self.__read_pem_file(pem_file_path, error_source) elif pem_file_path_env is not None: - error_source = 'specified by the YOTI_KEY_FILE_PATH env variable' + error_source = "specified by the YOTI_KEY_FILE_PATH env variable" pem = self.__read_pem_file(pem_file_path_env, error_source) else: raise RuntimeError(NO_KEY_FILE_SPECIFIED_ERROR) @@ -46,54 +58,97 @@ def __read_pem_file(key_file_path, error_source): key_file_path = expanduser(key_file_path) if not isinstance(key_file_path, basestring) or not isfile(key_file_path): - raise IOError('File not found: {0}'.format(key_file_path)) - with open(key_file_path, 'rb') as pem_file: + raise IOError("File not found: {0}".format(key_file_path)) + with open(key_file_path, "rb") as pem_file: return pem_file.read().strip() except (AttributeError, IOError, TypeError, OSError) as exc: - error = 'Could not read private key file: "{0}", passed as: {1} '.format(key_file_path, error_source) - exception = '{0}: {1}'.format(type(exc).__name__, exc) - raise RuntimeError('{0}: {1}'.format(error, exception)) + error = 'Could not read private key file: "{0}", passed as: {1} '.format( + key_file_path, error_source + ) + exception = "{0}: {1}".format(type(exc).__name__, exc) + raise RuntimeError("{0}: {1}".format(error, exception)) def get_activity_details(self, encrypted_request_token): proto = protobuf.Protobuf() - http_method = 'GET' + http_method = "GET" content = None - response = self.__make_activity_details_request(encrypted_request_token, http_method, content) - receipt = json.loads(response.text).get('receipt') + response = self.__make_activity_details_request( + encrypted_request_token, http_method, content + ) + receipt = json.loads(response.text).get("receipt") encrypted_data = proto.current_user(receipt) + encrypted_application_profile = proto.current_application(receipt) if not encrypted_data: return ActivityDetails(receipt) - unwrapped_key = self.__crypto.decrypt_token(receipt['wrapped_receipt_key']) - decrypted_data = self.__crypto.decipher( - unwrapped_key, - encrypted_data.iv, - encrypted_data.cipher_text + unwrapped_key = self.__crypto.decrypt_token(receipt["wrapped_receipt_key"]) + + decrypted_profile_data = self.__crypto.decipher( + unwrapped_key, encrypted_data.iv, encrypted_data.cipher_text + ) + decrypted_application_data = self.__crypto.decipher( + unwrapped_key, encrypted_application_profile.iv, encrypted_application_profile.cipher_text + ) + + user_profile_attribute_list = proto.attribute_list(decrypted_profile_data) + application_profile_attribute_list = proto.attribute_list(decrypted_application_data) + + return ActivityDetails( + receipt=receipt, decrypted_profile=user_profile_attribute_list, decrypted_application_profile=application_profile_attribute_list ) - attribute_list = proto.attribute_list(decrypted_data) - return ActivityDetails(receipt, attribute_list) def perform_aml_check(self, aml_profile): if aml_profile is None: raise TypeError("aml_profile not set") - http_method = 'POST' + http_method = "POST" response = self.__make_aml_check_request(http_method, aml_profile) return aml.AmlResult(response.text) - def __make_activity_details_request(self, encrypted_request_token, http_method, content): - decrypted_token = self.__crypto.decrypt_token(encrypted_request_token).decode('utf-8') + def make_request(self, http_method, endpoint, body): + url = yoti_python_sdk.YOTI_API_ENDPOINT + endpoint + headers = self.__get_request_headers(endpoint, http_method, body) + response = requests.request(http_method, url, headers=headers, data=body, verify=yoti_python_sdk.YOTI_API_VERIFY_SSL) + return response + + @property + def endpoints(self): + return self.__endpoint + + @staticmethod + def http_error_handler(response, error_messages={}): + status_code = response.status_code + if 200 <= status_code < 300: + return + elif status_code in error_messages.keys(): + raise RuntimeError( + error_messages[status_code].format(status_code, response.text) + ) + elif "default" in error_messages.keys(): + raise RuntimeError( + error_messages["default"].format(status_code, response.text) + ) + else: + raise RuntimeError(UNKNOWN_HTTP_ERROR.format(status_code, response.text)) + + def __make_activity_details_request( + self, encrypted_request_token, http_method, content + ): + decrypted_token = self.__crypto.decrypt_token(encrypted_request_token).decode( + "utf-8" + ) path = self.__endpoint.get_activity_details_request_path(decrypted_token) url = yoti_python_sdk.YOTI_API_ENDPOINT + path headers = self.__get_request_headers(path, http_method, content) - response = requests.get(url=url, headers=headers) + response = requests.get(url=url, headers=headers, verify=yoti_python_sdk.YOTI_API_VERIFY_SSL) - if not response.status_code == 200: - raise RuntimeError('Unsuccessful Yoti API call: {0}'.format(response.text)) + self.http_error_handler( + response, {"default": "Unsuccessful Yoti API call: {1}"} + ) return response @@ -104,10 +159,11 @@ def __make_aml_check_request(self, http_method, aml_profile): url = yoti_python_sdk.YOTI_API_ENDPOINT + path headers = self.__get_request_headers(path, http_method, aml_profile_bytes) - response = requests.post(url=url, headers=headers, data=aml_profile_bytes) + response = requests.post(url=url, headers=headers, data=aml_profile_bytes, verify=yoti_python_sdk.YOTI_API_VERIFY_SSL) - if not response.status_code == 200: - raise RuntimeError('Unsuccessful Yoti API call: {0}'.format(response.text)) + self.http_error_handler( + response, {"default": "Unsuccessful Yoti API call: {1}"} + ) return response @@ -120,21 +176,24 @@ def __get_request_headers(self, path, http_method, content): X_YOTI_AUTH_DIGEST: self.__crypto.sign(request), X_YOTI_SDK: SDK_IDENTIFIER, X_YOTI_SDK_VERSION: "{0}-{1}".format(SDK_IDENTIFIER, sdk_version), - 'Content-Type': JSON_CONTENT_TYPE, - 'Accept': JSON_CONTENT_TYPE + "Content-Type": JSON_CONTENT_TYPE, + "Accept": JSON_CONTENT_TYPE, } @staticmethod def __create_request(http_method, path, content): if http_method not in HTTP_SUPPORTED_METHODS: raise ValueError( - "{} is not in the list of supported methods: {}".format(http_method, HTTP_SUPPORTED_METHODS)) + "{} is not in the list of supported methods: {}".format( + http_method, HTTP_SUPPORTED_METHODS + ) + ) request = "{}&{}".format(http_method, path) if content is not None: b64encoded = base64.b64encode(content) - b64ascii = b64encoded.decode('ascii') + b64ascii = b64encoded.decode("ascii") request += "&" + b64ascii return request diff --git a/yoti_python_sdk/config.py b/yoti_python_sdk/config.py index 5ec328ea..06e430ad 100644 --- a/yoti_python_sdk/config.py +++ b/yoti_python_sdk/config.py @@ -1,27 +1,32 @@ -# -*- coding: utf-8 -*- - -SDK_IDENTIFIER = "Python" -ATTRIBUTE_AGE_OVER = "age_over:" -ATTRIBUTE_AGE_UNDER = "age_under:" -ATTRIBUTE_DATE_OF_BIRTH = "date_of_birth" -ATTRIBUTE_FAMILY_NAME = "family_name" -ATTRIBUTE_FULL_NAME = "full_name" -ATTRIBUTE_GENDER = "gender" -ATTRIBUTE_GIVEN_NAMES = "given_names" -ATTRIBUTE_NATIONALITY = "nationality" -ATTRIBUTE_EMAIL_ADDRESS = "email_address" -ATTRIBUTE_PHONE_NUMBER = "phone_number" -ATTRIBUTE_POSTAL_ADDRESS = "postal_address" -ATTRIBUTE_SELFIE = "selfie" -ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS = "structured_postal_address" -ATTRIBUTE_DOCUMENT_IMAGES = "document_images" -ANCHOR_SOURCE = "SOURCE" -ANCHOR_VERIFIER = "VERIFIER" -KEY_AGE_VERIFIED = "is_age_verified" -KEY_BASE64_SELFIE = "base64_selfie_uri" -KEY_FORMATTED_ADDRESS = "formatted_address" -X_YOTI_AUTH_KEY = "X-Yoti-Auth-Key" -X_YOTI_AUTH_DIGEST = "X-Yoti-Auth-Digest" -X_YOTI_SDK = "X-Yoti-SDK" -X_YOTI_SDK_VERSION = X_YOTI_SDK + "-Version" -JSON_CONTENT_TYPE = 'application/json' +# -*- coding: utf-8 -*- + +SDK_IDENTIFIER = "Python" +ATTRIBUTE_AGE_OVER = "age_over:" +ATTRIBUTE_AGE_UNDER = "age_under:" +ATTRIBUTE_DATE_OF_BIRTH = "date_of_birth" +ATTRIBUTE_FAMILY_NAME = "family_name" +ATTRIBUTE_FULL_NAME = "full_name" +ATTRIBUTE_GENDER = "gender" +ATTRIBUTE_GIVEN_NAMES = "given_names" +ATTRIBUTE_NATIONALITY = "nationality" +ATTRIBUTE_EMAIL_ADDRESS = "email_address" +ATTRIBUTE_PHONE_NUMBER = "phone_number" +ATTRIBUTE_POSTAL_ADDRESS = "postal_address" +ATTRIBUTE_SELFIE = "selfie" +ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS = "structured_postal_address" +ATTRIBUTE_DOCUMENT_IMAGES = "document_images" +ATTRIBUTE_DOCUMENT_DETAILS = "document_details" +ATTRIBUTE_APPLICATION_NAME = "application_name" +ATTRIBUTE_APPLICATION_LOGO = "application_logo" +ATTRIBUTE_APPLICATION_URL = "application_url" +ATTRIBUTE_APPLICATION_RECEIPT_BGCOLOR = "application_receipt_bgcolor" +ANCHOR_SOURCE = "SOURCE" +ANCHOR_VERIFIER = "VERIFIER" +KEY_AGE_VERIFIED = "is_age_verified" +KEY_BASE64_SELFIE = "base64_selfie_uri" +KEY_FORMATTED_ADDRESS = "formatted_address" +X_YOTI_AUTH_KEY = "X-Yoti-Auth-Key" +X_YOTI_AUTH_DIGEST = "X-Yoti-Auth-Digest" +X_YOTI_SDK = "X-Yoti-SDK" +X_YOTI_SDK_VERSION = X_YOTI_SDK + "-Version" +JSON_CONTENT_TYPE = "application/json" diff --git a/yoti_python_sdk/crypto.py b/yoti_python_sdk/crypto.py index 63d9fa64..abaebfe9 100644 --- a/yoti_python_sdk/crypto.py +++ b/yoti_python_sdk/crypto.py @@ -3,61 +3,52 @@ from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization from cryptography.hazmat.primitives.asymmetric import padding -from cryptography.hazmat.primitives.ciphers import ( - Cipher, algorithms, modes -) +from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes class Crypto: def __init__(self, pem_container): self.private_key = serialization.load_pem_private_key( - data=pem_container, - password=None, - backend=default_backend() + data=pem_container, password=None, backend=default_backend() ) def get_public_key(self): public_key = self.private_key.public_key() der = public_key.public_bytes( encoding=serialization.Encoding.DER, - format=serialization.PublicFormat.SubjectPublicKeyInfo + format=serialization.PublicFormat.SubjectPublicKeyInfo, ) - return base64.b64encode(der).decode('utf-8') + return base64.b64encode(der).decode("utf-8") def decrypt_token(self, encrypted_token): try: if not isinstance(encrypted_token, bytes): # On Python 2 the token is str and to b64decode it we need bytes or unicode - encrypted_token = encrypted_token.encode('utf-8') + encrypted_token = encrypted_token.encode("utf-8") data = base64.urlsafe_b64decode(encrypted_token) decrypted = self.private_key.decrypt( - ciphertext=data, - padding=padding.PKCS1v15() + ciphertext=data, padding=padding.PKCS1v15() ) return decrypted except Exception as exc: raise ValueError( - 'Could not decrypt token: {0}, {1}'.format( - encrypted_token, exc - ) + "Could not decrypt token: {0}, {1}".format(encrypted_token, exc) ) def sign(self, message): signature = self.private_key.sign( - data=message.encode('utf-8'), + data=message.encode("utf-8"), padding=padding.PKCS1v15(), - algorithm=hashes.SHA256() + algorithm=hashes.SHA256(), ) - return base64.b64encode(signature).decode('utf-8') + return base64.b64encode(signature).decode("utf-8") @staticmethod def decipher(key, iv, cipher_text): decryptor = Cipher( - algorithm=algorithms.AES(key), - mode=modes.CBC(iv), - backend=default_backend() + algorithm=algorithms.AES(key), mode=modes.CBC(iv), backend=default_backend() ).decryptor() plaintext = decryptor.update(cipher_text) + decryptor.finalize() diff --git a/yoti_python_sdk/date_parser.py b/yoti_python_sdk/date_parser.py new file mode 100644 index 00000000..3cf6a0a8 --- /dev/null +++ b/yoti_python_sdk/date_parser.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- + +import datetime + + +def from_iso_format(string): + parts = [int(a) for a in string.split("-")] + + if len(parts) != 3: + raise ValueError + + return datetime.date(parts[0], parts[1], parts[2]) diff --git a/yoti_python_sdk/document_details.py b/yoti_python_sdk/document_details.py new file mode 100644 index 00000000..aa637b64 --- /dev/null +++ b/yoti_python_sdk/document_details.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +import re + +from . import date_parser + + +class DocumentDetails(object): + VALIDATION_REGEX = re.compile("^[A-Za-z_]* [A-Za-z]{3} [A-Za-z0-9]{1}.*$") + + def __init__(self, data): + self.__validate_data(data) + self.__parse_data(data) + + @property + def document_type(self): + return self.__document_type + + @property + def issuing_country(self): + return self.__issuing_country + + @property + def document_number(self): + return self.__document_number + + @property + def expiration_date(self): + return self.__dict__.get("_DocumentDetails__expiration_date", None) + + @property + def issuing_authority(self): + return self.__dict__.get("_DocumentDetails__issuing_authority", None) + + def __validate_data(self, data): + if self.VALIDATION_REGEX.search(data): + return + else: + raise ValueError("Invalid value for DocumentDetails") + + def __parse_data(self, data): + data = data.split() + + self.__document_type = data[0] + self.__issuing_country = data[1] + self.__document_number = data[2] + if len(data) > 3: + date = data[3] + if date != "-": + self.__expiration_date = date_parser.from_iso_format(date) + if len(data) > 4: + self.__issuing_authority = data[4] diff --git a/yoti_python_sdk/dynamic_sharing_service/__init__.py b/yoti_python_sdk/dynamic_sharing_service/__init__.py new file mode 100644 index 00000000..6289dc9c --- /dev/null +++ b/yoti_python_sdk/dynamic_sharing_service/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +from .dynamic_scenario_builder import DynamicScenarioBuilder +from .share_url import create_share_url + +__all__ = ["DynamicScenarioBuilder", "create_share_url"] diff --git a/yoti_python_sdk/dynamic_sharing_service/dynamic_scenario_builder.py b/yoti_python_sdk/dynamic_sharing_service/dynamic_scenario_builder.py new file mode 100644 index 00000000..49400752 --- /dev/null +++ b/yoti_python_sdk/dynamic_sharing_service/dynamic_scenario_builder.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from .policy.dynamic_policy_builder import DynamicPolicyBuilder + + +class DynamicScenarioBuilder(object): + def __init__(self): + self.__scenario = { + "policy": DynamicPolicyBuilder().build(), + "extensions": [], + "callback_endpoint": "", + } + + """ + @param policy A DynamicPolicy defining the attributes to be shared + """ + + def with_policy(self, policy): + self.__scenario["policy"] = policy + return self + + """ + @param extension An extension to be activated for the scenario + """ + + def with_extension(self, extension): + self.__scenario["extensions"].append(extension) + return self + + """ + @param callback_endpoint A string with the callback endpoint + """ + + def with_callback_endpoint(self, callback_endpoint): + self.__scenario["callback_endpoint"] = callback_endpoint + return self + + """ + @return Dictionary representation of dynamic scenario + """ + + def build(self): + return self.__scenario.copy() diff --git a/yoti_python_sdk/dynamic_sharing_service/extension/__init__.py b/yoti_python_sdk/dynamic_sharing_service/extension/__init__.py new file mode 100644 index 00000000..927ddf45 --- /dev/null +++ b/yoti_python_sdk/dynamic_sharing_service/extension/__init__.py @@ -0,0 +1,9 @@ +from .extension_builder import ExtensionBuilder +from .location_constraint_extension_builder import LocationConstraintExtensionBuilder +from .transactional_flow_extension_builder import TransactionalFlowExtensionBuilder + +__all__ = [ + "ExtensionBuilder", + "LocationConstraintExtensionBuilder", + "TransactionalFlowExtensionBuilder", +] diff --git a/yoti_python_sdk/dynamic_sharing_service/extension/extension_builder.py b/yoti_python_sdk/dynamic_sharing_service/extension/extension_builder.py new file mode 100644 index 00000000..c4256af9 --- /dev/null +++ b/yoti_python_sdk/dynamic_sharing_service/extension/extension_builder.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + + +class ExtensionBuilder(object): + def __init__(self): + self.__extension = {} + + def with_extension_type(self, extension_type): + """ + @param extension_type String label for the extension type + """ + self.__extension["type"] = extension_type + return self + + def with_content(self, content): + """ + @param content The extension content + """ + self.__extension["content"] = content + return self + + def build(self): + """ + @return Dictionary representation of an extension + """ + return self.__extension.copy() diff --git a/yoti_python_sdk/dynamic_sharing_service/extension/location_constraint_extension_builder.py b/yoti_python_sdk/dynamic_sharing_service/extension/location_constraint_extension_builder.py new file mode 100644 index 00000000..18e07564 --- /dev/null +++ b/yoti_python_sdk/dynamic_sharing_service/extension/location_constraint_extension_builder.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + + +class LocationConstraintExtensionBuilder(object): + LOCATION_CONSTRAINT = "LOCATION_CONSTRAINT" + + def __init__(self): + self.__extension = {} + self.__extension["type"] = self.LOCATION_CONSTRAINT + self.__extension["content"] = {} + self.__device_location = { + "latitude": None, + "longtitude": None, + "radius": None, + "max_uncertainty_radius": None, + } + self.__extension["content"]["expected_device_location"] = self.__device_location + + def with_latitude(self, latitude): + self.__device_location["latitude"] = latitude + return self + + def with_longtitude(self, longtitude): + self.__device_location["longtitude"] = longtitude + return self + + def with_radius(self, radius): + self.__device_location["radius"] = radius + return self + + def with_uncertainty(self, uncertainty): + self.__device_location["max_uncertainty_radius"] = uncertainty + return self + + def build(self): + return self.__extension.copy() diff --git a/yoti_python_sdk/dynamic_sharing_service/extension/transactional_flow_extension_builder.py b/yoti_python_sdk/dynamic_sharing_service/extension/transactional_flow_extension_builder.py new file mode 100644 index 00000000..5da09960 --- /dev/null +++ b/yoti_python_sdk/dynamic_sharing_service/extension/transactional_flow_extension_builder.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + + +class TransactionalFlowExtensionBuilder(object): + TRANSACTIONAL_FLOW = "TRANSACTIONAL_FLOW" + + def __init__(self): + self.__extension = {} + self.__extension["type"] = self.TRANSACTIONAL_FLOW + + def with_content(self, content): + """ + @param content The extension content + """ + self.__extension["content"] = content + return self + + def build(self): + """ + @return Dictionary representation of an extension + """ + return self.__extension.copy() diff --git a/yoti_python_sdk/dynamic_sharing_service/policy/__init__.py b/yoti_python_sdk/dynamic_sharing_service/policy/__init__.py new file mode 100644 index 00000000..17ebaaf9 --- /dev/null +++ b/yoti_python_sdk/dynamic_sharing_service/policy/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- + +from .dynamic_policy_builder import DynamicPolicyBuilder +from .wanted_attribute_builder import WantedAttributeBuilder + +__all__ = ["DynamicPolicyBuilder", "WantedAttributeBuilder"] diff --git a/yoti_python_sdk/dynamic_sharing_service/policy/dynamic_policy_builder.py b/yoti_python_sdk/dynamic_sharing_service/policy/dynamic_policy_builder.py new file mode 100644 index 00000000..3c5a2974 --- /dev/null +++ b/yoti_python_sdk/dynamic_sharing_service/policy/dynamic_policy_builder.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import re + +from yoti_python_sdk import config + +from .wanted_attribute_builder import WantedAttributeBuilder + +""" +Builder for DynamicPolicy +""" + + +class DynamicPolicyBuilder(object): + SELFIE_AUTH_TYPE = 1 + PIN_AUTH_TYPE = 2 + + def __init__(self): + self.__wanted_attributes = {} + self.__wanted_auth_types = {} + self.__is_wanted_remember_me = False + + """ + @param wanted_attribute + """ + + def with_wanted_attribute(self, wanted_attribute): + key = ( + wanted_attribute["derivation"] + if wanted_attribute.get("derivation", False) + else wanted_attribute["name"] + ) + self.__wanted_attributes[key] = wanted_attribute + return self + + """ + @param wanted_name The name of the attribute to include + """ + + def with_wanted_attribute_by_name(self, wanted_name): + attribute = WantedAttributeBuilder().with_name(wanted_name).build() + return self.with_wanted_attribute(attribute) + + def with_family_name(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_FAMILY_NAME) + + def with_given_names(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_GIVEN_NAMES) + + def with_full_name(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_FULL_NAME) + + def with_date_of_birth(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_DATE_OF_BIRTH) + + def with_age_derived_attribute(self, derivation): + attribute = ( + WantedAttributeBuilder() + .with_name(config.ATTRIBUTE_DATE_OF_BIRTH) + .with_derivation(derivation) + .build() + ) + return self.with_wanted_attribute(attribute) + + def with_age_over(self, age): + assert self.__is_number(age) + return self.with_age_derived_attribute(config.ATTRIBUTE_AGE_OVER + str(age)) + + def with_age_under(self, age): + assert self.__is_number(age) + return self.with_age_derived_attribute(config.ATTRIBUTE_AGE_UNDER + str(age)) + + def with_gender(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_GENDER) + + def with_postal_address(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_POSTAL_ADDRESS) + + def with_structured_postal_address(self): + return self.with_wanted_attribute_by_name( + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ) + + def with_nationality(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_NATIONALITY) + + def with_phone_number(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_PHONE_NUMBER) + + def with_selfie(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_SELFIE) + + def with_email(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_EMAIL_ADDRESS) + + def with_document_details(self): + return self.with_wanted_attribute_by_name(config.ATTRIBUTE_DOCUMENT_DETAILS) + + """ + @param wanted_auth_type + """ + + def with_wanted_auth_type(self, wanted_auth_type, wanted=True): + self.__wanted_auth_types[wanted_auth_type] = wanted + return self + + def with_selfie_auth(self, wanted=True): + return self.with_wanted_auth_type(self.SELFIE_AUTH_TYPE, wanted) + + def with_pin_auth(self, wanted=True): + return self.with_wanted_auth_type(self.PIN_AUTH_TYPE, wanted) + + """ + @param wanted + """ + + def with_wanted_remember_me(self, wanted=True): + self.__is_wanted_remember_me = wanted + return self + + def build(self): + return { + "wanted": list(self.__wanted_attributes.values()), + "wanted_auth_types": [ + auth for (auth, b) in self.__wanted_auth_types.items() if b + ], + "wanted_remember_me": self.__is_wanted_remember_me, + } + + def __is_number(self, num): + return re.match(r"^\d+$", str(num)) is not None diff --git a/yoti_python_sdk/dynamic_sharing_service/policy/wanted_attribute_builder.py b/yoti_python_sdk/dynamic_sharing_service/policy/wanted_attribute_builder.py new file mode 100644 index 00000000..90d77165 --- /dev/null +++ b/yoti_python_sdk/dynamic_sharing_service/policy/wanted_attribute_builder.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +""" +Builder for WantedAttribute +""" + + +class WantedAttributeBuilder(object): + def __init__(self): + self.__attribute = {} + + def with_name(self, name): + """ + :param name: Sets name + """ + self.__attribute["name"] = name + return self + + def with_derivation(self, derivation): + """ + :param derivation: Sets derivation + """ + self.__attribute["derivation"] = derivation + return self + + def build(self): + """ + :return: The wanted attribute object + """ + return self.__attribute.copy() diff --git a/yoti_python_sdk/dynamic_sharing_service/share_url.py b/yoti_python_sdk/dynamic_sharing_service/share_url.py new file mode 100644 index 00000000..31df805a --- /dev/null +++ b/yoti_python_sdk/dynamic_sharing_service/share_url.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import json +from yoti_python_sdk import client + +INVALID_DATA = "Json is incorrect, contains invalid data" +APPLICATION_NOT_FOUND = "Application was not found" +UNKNOWN_ERROR = "Unknown HTTP error occurred" + + +SHARE_URL_ERRORS = { + 400: "Json is incorrect, contains invalid data", + 404: "Application was not found", +} +SHARE_URL_ERRORS.update(client.DEFAULT_HTTP_CLIENT_ERRORS) + + +def create_share_url(yoti_client, dynamic_scenario): + http_method = "POST" + payload = json.dumps(dynamic_scenario, sort_keys=True).encode() + endpoint = yoti_client.endpoints.get_dynamic_share_request_url() + response = yoti_client.make_request(http_method, endpoint, payload) + + client.Client.http_error_handler(response, SHARE_URL_ERRORS) + + response_json = json.loads(response.text) + + return ShareUrl( + _ShareUrl__qr_code=response_json["qrcode"], + _ShareUrl__ref_id=response_json["ref_id"], + ) + + +class ShareUrl(object): + def __init__(self, **kwargs): + self.__dict__.update(kwargs) + + @property + def share_url(self): + return self.__qr_code + + @property + def ref_id(self): + return self.__ref_id diff --git a/yoti_python_sdk/endpoint.py b/yoti_python_sdk/endpoint.py index 3f9b0172..0ba3f2e2 100644 --- a/yoti_python_sdk/endpoint.py +++ b/yoti_python_sdk/endpoint.py @@ -7,18 +7,24 @@ def __init__(self, sdk_id): self.sdk_id = sdk_id def get_activity_details_request_path(self, decrypted_request_token): - return '/profile/{0}?nonce={1}×tamp={2}&appId={3}'.format( + return "/profile/{0}?nonce={1}×tamp={2}&appId={3}".format( decrypted_request_token, self.__create_nonce(), self.__create_timestamp(), - self.sdk_id + self.sdk_id, ) def get_aml_request_url(self): - return '/aml-check?appId={0}×tamp={1}&nonce={2}'.format( - self.sdk_id, - self.__create_timestamp(), - self.__create_nonce()) + return "/aml-check?appId={0}×tamp={1}&nonce={2}".format( + self.sdk_id, self.__create_timestamp(), self.__create_nonce() + ) + + def get_dynamic_share_request_url(self): + return "/qrcodes/apps/{appid}?nonce={nonce}×tamp={timestamp}".format( + appid=self.sdk_id, + nonce=self.__create_nonce(), + timestamp=self.__create_timestamp(), + ) @staticmethod def __create_nonce(): diff --git a/yoti_python_sdk/image.py b/yoti_python_sdk/image.py index ca146ac6..63d7cb60 100644 --- a/yoti_python_sdk/image.py +++ b/yoti_python_sdk/image.py @@ -14,7 +14,11 @@ def __init__(self, image_bytes, image_content_type): elif image_content_type == Protobuf.CT_PNG: self.__content_type = CONTENT_TYPE_PNG else: - raise TypeError("Content type '{0}' is not a supported image type".format(image_content_type)) + raise TypeError( + "Content type '{0}' is not a supported image type".format( + image_content_type + ) + ) self.__data = image_bytes @@ -34,5 +38,5 @@ def mime_type(self): return "image/{0}".format(self.__content_type) def base64_content(self): - data = base64.b64encode(self.__data).decode('utf-8') - return 'data:{0};base64,{1}'.format(self.mime_type(), data) + data = base64.b64encode(self.__data).decode("utf-8") + return "data:{0};base64,{1}".format(self.mime_type(), data) diff --git a/yoti_python_sdk/multivalue.py b/yoti_python_sdk/multivalue.py index 1414c348..772b4ebe 100644 --- a/yoti_python_sdk/multivalue.py +++ b/yoti_python_sdk/multivalue.py @@ -3,7 +3,9 @@ def parse(multi_value_bytes): - from yoti_python_sdk import attribute_parser # needed here (and not above) for Python 2.7 & 3.4 dependency handling + from yoti_python_sdk import ( + attribute_parser, + ) # needed here (and not above) for Python 2.7 & 3.4 dependency handling proto = protobuf.Protobuf() multi_value_list = [] @@ -12,8 +14,9 @@ def parse(multi_value_bytes): for multi_value_item in parsed_multi_value.values: multi_value_list.append( attribute_parser.value_based_on_content_type( - multi_value_item.data, - multi_value_item.content_type)) + multi_value_item.data, multi_value_item.content_type + ) + ) return multi_value_list diff --git a/yoti_python_sdk/profile.py b/yoti_python_sdk/profile.py index 337ec2ff..4a10d498 100644 --- a/yoti_python_sdk/profile.py +++ b/yoti_python_sdk/profile.py @@ -1,160 +1,219 @@ -# -*- coding: utf-8 -*- -import logging - -from yoti_python_sdk import attribute_parser, config, multivalue -from yoti_python_sdk.anchor import Anchor -from yoti_python_sdk.attribute import Attribute -from yoti_python_sdk.image import Image - - -class Profile: - def __init__(self, profile_attributes): - self.attributes = {} - - if profile_attributes: - for field in profile_attributes: - try: - value = attribute_parser.value_based_on_content_type( - field.value, - field.content_type - ) - - # this will be removed in v3.0.0, so selfie also returns an Image object - if field.content_type in Image.allowed_types(): - if field.name == config.ATTRIBUTE_SELFIE: - value = field.value - - if field.name == config.ATTRIBUTE_DOCUMENT_IMAGES: - value = multivalue.filter_values(value, Image) - - anchors = Anchor().parse_anchors(field.anchors) - - self.attributes[field.name] = Attribute(field.name, value, anchors) - - except ValueError as ve: - if logging.getLogger().propagate: - logging.warning(ve) - except Exception as exc: - if logging.getLogger().propagate: - logging.warning( - 'Error parsing profile attribute:{0}, exception: {1} - {2}'.format(field.name, - type(exc).__name__, exc)) - - self.ensure_postal_address() - - @property - def date_of_birth(self): - """date_of_birth represents the user's date of birth as a string. - Will be changed to return a datetime in v3.0.0. - Will be None if not provided by Yoti. - :return: Attribute(str) - """ - return self.get_attribute(config.ATTRIBUTE_DATE_OF_BIRTH) - - @property - def family_name(self): - """family_name represents the user's family name. This will be None if not provided by Yoti. - :return: Attribute(str) - """ - return self.get_attribute(config.ATTRIBUTE_FAMILY_NAME) - - @property - def given_names(self): - """given_names represents the user's given names. This will be None if not provided by Yoti. - :return: Attribute(str) - """ - return self.get_attribute(config.ATTRIBUTE_GIVEN_NAMES) - - @property - def full_name(self): - """full_name represents the user's full name. - If family_name and given_names are present, the value will be equal to the string 'given_names + " " + family_name'. - Will be None if not provided by Yoti. - :return: Attribute(str) - """ - return self.get_attribute(config.ATTRIBUTE_FULL_NAME) - - @property - def gender(self): - """gender corresponds to the gender in the registered document. - The value will be one of the strings "MALE", "FEMALE", "TRANSGENDER" or "OTHER". - Will be None if not provided by Yoti. - :return: Attribute(str) - """ - return self.get_attribute(config.ATTRIBUTE_GENDER) - - @property - def nationality(self): - """nationality corresponds to the nationality in the passport. - The value is an ISO-3166-1 alpha-3 code with ICAO9303 (passport) extensions. - Will be None if not provided by Yoti. - :return: Attribute(str) - """ - return self.get_attribute(config.ATTRIBUTE_NATIONALITY) - - @property - def email_address(self): - """email_address represents the user's email address. This will be None if not provided by Yoti. - :return: Attribute(str) - """ - return self.get_attribute(config.ATTRIBUTE_EMAIL_ADDRESS) - - @property - def phone_number(self): - """phone_number represents the user's mobile phone number. This will be None if not provided by Yoti. - :return: Attribute(str) - """ - return self.get_attribute(config.ATTRIBUTE_PHONE_NUMBER) - - @property - def postal_address(self): - """postal_address represents the user's address. This will be None if not provided by Yoti. - :return: Attribute(str) - """ - return self.get_attribute(config.ATTRIBUTE_POSTAL_ADDRESS) - - @property - def selfie(self): - """selfie is a photograph of the user. Will be None if not provided by Yoti. - :return: Attribute(image) - """ - return self.get_attribute(config.ATTRIBUTE_SELFIE) - - @property - def structured_postal_address(self): - """structured_postal_address represents the user's address represented as an OrderedDict. - This will be None if not provided by Yoti. - :return: Attribute(OrderedDict) - """ - return self.get_attribute(config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS) - - @property - def document_images(self): - """document_images returns a tuple of document images cropped from the image in the capture page. - There can be multiple images as per the number of regions in the capture in this attribute. - Will be None if not provided by Yoti. - :return: Attribute(tuple(image)) - """ - return self.get_attribute(config.ATTRIBUTE_DOCUMENT_IMAGES) - - def get_attribute(self, attribute_name): - """retrieves an attribute based on its name - :param attribute_name: - :return: Attribute - """ - if attribute_name in self.attributes: - return self.attributes.get(attribute_name) - else: - return None - - def ensure_postal_address(self): - if config.ATTRIBUTE_POSTAL_ADDRESS not in self.attributes and config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS in self.attributes: - structured_postal_address = self.attributes[config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] - - if config.KEY_FORMATTED_ADDRESS in structured_postal_address.value: - formatted_address = structured_postal_address.value[ - config.KEY_FORMATTED_ADDRESS] - self.attributes[config.ATTRIBUTE_POSTAL_ADDRESS] = Attribute( - config.ATTRIBUTE_POSTAL_ADDRESS, - formatted_address, - structured_postal_address.anchors) +# -*- coding: utf-8 -*- +import logging + +from yoti_python_sdk import attribute_parser, config, multivalue +from yoti_python_sdk.anchor import Anchor +from yoti_python_sdk.attribute import Attribute +from yoti_python_sdk.image import Image +from yoti_python_sdk import document_details + + +class BaseProfile(object): + + def __init__(self, profile_attributes): + self.attributes = {} + + if profile_attributes: + for field in profile_attributes: + try: + value = attribute_parser.value_based_on_content_type( + field.value, field.content_type + ) + + # this will be removed in v3.0.0, so selfie also returns an Image object + if field.content_type in Image.allowed_types(): + if field.name == config.ATTRIBUTE_SELFIE: + value = field.value + + if field.name == config.ATTRIBUTE_DOCUMENT_IMAGES: + value = multivalue.filter_values(value, Image) + if field.name == config.ATTRIBUTE_DOCUMENT_DETAILS: + value = document_details.DocumentDetails(value) + + anchors = Anchor().parse_anchors(field.anchors) + + self.attributes[field.name] = Attribute(field.name, value, anchors) + + except ValueError as ve: + if logging.getLogger().propagate: + logging.warning(ve) + except Exception as exc: + if logging.getLogger().propagate: + logging.warning( + "Error parsing profile attribute:{0}, exception: {1} - {2}".format( + field.name, type(exc).__name__, exc + ) + ) + + def get_attribute(self, attribute_name): + """ + retrieves an attribute based on its name + :param attribute_name: + :return: Attribute + """ + if attribute_name in self.attributes: + return self.attributes.get(attribute_name) + else: + return None + + +class Profile(BaseProfile): + def __init__(self, profile_attributes): + super(Profile, self).__init__(profile_attributes) + self.ensure_postal_address() + + @property + def date_of_birth(self): + """date_of_birth represents the user's date of birth as a string. + Will be changed to return a datetime in v3.0.0. + Will be None if not provided by Yoti. + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_DATE_OF_BIRTH) + + @property + def family_name(self): + """family_name represents the user's family name. This will be None if not provided by Yoti. + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_FAMILY_NAME) + + @property + def given_names(self): + """given_names represents the user's given names. This will be None if not provided by Yoti. + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_GIVEN_NAMES) + + @property + def full_name(self): + """full_name represents the user's full name. + If family_name and given_names are present, the value will be equal to the string 'given_names + " " + family_name'. + Will be None if not provided by Yoti. + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_FULL_NAME) + + @property + def gender(self): + """gender corresponds to the gender in the registered document. + The value will be one of the strings "MALE", "FEMALE", "TRANSGENDER" or "OTHER". + Will be None if not provided by Yoti. + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_GENDER) + + @property + def nationality(self): + """nationality corresponds to the nationality in the passport. + The value is an ISO-3166-1 alpha-3 code with ICAO9303 (passport) extensions. + Will be None if not provided by Yoti. + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_NATIONALITY) + + @property + def email_address(self): + """email_address represents the user's email address. This will be None if not provided by Yoti. + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_EMAIL_ADDRESS) + + @property + def phone_number(self): + """phone_number represents the user's mobile phone number. This will be None if not provided by Yoti. + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_PHONE_NUMBER) + + @property + def postal_address(self): + """postal_address represents the user's address. This will be None if not provided by Yoti. + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_POSTAL_ADDRESS) + + @property + def selfie(self): + """selfie is a photograph of the user. Will be None if not provided by Yoti. + :return: Attribute(image) + """ + return self.get_attribute(config.ATTRIBUTE_SELFIE) + + @property + def structured_postal_address(self): + """structured_postal_address represents the user's address represented as an OrderedDict. + This will be None if not provided by Yoti. + :return: Attribute(OrderedDict) + """ + return self.get_attribute(config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS) + + @property + def document_images(self): + """document_images returns a tuple of document images cropped from the image in the capture page. + There can be multiple images as per the number of regions in the capture in this attribute. + Will be None if not provided by Yoti. + :return: Attribute(tuple(image)) + """ + return self.get_attribute(config.ATTRIBUTE_DOCUMENT_IMAGES) + + @property + def document_details(self): + return self.get_attribute(config.ATTRIBUTE_DOCUMENT_DETAILS) + + + def ensure_postal_address(self): + if ( + config.ATTRIBUTE_POSTAL_ADDRESS not in self.attributes + and config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS in self.attributes + ): + structured_postal_address = self.attributes[ + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ] + + if config.KEY_FORMATTED_ADDRESS in structured_postal_address.value: + formatted_address = structured_postal_address.value[ + config.KEY_FORMATTED_ADDRESS + ] + self.attributes[config.ATTRIBUTE_POSTAL_ADDRESS] = Attribute( + config.ATTRIBUTE_POSTAL_ADDRESS, + formatted_address, + structured_postal_address.anchors, + ) + + +class ApplicationProfile(BaseProfile): + def __init__(self, profile_attributes): + super(ApplicationProfile, self).__init__(profile_attributes) + + @property + def application_name(self): + """ + application_name is the name of the application set in Yoti Hub + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_APPLICATION_NAME) + + @property + def application_url(self): + """ + application_url is the url of the application set in Yoti Hub + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_APPLICATION_URL) + + @property + def application_logo(self): + """ + application_logo is the Image of the application logo set in Yoti Hub + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_APPLICATION_LOGO) + + @property + def application_receipt_bg_color(self): + """ + application_receipt_bg_color is the background color of the application set in Yoti Hub + :return: Attribute(str) + """ + return self.get_attribute(config.ATTRIBUTE_APPLICATION_RECEIPT_BGCOLOR) diff --git a/yoti_python_sdk/protobuf/protobuf.py b/yoti_python_sdk/protobuf/protobuf.py index 48a02135..14dd15db 100644 --- a/yoti_python_sdk/protobuf/protobuf.py +++ b/yoti_python_sdk/protobuf/protobuf.py @@ -28,6 +28,19 @@ def current_user(receipt): merged_user.MergeFromString(decoded_profile_content) return merged_user + @staticmethod + def current_application(receipt): + if receipt.get("profile_content") is None or receipt.get("profile_content") == '': + return None + + application_content = receipt["profile_content"] + decoded_application_content = base64.b64decode(application_content) + + merged_application = EncryptedData_pb2.EncryptedData() + merged_application.MergeFromString(decoded_application_content) + + return merged_application + @staticmethod def attribute_list(data): attribute_list = List_pb2.AttributeList() diff --git a/yoti_python_sdk/tests/anchor_fixture_parser.py b/yoti_python_sdk/tests/anchor_fixture_parser.py index a36175e0..6d1f3146 100644 --- a/yoti_python_sdk/tests/anchor_fixture_parser.py +++ b/yoti_python_sdk/tests/anchor_fixture_parser.py @@ -5,10 +5,11 @@ from yoti_python_sdk.protobuf import protobuf from yoti_python_sdk.tests import file_helper -FIXTURES_DIR = join(dirname(abspath(__file__)), 'fixtures') -ANCHOR_DRIVING_LICENSE = join(FIXTURES_DIR, 'anchor_driving_license.txt') -ANCHOR_PASSPORT = join(FIXTURES_DIR, 'anchor_passport.txt') -ANCHOR_YOTI_ADMIN = join(FIXTURES_DIR, 'anchor_yoti_admin.txt') +FIXTURES_DIR = join(dirname(abspath(__file__)), "fixtures") +ANCHOR_DRIVING_LICENSE = join(FIXTURES_DIR, "anchor_driving_license.txt") +ANCHOR_PASSPORT = join(FIXTURES_DIR, "anchor_passport.txt") +ANCHOR_YOTI_ADMIN = join(FIXTURES_DIR, "anchor_yoti_admin.txt") +ANCHOR_UNKNOWN_ANCHOR = join(FIXTURES_DIR, "unknown_anchor.txt") def get_anchor_from_base64_text(file_path): @@ -22,12 +23,18 @@ def get_anchor_from_base64_text(file_path): def get_parsed_driving_license_anchor(): - return anchor.Anchor().parse_anchors(get_anchor_from_base64_text(ANCHOR_DRIVING_LICENSE))[0] + return anchor.Anchor().parse_anchors( + get_anchor_from_base64_text(ANCHOR_DRIVING_LICENSE) + )[0] def get_parsed_passport_anchor(): - return anchor.Anchor().parse_anchors(get_anchor_from_base64_text(ANCHOR_PASSPORT))[0] + return anchor.Anchor().parse_anchors(get_anchor_from_base64_text(ANCHOR_PASSPORT))[ + 0 + ] def get_parsed_yoti_admin_anchor(): - return anchor.Anchor().parse_anchors(get_anchor_from_base64_text(ANCHOR_YOTI_ADMIN))[0] + return anchor.Anchor().parse_anchors( + get_anchor_from_base64_text(ANCHOR_YOTI_ADMIN) + )[0] diff --git a/yoti_python_sdk/tests/attribute_fixture_parser.py b/yoti_python_sdk/tests/attribute_fixture_parser.py index aca50070..fbccb78f 100644 --- a/yoti_python_sdk/tests/attribute_fixture_parser.py +++ b/yoti_python_sdk/tests/attribute_fixture_parser.py @@ -5,8 +5,8 @@ from yoti_python_sdk.protobuf import protobuf from yoti_python_sdk.tests import file_helper -FIXTURES_DIR = join(dirname(abspath(__file__)), 'fixtures') -ATTRIBUTE_DOCUMENT_IMAGES = join(FIXTURES_DIR, 'attribute_document_images.txt') +FIXTURES_DIR = join(dirname(abspath(__file__)), "fixtures") +ATTRIBUTE_DOCUMENT_IMAGES = join(FIXTURES_DIR, "attribute_document_images.txt") def get_attribute_from_base64_text(file_path): @@ -17,8 +17,9 @@ def get_attribute_from_base64_text(file_path): def parse_multi_value(): multi_value_proto_attribute = get_attribute_from_base64_text( - ATTRIBUTE_DOCUMENT_IMAGES) + ATTRIBUTE_DOCUMENT_IMAGES + ) return attribute_parser.value_based_on_content_type( - multi_value_proto_attribute.value, - multi_value_proto_attribute.content_type) + multi_value_proto_attribute.value, multi_value_proto_attribute.content_type + ) diff --git a/yoti_python_sdk/tests/conftest.py b/yoti_python_sdk/tests/conftest.py index 1cbdcd24..c7c87b77 100644 --- a/yoti_python_sdk/tests/conftest.py +++ b/yoti_python_sdk/tests/conftest.py @@ -7,100 +7,106 @@ from yoti_python_sdk import Client from yoti_python_sdk.crypto import Crypto -FIXTURES_DIR = join(dirname(abspath(__file__)), 'fixtures') -PEM_FILE_PATH = join(FIXTURES_DIR, 'sdk-test.pem') -ENCRYPTED_TOKEN_FILE_PATH = join(FIXTURES_DIR, 'encrypted_yoti_token.txt') -AUTH_KEY_FILE_PATH = join(FIXTURES_DIR, 'auth_key.txt') -AUTH_DIGEST_GET_FILE_PATH = join(FIXTURES_DIR, 'auth_digest_get.txt') -AUTH_DIGEST_POST_FILE_PATH = join(FIXTURES_DIR, 'auth_digest_post.txt') +FIXTURES_DIR = join(dirname(abspath(__file__)), "fixtures") +PEM_FILE_PATH = join(FIXTURES_DIR, "sdk-test.pem") +ENCRYPTED_TOKEN_FILE_PATH = join(FIXTURES_DIR, "encrypted_yoti_token.txt") +AUTH_KEY_FILE_PATH = join(FIXTURES_DIR, "auth_key.txt") +AUTH_DIGEST_GET_FILE_PATH = join(FIXTURES_DIR, "auth_digest_get.txt") +AUTH_DIGEST_POST_FILE_PATH = join(FIXTURES_DIR, "auth_digest_post.txt") -YOTI_CLIENT_SDK_ID = '737204aa-d54e-49a4-8bde-26ddbe6d880c' +YOTI_CLIENT_SDK_ID = "737204aa-d54e-49a4-8bde-26ddbe6d880c" -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def client(): return Client(YOTI_CLIENT_SDK_ID, PEM_FILE_PATH) -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def crypto(): - with open(PEM_FILE_PATH, 'rb') as pem_file: + with open(PEM_FILE_PATH, "rb") as pem_file: return Crypto(pem_file.read()) -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def encrypted_request_token(): - with open(ENCRYPTED_TOKEN_FILE_PATH, 'rb') as token_file: + with open(ENCRYPTED_TOKEN_FILE_PATH, "rb") as token_file: return token_file.read() -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def decrypted_request_token(): - return 'd1JtHdjH-2c161003-cbaf-4080-b2a8-5a6d86577334-3f9d9a9a-' \ - '470c-48e5-8ceb-25cf86674ba4' + return ( + "i79CctmY-22ad195c-d166-49a2-af16-8f356788c9dd-be094d26-" + "19b5-450d-afce-070101760f0b" + ) -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def user_id(): - return 'ijH4kkqMKTG0FSNUgQIvd2Z3Nx1j8f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrN' + return "ijH4kkqMKTG0FSNUgQIvd2Z3Nx1j8f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrN" -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def parent_remember_me_id(): - return 'f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrNijH4k4qafTG0FSNUgQIvd2Z3Nx1j8' + return "f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrNijH4k4qafTG0FSNUgQIvd2Z3Nx1j8" -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def receipt_id(): - return 'Eq3+P8qjAlxr4d2mXKCUvzKdJTchI53ghwYPZXyA/cF5T+m/HCP1bK5LOmudZASN' + return "Eq3+P8qjAlxr4d2mXKCUvzKdJTchI53ghwYPZXyA/cF5T+m/HCP1bK5LOmudZASN" -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def timestamp(): - return '2016-11-14T11:35:33Z' + return "2016-11-14T11:35:33Z" -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def successful_receipt(): - return {'remember_me_id': user_id(), - 'parent_remember_me_id': parent_remember_me_id(), - 'receipt_id': receipt_id(), - 'timestamp': timestamp(), - 'sharing_outcome': 'SUCCESS'} + return { + "remember_me_id": user_id(), + "parent_remember_me_id": parent_remember_me_id(), + "receipt_id": receipt_id(), + "timestamp": timestamp(), + "sharing_outcome": "SUCCESS", + } -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def failure_receipt(): - return {'remember_me_id': user_id(), - 'sharing_outcome': 'FAILURE', - 'timestamp': timestamp()} + return { + "remember_me_id": user_id(), + "sharing_outcome": "FAILURE", + "timestamp": timestamp(), + } -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def empty_strings(): - return {'remember_me_id': '', - 'parent_remember_me_id': '', - 'sharing_outcome': ''} + return {"remember_me_id": "", "parent_remember_me_id": "", "sharing_outcome": ""} -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def no_values_receipt(): return {} -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def x_yoti_auth_key(): - with open(AUTH_KEY_FILE_PATH, 'r') as auth_key_file: + with open(AUTH_KEY_FILE_PATH, "r") as auth_key_file: return auth_key_file.read() -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def x_yoti_auth_digest_get(): - with open(AUTH_DIGEST_GET_FILE_PATH, 'r') as auth_digest_file: + with open(AUTH_DIGEST_GET_FILE_PATH, "r") as auth_digest_file: return auth_digest_file.read() -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def x_yoti_auth_digest_post(): - with io.open(AUTH_DIGEST_POST_FILE_PATH, mode='r', encoding='utf-8') as auth_digest_file: + with io.open( + AUTH_DIGEST_POST_FILE_PATH, mode="r", encoding="utf-8" + ) as auth_digest_file: return auth_digest_file.read() diff --git a/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_extension_builder.py b/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_extension_builder.py new file mode 100644 index 00000000..f8c662ff --- /dev/null +++ b/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_extension_builder.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from yoti_python_sdk.dynamic_sharing_service.extension.extension_builder import ( + ExtensionBuilder, +) + + +def test_build_simple_extension(): + EXTENSION_TYPE = "TEST" + EXTENSION_CONTENT = 99 + + extension = ( + ExtensionBuilder() + .with_extension_type(EXTENSION_TYPE) + .with_content(EXTENSION_CONTENT) + .build() + ) + + assert extension["type"] == EXTENSION_TYPE + assert extension["content"] == EXTENSION_CONTENT diff --git a/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_location_constraint_extension_builder.py b/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_location_constraint_extension_builder.py new file mode 100644 index 00000000..08d4eb70 --- /dev/null +++ b/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_location_constraint_extension_builder.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from yoti_python_sdk.dynamic_sharing_service.extension.location_constraint_extension_builder import ( + LocationConstraintExtensionBuilder, +) + + +def test_builds_with_given_values(): + LATITUDE = 50 + LONGTITUDE = 99 + RADIUS = 60 + UNCERTAINTY = 30 + + extension = ( + LocationConstraintExtensionBuilder() + .with_latitude(LATITUDE) + .with_longtitude(LONGTITUDE) + .with_radius(RADIUS) + .with_uncertainty(UNCERTAINTY) + .build() + ) + + device_location = extension["content"]["expected_device_location"] + + assert device_location["latitude"] == LATITUDE + assert device_location["longtitude"] == LONGTITUDE + assert device_location["radius"] == RADIUS + assert device_location["max_uncertainty_radius"] == UNCERTAINTY diff --git a/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_transactional_flow_extension_builder.py b/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_transactional_flow_extension_builder.py new file mode 100644 index 00000000..5b2cdfa2 --- /dev/null +++ b/yoti_python_sdk/tests/dynamic_sharing_service/extension/test_transactional_flow_extension_builder.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from yoti_python_sdk.dynamic_sharing_service.extension.transactional_flow_extension_builder import ( + TransactionalFlowExtensionBuilder, +) + + +def test_should_build(): + TRANSACTIONAL_FLOW = "TRANSACTIONAL_FLOW" + EXTENSION_CONTENT = 99 + + extension = ( + TransactionalFlowExtensionBuilder().with_content(EXTENSION_CONTENT).build() + ) + + assert extension["type"] == TRANSACTIONAL_FLOW + assert extension["content"] == EXTENSION_CONTENT diff --git a/yoti_python_sdk/tests/dynamic_sharing_service/policy/test_dynamic_policy_builder.py b/yoti_python_sdk/tests/dynamic_sharing_service/policy/test_dynamic_policy_builder.py new file mode 100644 index 00000000..e53edbdc --- /dev/null +++ b/yoti_python_sdk/tests/dynamic_sharing_service/policy/test_dynamic_policy_builder.py @@ -0,0 +1,121 @@ +from yoti_python_sdk.dynamic_sharing_service.policy.dynamic_policy_builder import ( + DynamicPolicyBuilder, +) +from yoti_python_sdk.dynamic_sharing_service.policy.wanted_attribute_builder import ( + WantedAttributeBuilder, +) + +from yoti_python_sdk import config + + +def test_an_attribute_can_only_exist_once(): + NAME = "Test name" + + wanted_attribute = WantedAttributeBuilder().with_name(NAME).build() + + policy = ( + DynamicPolicyBuilder() + .with_wanted_attribute(wanted_attribute) + .with_wanted_attribute(wanted_attribute) + .build() + ) + + assert len(policy["wanted"]) == 1 + assert wanted_attribute in policy["wanted"] + + +def test_remember_me(): + policy = DynamicPolicyBuilder().with_wanted_remember_me().build() + + assert policy["wanted_remember_me"] + + +def test_build_with_simple_attributes(): + builder = DynamicPolicyBuilder() + builder.with_family_name() + builder.with_given_names() + builder.with_full_name() + builder.with_date_of_birth() + builder.with_gender() + builder.with_postal_address() + builder.with_structured_postal_address() + builder.with_nationality() + builder.with_phone_number() + builder.with_selfie() + builder.with_email() + builder.with_document_details() + policy = builder.build() + + attr_names = [attr["name"] for attr in policy["wanted"]] + assert len(policy["wanted"]) == 12 + assert config.ATTRIBUTE_FAMILY_NAME in attr_names + assert config.ATTRIBUTE_GIVEN_NAMES in attr_names + assert config.ATTRIBUTE_FULL_NAME in attr_names + assert config.ATTRIBUTE_DATE_OF_BIRTH in attr_names + assert config.ATTRIBUTE_GENDER in attr_names + assert config.ATTRIBUTE_POSTAL_ADDRESS in attr_names + assert config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS in attr_names + assert config.ATTRIBUTE_NATIONALITY in attr_names + assert config.ATTRIBUTE_PHONE_NUMBER in attr_names + assert config.ATTRIBUTE_SELFIE in attr_names + assert config.ATTRIBUTE_EMAIL_ADDRESS in attr_names + assert config.ATTRIBUTE_DOCUMENT_DETAILS in attr_names + + +def test_build_with_age_derived_attributes(): + builder = DynamicPolicyBuilder() + builder.with_age_over(18) + builder.with_age_under(30) + builder.with_age_under(40) + policy = builder.build() + + attrs = [attr["derivation"] for attr in policy["wanted"]] + assert len(attrs) == 3 + assert config.ATTRIBUTE_AGE_OVER + "18" in attrs + assert config.ATTRIBUTE_AGE_UNDER + "30" in attrs + assert config.ATTRIBUTE_AGE_UNDER + "40" in attrs + + +def test_a_derivation_can_exist_only_once(): + policy = DynamicPolicyBuilder().with_age_under(30).with_age_under(30).build() + + assert len(policy["wanted"]) == 1 + assert config.ATTRIBUTE_AGE_UNDER + "30" in [ + a["derivation"] for a in policy["wanted"] + ] + + +def test_wanted_auth_types(): + policy = ( + DynamicPolicyBuilder() + .with_selfie_auth() + .with_pin_auth() + .with_wanted_auth_type(99) + .build() + ) + + assert len(policy["wanted_auth_types"]) == 3 + assert DynamicPolicyBuilder.SELFIE_AUTH_TYPE in policy["wanted_auth_types"] + assert DynamicPolicyBuilder.PIN_AUTH_TYPE in policy["wanted_auth_types"] + assert 99 in policy["wanted_auth_types"] + + +def test_build_with_auth_types_false(): + policy = DynamicPolicyBuilder().with_selfie_auth(False).build() + + assert len(policy["wanted_auth_types"]) == 0 + + +def test_auth_types_can_exist_only_once(): + policy = ( + DynamicPolicyBuilder() + .with_selfie_auth(True) + .with_selfie_auth(False) + .with_pin_auth() + .with_pin_auth() + .build() + ) + + assert len(policy["wanted_auth_types"]) == 1 + assert DynamicPolicyBuilder.SELFIE_AUTH_TYPE not in policy["wanted_auth_types"] + assert DynamicPolicyBuilder.PIN_AUTH_TYPE in policy["wanted_auth_types"] diff --git a/yoti_python_sdk/tests/dynamic_sharing_service/policy/test_wanted_attribute_builder.py b/yoti_python_sdk/tests/dynamic_sharing_service/policy/test_wanted_attribute_builder.py new file mode 100644 index 00000000..e061460f --- /dev/null +++ b/yoti_python_sdk/tests/dynamic_sharing_service/policy/test_wanted_attribute_builder.py @@ -0,0 +1,15 @@ +from yoti_python_sdk.dynamic_sharing_service.policy.wanted_attribute_builder import ( + WantedAttributeBuilder, +) + + +def test_build(): + NAME = "Test name" + DERIVATION = "Test derivation" + + builder = WantedAttributeBuilder() + + attribute = builder.with_name(NAME).with_derivation(DERIVATION).build() + + assert attribute["name"] == NAME + assert attribute["derivation"] == DERIVATION diff --git a/yoti_python_sdk/tests/dynamic_sharing_service/test_dynamic_scenario_builder.py b/yoti_python_sdk/tests/dynamic_sharing_service/test_dynamic_scenario_builder.py new file mode 100644 index 00000000..a0103d63 --- /dev/null +++ b/yoti_python_sdk/tests/dynamic_sharing_service/test_dynamic_scenario_builder.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from yoti_python_sdk.dynamic_sharing_service.dynamic_scenario_builder import ( + DynamicScenarioBuilder, +) +from yoti_python_sdk.dynamic_sharing_service.policy.dynamic_policy_builder import ( + DynamicPolicyBuilder, +) + + +def test_build_scenario(): + EXTENSION1 = "Extension 1" + EXTENSION2 = "Extension 2" + CALLBACK_ENDPOINT = "Callback Endpoint" + + scenario = ( + DynamicScenarioBuilder() + .with_policy( + DynamicPolicyBuilder().with_full_name().with_wanted_remember_me().build() + ) + .with_extension(EXTENSION1) + .with_extension(EXTENSION2) + .with_callback_endpoint(CALLBACK_ENDPOINT) + .build() + ) + + assert len(scenario["policy"]["wanted"]) == 1 + assert scenario["policy"]["wanted_remember_me"] + assert len(scenario["extensions"]) == 2 + assert EXTENSION1 in scenario["extensions"] + assert EXTENSION2 in scenario["extensions"] + assert scenario["callback_endpoint"] == CALLBACK_ENDPOINT diff --git a/yoti_python_sdk/tests/dynamic_sharing_service/test_share_url.py b/yoti_python_sdk/tests/dynamic_sharing_service/test_share_url.py new file mode 100644 index 00000000..11f6d3d4 --- /dev/null +++ b/yoti_python_sdk/tests/dynamic_sharing_service/test_share_url.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import pytest + +from yoti_python_sdk.tests.conftest import PEM_FILE_PATH, YOTI_CLIENT_SDK_ID +from yoti_python_sdk.tests.mocks import ( + mocked_requests_post_share_url, + mocked_requests_post_share_url_app_not_found, + mocked_requests_post_share_url_invalid_json, + mocked_timestamp, + mocked_uuid4, +) + +from yoti_python_sdk.dynamic_sharing_service import share_url +from yoti_python_sdk.dynamic_sharing_service.dynamic_scenario_builder import ( + DynamicScenarioBuilder, +) +from yoti_python_sdk.client import Client + +try: + from unittest import mock +except ImportError: + import mock + + +@mock.patch("requests.request", side_effect=mocked_requests_post_share_url) +@mock.patch("time.time", side_effect=mocked_timestamp) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +def test_create_share_url_with_correct_data(mock_uuid4, mock_time, mock_get): + yoti_client = Client(YOTI_CLIENT_SDK_ID, PEM_FILE_PATH) + dynamic_scenario = DynamicScenarioBuilder().build() + + dynamic_share = share_url.create_share_url(yoti_client, dynamic_scenario) + + assert ( + dynamic_share.share_url == "https://code.yoti.com/forfhq3peurij4ihroiehg4jgiej" + ) + assert dynamic_share.ref_id == "01aa2dea-d28b-11e6-bf26-cec0c932ce01" + + +@mock.patch("requests.request", side_effect=mocked_requests_post_share_url_invalid_json) +@mock.patch("time.time", side_effect=mocked_timestamp) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +def test_create_share_url_invalid_json(mock_uuid4, mock_time, mock_get): + yoti_client = Client(YOTI_CLIENT_SDK_ID, PEM_FILE_PATH) + dynamic_scenario = DynamicScenarioBuilder().build() + + with pytest.raises(RuntimeError) as err: + share_url.create_share_url(yoti_client, dynamic_scenario) + assert share_url.INVALID_DATA in str(err) + + +@mock.patch( + "requests.request", side_effect=mocked_requests_post_share_url_app_not_found +) +@mock.patch("time.time", side_effect=mocked_timestamp) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +def test_create_share_url_app_not_found(mock_uuid4, mock_time, mock_get): + yoti_client = Client(YOTI_CLIENT_SDK_ID, PEM_FILE_PATH) + dynamic_scenario = DynamicScenarioBuilder().build() + + with pytest.raises(RuntimeError) as err: + share_url.create_share_url(yoti_client, dynamic_scenario) + assert share_url.APPLICATION_NOT_FOUND in str(err) diff --git a/yoti_python_sdk/tests/file_helper.py b/yoti_python_sdk/tests/file_helper.py index eebaed80..642c0d82 100644 --- a/yoti_python_sdk/tests/file_helper.py +++ b/yoti_python_sdk/tests/file_helper.py @@ -2,7 +2,7 @@ import io from os.path import abspath, dirname, join -FIXTURES_DIR = join(dirname(abspath(__file__)), 'fixtures') +FIXTURES_DIR = join(dirname(abspath(__file__)), "fixtures") def get_file_bytes(file_path): @@ -13,5 +13,5 @@ def get_file_bytes(file_path): def read_file(file_path): - with io.open(file_path, mode='r', encoding='utf-8') as file: + with io.open(file_path, mode="r", encoding="utf-8") as file: return file.read() diff --git a/yoti_python_sdk/tests/fixtures/anchor_driving_license.txt b/yoti_python_sdk/tests/fixtures/anchor_driving_license.txt index d8cda973..d6474a68 100644 --- a/yoti_python_sdk/tests/fixtures/anchor_driving_license.txt +++ b/yoti_python_sdk/tests/fixtures/anchor_driving_license.txt @@ -1 +1 @@ -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 diff --git a/yoti_python_sdk/tests/fixtures/anchor_passport.txt b/yoti_python_sdk/tests/fixtures/anchor_passport.txt index d2ad157c..fee8e008 100644 --- a/yoti_python_sdk/tests/fixtures/anchor_passport.txt +++ b/yoti_python_sdk/tests/fixtures/anchor_passport.txt @@ -1 +1 @@ -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 diff --git a/yoti_python_sdk/tests/fixtures/anchor_yoti_admin.txt b/yoti_python_sdk/tests/fixtures/anchor_yoti_admin.txt index dca6e9ad..0dd7fce5 100644 --- a/yoti_python_sdk/tests/fixtures/anchor_yoti_admin.txt +++ b/yoti_python_sdk/tests/fixtures/anchor_yoti_admin.txt @@ -1 +1 @@ -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 diff --git a/yoti_python_sdk/tests/fixtures/auth_digest_get.txt b/yoti_python_sdk/tests/fixtures/auth_digest_get.txt index 7ac3205c..dbbe08f0 100644 --- a/yoti_python_sdk/tests/fixtures/auth_digest_get.txt +++ b/yoti_python_sdk/tests/fixtures/auth_digest_get.txt @@ -1 +1 @@ -pEzXGoyTwknVwi6k1b6Cpl5l+EDT32IqrHUOj79nohPs8VSYpiBz3JjSTrPQN8XyEFEf6glGsaeXanqfM0yClwx9/vLYjGNB+CliUt0wL27xmxrEgA2tMx28q8W9OMcl5Go2rwLbLV+rmm0TUE4yBwnTp0zzj4p3vQTChNKKkaZLNoQAAF5nGEza/jDc/HZDg7u1c84i5Z/aoycaiBtmwWpi0/Hm882FmYGEEi5yeuwccoE1y4a/dhbCrSetr4mowRw1mNM3nyeA2AA4+nU3hag5FGvC1WLbnwXtMeKKgorZIY4BoXh4jJ/4RcKwrbz8olQ93sHYPvElbr+4Fnnnyg== \ No newline at end of file +AuMNqWmOu8eSmMlI81sKqpAUJhdE7Jkj1GT+G+RSjQE5SftcgNEPduZQihKYoSORtGVpm2dFT2OgndAGWYOdumDPnm2XIpqpG1Ye9X7nVzegxL31l7tFfzkjweHOYkhedTcY9FSfx2j3w+8vc9xRTLHybiJoFGouFPuu5e9y9T1uwYYhjbu/Mj9bgbKBbOo0qeOqJt47Z6YqKaTeYMMqw9KiLCFibNHow7IOzwoxcgegK+P3CcyFCATVA384mr3SlLpCNC67aK0IpXdzdcBK+cegAEu2L0PPDCMe3qmur0aknvPjLPkQwI7SPOWcikmAUDkc01AjWbMOiz8jKKs/yA== \ No newline at end of file diff --git a/yoti_python_sdk/tests/fixtures/auth_digest_post.txt b/yoti_python_sdk/tests/fixtures/auth_digest_post.txt index 233ccf6b..2ecbd4ae 100644 --- a/yoti_python_sdk/tests/fixtures/auth_digest_post.txt +++ b/yoti_python_sdk/tests/fixtures/auth_digest_post.txt @@ -1 +1 @@ -ap4NxEcN2CGfGK1g99zqgoRLDdw1f5wluBmCBLbL0l3b3OmFZxfhTHeFEgUYMLn1Lxn/ZZDgWiIDCf4K2ADRZlufVroCYRbGmaAcR5SZZ2tzfmFsBJFpLrTJ0gzd6k5RTgy+mG9eKQsiP0q2yyUgtyEtIH/01xpoS/QwQ+G5sfLeNx25KAtQlDEKcXnspXhP33YNZ8b4MnPC8c89YSAB3XphEo6PJytH8xa1U2YyvW+aq4yqWZZxNuscVQE+Su3pqmzB5+lTQdxpK0X+rXGa2RWOAQG5/J8utidiAATWl+wZlNXKc2VaJNKVqz6r/LVsbxqxtFICwYzyNjVcxlERNQ== \ No newline at end of file +GuU/GcEzQGZ2osKvalkP/a+ULJ9sVeu1lAQiaBrZ8iPbf+SGopPzlWVVvzCexVZMSB5VWcvyJm294F9xSax7VrB7nJHWkFV1Gh+6xy3Zjok6Ty3yx52uHczDHPQf8NGWGDlQNoE6ArZDOSmka5/6griD9ipirdeIB44RM1I/TjB1ULLUCBRffMh9ijxKSsR5M9KRu9Z/XV3TEE9NZ5bJX47S2hQQuZXcg2XvUWXU9tVqvMnqIGS3hxVvH3Pk+x0cx45JIxND87IuXxTEnYUZfKhO1uTaEwLNWrtRDSFhOCYuXNprRlNQVqqEUJMT8HHPi2wZJKIl/FEgrSQqegxQGw== \ No newline at end of file diff --git a/yoti_python_sdk/tests/fixtures/auth_key.txt b/yoti_python_sdk/tests/fixtures/auth_key.txt index 1519da04..b0339651 100644 --- a/yoti_python_sdk/tests/fixtures/auth_key.txt +++ b/yoti_python_sdk/tests/fixtures/auth_key.txt @@ -1 +1 @@ -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuYoTrpI7lykIiuvExuysE5NshCF1aIH+QBv/sGzlL6Xz/rsmNHqwlRcHXlnunA9yrPTxz88TFXynk3oh+Ud2bVVVsXxN4qK/41VNQRg2Irs2/RIEqOVgqr9KljIVPlxo0yqzAoXg4M/0+QpNIY6cYxlqvohP6s3Fd3lkn1eA6+6VXRCJ6PdRM56fTqyihIuWfVYHi9emg8Moof3LPkuaIDNzwDHwe2C/3L9gXKX7hhsFzIJert7r9jbetaifVruyRB3lBCJhcjU2/YW8pmJ5EDUSUg4iBDxOdpXGElYg4rRGfydVYJ1GpC2HtwJrQzrWvzgTok+m2xAkoy6kucYkxQIDAQAB \ No newline at end of file +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs9zAY5K9O92zfmRhxBO0NX8Dg7UyyIaLE5GdbCMimlccew2p8LN6P8EDUoU7hiCbW1EQ/cp4iZVIp7UPA3AO/ecuejs2DjkFQOeMGnSlwD0pk74ZI3ammQtYm2ml47IWGrciMh4dPIPh0SOF+tVD0kHhAB9cMaj96Ij2De60Y7SeqvIXUHCtnoHId7Zk5I71mtewAnb9Gpx+wPnr2gpX/uUqkh+3ZHsF2eNCpw/ICvKj4UkNXopUyBemDp3n/s7u8TFyewp7ipPbFxDmxZKJT9SjZNFFe/jc2V/R2uC9qSFRKpTsxqmXggjiBlH46cpyg2SeYFj1p5bkpKZ10b3iOwIDAQAB \ No newline at end of file diff --git a/yoti_python_sdk/tests/fixtures/encrypted_yoti_token.txt b/yoti_python_sdk/tests/fixtures/encrypted_yoti_token.txt index 984563b6..49f59a62 100644 --- a/yoti_python_sdk/tests/fixtures/encrypted_yoti_token.txt +++ b/yoti_python_sdk/tests/fixtures/encrypted_yoti_token.txt @@ -1 +1 @@ -brwZ8V9owp7EGeMIsFZqRb95P6QJt7tZXAYxjCnRnXg8xbTfmeVSYrabpZXxiVgYWBOLUYQn_zguQzGGf3eu4dQwKCfg7aA9ior4hQapRa8rnBWfPvSHIsAB994laNE9Zc1tzdtUCmpO_GcQLK8iwavUrnoSMLzQOpsgq4D-rlmwSWb01oDrpKDWG1U_H7njgjMs7gwJwF9lxj-nEX5EKQanhBvA-RunGpZ2yyPrr4kNiqqx0xZ87JS2vToHHIJyBQUFNIXKnj6Gk8mRCQdWf-S1YtC4fSXImH8-s4AbRVnFR1oVf_ON4FibfPHWCH8mSnwD74T6bdMwkoWc2xzT3g== \ No newline at end of file +c31Db4y6ClxSWy26xDpa9LEX3ZTUuR-rKaAhjQWnmKilR20IshkysR5Y3Hh3R6hanOyxcu7fl5vbjikkGZZb3_iH6NjxmBXuGY_Fr23AhrHvGL9WMg4EtemVvr6VI2f_5H_PDhDpYUvv-YpEM0f_SReoVxGIc8VGfj1gukuhPyNJ9hs55-SDdUjN77JiA6FPcYZxEIaqQE_yT_c3Y4V72Jnq3RHbG0vL6SefSfY_fFsnx_HeddsJc10qJYCwAkdGzVzbJH2DQ2Swp821Gwyj9eNK54S6HvpIg7LclID7BtymG6z7cTNp3fXX7mgKYoQlh_DHmPmaiqyj398w424RBg== \ No newline at end of file diff --git a/yoti_python_sdk/tests/fixtures/response.txt b/yoti_python_sdk/tests/fixtures/response.txt index ff7b6339..78c47f7c 100644 --- a/yoti_python_sdk/tests/fixtures/response.txt +++ b/yoti_python_sdk/tests/fixtures/response.txt @@ -1 +1,17 @@ -{"session_data":"d1JtHdjH-30ce0266-010d-4455-8e37-7371a728298f","receipt":{"receipt_id":"Eq3+P8qjAlxr4d2mXKCUvzKdJTchI53ghwYPZXyA/cF5T+m/HCP1bK5LOmudZASN","other_party_profile_content":"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","profile_content":"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","other_party_extra_data_content":null,"extra_data_content":null,"wrapped_receipt_key":"XL1Qievi+aYR0EyR1WzQVLW9VUbz7W/L0Ch4hcuSfObt/iL5fsXi3+l8sw9jEkAoS/gQbc2c6GJeEjJhPI2IJWwa1QDYxgeyqmG2ZoLpQRuM9rSa2iqRnqlhviITGHp0Kd8Cp4fCcQ5XulangAGJdnlWXfv4WWxT4g+Cnbdn5VdUzWSPf7ccRDEPc6NbhqPomJnYgYopMbkE6Yzj7Rk4dSdGfKpYfJWJ/Z1MRKGALDClomxoneHDQajOuuxf+0subwKUwAant2rPlUkH3E74kk8gZTZ/5ma1nfQ7cQyioQxQ6U9RnoDki03ZXl6IMGjWhkp7gWfp6OllsYGQbrcQFA==","policy_uri":"xPV738iYZYxHCifV_BalIPX3cpgLhOWrkuaP4XeCyW5esiB6gmCQIYnOgS5oJ_aB","personal_key":"NYKrPM1DJ9caHup+SIgJdbZL1KdKMWJATL+FOQ+bhhg=","remember_me_id":"ijH4kkqMKTG0FSNUgQIvd2Z3Nx1j8f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrN","sharing_outcome":"SUCCESS","timestamp":"2016-11-14T11:35:33Z"}} \ No newline at end of file +{ + "session_data":"i79CctmY-22ad195c-d166-49a2-af16-8f356788c9dd", + "receipt":{ + "receipt_id":"9HNJDX5bEIN5TqBm0OGzVIc1LaAmbzfx6eIrwNdwpHvKeQmgPujyogC+r7hJCVPl", + "other_party_profile_content":"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", + "profile_content":"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", + "other_party_extra_data_content":null, + "extra_data_content":null, + "wrapped_receipt_key":"UqAI7cCcSFZ3NHWqEoXW3YfCXMxmvUBeN+JC2mQ/EVFvCjJ1DUVSzDP87bKtbZqKLqkj8oD0rQvMkS7VcYrUZ8aW6cTh+anX11LJLrP3ZYjr5QRQc5RHkOa+c3cFJV8ZwXzwJPkZny3BlHpEuAUhjcxywAcOPX4PULzO4zPrrkWq0cOtASVRqT+6CpR03RItL3yEY0CFa3RoYgrfkMsE8f8glft0GVVleVs85bAhiPmkfNQY0YZ/Ba12Ofph/S+4qB8ydfk96gpp+amb/Wfbd4gvs2DUCVpHu7U+937JEcEi6NJ08A5ufuWXoBxVKwVN1Tz7PNYDeSLhko77AIrJhg==", + "policy_uri":"lNVPUiMEAf9oUBc56Tn_mZcbp4eOyXOd6mPTO_uYe8kKtZEgQFRekJrparpy8WHR", + "personal_key":"t7es00YGJZgU2Wxoo3OqcJAdI8BSgKA134G1NGBK5xY=", + "remember_me_id":"Hig2yAT79cWvseSuXcIuCLa5lNkAPy70rxetUaeHlTJGmiwc/g1MWdYWYrexWvPU", + "parent_remember_me_id":"f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrNijH4k4qafTG0FSNUgQIvd2Z3Nx1j8", + "sharing_outcome":"SUCCESS", + "timestamp":"2016-07-19T08:55:38Z" + } +} diff --git a/yoti_python_sdk/tests/fixtures/response_share_url.txt b/yoti_python_sdk/tests/fixtures/response_share_url.txt new file mode 100644 index 00000000..404df09d --- /dev/null +++ b/yoti_python_sdk/tests/fixtures/response_share_url.txt @@ -0,0 +1,4 @@ +{ + "qrcode": "https://code.yoti.com/forfhq3peurij4ihroiehg4jgiej", + "ref_id" : "01aa2dea-d28b-11e6-bf26-cec0c932ce01" +} diff --git a/yoti_python_sdk/tests/fixtures/sdk-test.pem b/yoti_python_sdk/tests/fixtures/sdk-test.pem index 378b3063..1781e19c 100644 --- a/yoti_python_sdk/tests/fixtures/sdk-test.pem +++ b/yoti_python_sdk/tests/fixtures/sdk-test.pem @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff --git a/yoti_python_sdk/tests/fixtures/unknown_anchor.txt b/yoti_python_sdk/tests/fixtures/unknown_anchor.txt new file mode 100644 index 00000000..d06eb77d --- /dev/null +++ b/yoti_python_sdk/tests/fixtures/unknown_anchor.txt @@ -0,0 +1,39 @@ +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 +WWoW7TZ8Y5CjoA \ No newline at end of file diff --git a/yoti_python_sdk/tests/mocks.py b/yoti_python_sdk/tests/mocks.py index 2429c91c..8d916fb3 100644 --- a/yoti_python_sdk/tests/mocks.py +++ b/yoti_python_sdk/tests/mocks.py @@ -8,13 +8,13 @@ def __init__(self, status_code, text): def mocked_requests_get(*args, **kwargs): - with open('yoti_python_sdk/tests/fixtures/response.txt', 'r') as f: + with open("yoti_python_sdk/tests/fixtures/response.txt", "r") as f: response = f.read() return MockResponse(status_code=200, text=response) def mocked_requests_post_aml_profile(*args, **kwargs): - with open('yoti_python_sdk/tests/fixtures/aml_response.txt', 'r') as f: + with open("yoti_python_sdk/tests/fixtures/aml_response.txt", "r") as f: response = f.read() return MockResponse(status_code=200, text=response) @@ -24,19 +24,19 @@ def mocked_requests_post_aml_profile_not_found(*args, **kwargs): def mocked_requests_get_null_profile(*args, **kwargs): - with open('yoti_python_sdk/tests/fixtures/response_null_profile.txt', 'r') as f: + with open("yoti_python_sdk/tests/fixtures/response_null_profile.txt", "r") as f: response = f.read() return MockResponse(status_code=200, text=response) def mocked_requests_get_empty_profile(*args, **kwargs): - with open('yoti_python_sdk/tests/fixtures/response_empty_profile.txt', 'r') as f: + with open("yoti_python_sdk/tests/fixtures/response_empty_profile.txt", "r") as f: response = f.read() return MockResponse(status_code=200, text=response) def mocked_requests_get_missing_profile(*args, **kwargs): - with open('yoti_python_sdk/tests/fixtures/response_missing_profile.txt', 'r') as f: + with open("yoti_python_sdk/tests/fixtures/response_missing_profile.txt", "r") as f: response = f.read() return MockResponse(status_code=200, text=response) @@ -46,4 +46,18 @@ def mocked_timestamp(): def mocked_uuid4(): - return UUID('35351ced-96a4-4fc8-994e-98f98045ff7e') + return UUID("35351ced-96a4-4fc8-994e-98f98045ff7e") + + +def mocked_requests_post_share_url(*args, **kwargs): + with open("yoti_python_sdk/tests/fixtures/response_share_url.txt", "r") as f: + response = f.read() + return MockResponse(status_code=200, text=response) + + +def mocked_requests_post_share_url_invalid_json(*args, **kwargs): + return MockResponse(status_code=400, text="Invalid json") + + +def mocked_requests_post_share_url_app_not_found(*args, **kwargs): + return MockResponse(status_code=404, text="Application not found") diff --git a/yoti_python_sdk/tests/protobuf_attribute.py b/yoti_python_sdk/tests/protobuf_attribute.py index 1fa5f758..59fd8d5a 100644 --- a/yoti_python_sdk/tests/protobuf_attribute.py +++ b/yoti_python_sdk/tests/protobuf_attribute.py @@ -1,15 +1,15 @@ -# -*- coding: utf-8 -*- -from yoti_python_sdk.protobuf.protobuf import Protobuf - - -class ProtobufAttribute(object): - name = "" - value = "" - anchors = "" - content_type = Protobuf.CT_UNDEFINED - - def __init__(self, name, value, anchors, content_type): - self.name = name - self.value = value - self.anchors = anchors - self.content_type = content_type +# -*- coding: utf-8 -*- +from yoti_python_sdk.protobuf.protobuf import Protobuf + + +class ProtobufAttribute(object): + name = "" + value = "" + anchors = "" + content_type = Protobuf.CT_UNDEFINED + + def __init__(self, name, value, anchors, content_type): + self.name = name + self.value = value + self.anchors = anchors + self.content_type = content_type diff --git a/yoti_python_sdk/tests/test_activity_details.py b/yoti_python_sdk/tests/test_activity_details.py index 2ad4eb4b..1337255f 100644 --- a/yoti_python_sdk/tests/test_activity_details.py +++ b/yoti_python_sdk/tests/test_activity_details.py @@ -8,8 +8,14 @@ from yoti_python_sdk import config from yoti_python_sdk.activity_details import ActivityDetails from yoti_python_sdk.protobuf.protobuf import Protobuf -from yoti_python_sdk.tests.conftest import successful_receipt, failure_receipt, \ - no_values_receipt, user_id, parent_remember_me_id, empty_strings +from yoti_python_sdk.tests.conftest import ( + successful_receipt, + failure_receipt, + no_values_receipt, + user_id, + parent_remember_me_id, + empty_strings, +) ADDRESS_FORMAT_KEY = "address_format" ADDRESS_FORMAT_VALUE = 1 @@ -63,7 +69,7 @@ USA_COUNTRY_VALUE = "USA" FORMATTED_ADDRESS_VALUE = "15a North Street\nCARSHALTON\nSM5 2HW\nUK" -INDIA_FORMATTED_ADDRESS_VALUE = 'S/O: Name\nHouse No.1111-A\n42nd Street\nTOWN/CITY NAME\nSub-DISTRICT 10\nDISTRICT 10\nPunjab\n141012\nRajgura Nagar\nIndia' +INDIA_FORMATTED_ADDRESS_VALUE = "S/O: Name\nHouse No.1111-A\n42nd Street\nTOWN/CITY NAME\nSub-DISTRICT 10\nDISTRICT 10\nPunjab\n141012\nRajgura Nagar\nIndia" USA_FORMATTED_ADDRESS_VALUE = "15a North Street\nTOWN/CITY NAME\nAL\n36201\nUSA" @@ -74,9 +80,13 @@ def create_selfie_field(activity_details): activity_details.field.content_type = Protobuf.CT_STRING -def create_age_verified_field(activity_details, over, encoded_string_verified_value, age): +def create_age_verified_field( + activity_details, over, encoded_string_verified_value, age +): activity_details.field = lambda: None - activity_details.field.name = "age_over:{0}".format(age) if over is True else "age_under:".format(age) + activity_details.field.name = ( + "age_over:{0}".format(age) if over is True else "age_under:".format(age) + ) activity_details.field.value = encoded_string_verified_value activity_details.field.content_type = Protobuf.CT_STRING @@ -93,13 +103,16 @@ def test_try_parse_age_verified_both_missing_not_parsed(): field = None ActivityDetails.try_parse_age_verified_field(activity_details, field) - assert not isinstance(activity_details.user_profile.get(config.KEY_AGE_VERIFIED), bool) + assert not isinstance( + activity_details.user_profile.get(config.KEY_AGE_VERIFIED), bool + ) def test_failure_receipt_handled(): activity_details = ActivityDetails(failure_receipt()) assert activity_details.user_id == user_id() + assert activity_details.remember_me_id == user_id() assert activity_details.outcome == "FAILURE" assert activity_details.timestamp == datetime(2016, 11, 14, 11, 35, 33) @@ -113,7 +126,8 @@ def test_missing_values_handled(): def test_remember_me_id_empty(): activity_details = ActivityDetails(empty_strings()) - assert activity_details.user_id == '' + assert activity_details.user_id == "" + assert activity_details.remember_me_id == "" assert isinstance(activity_details, ActivityDetails) @@ -121,12 +135,14 @@ def test_remember_me_id_valid(): activity_details = ActivityDetails(successful_receipt()) assert activity_details.user_id == user_id() + assert activity_details.remember_me_id == user_id() def test_parent_remember_me_id_empty(): activity_details = ActivityDetails(empty_strings()) - assert activity_details.user_id == '' + assert activity_details.user_id == "" + assert activity_details.remember_me_id == "" assert isinstance(activity_details, ActivityDetails) @@ -140,7 +156,9 @@ def test_try_parse_age_verified_field_age_over(): activity_details = ActivityDetails(successful_receipt()) create_age_verified_field(activity_details, True, "true".encode(), 18) - ActivityDetails.try_parse_age_verified_field(activity_details, activity_details.field) + ActivityDetails.try_parse_age_verified_field( + activity_details, activity_details.field + ) assert activity_details.user_profile[config.KEY_AGE_VERIFIED] is True @@ -148,167 +166,289 @@ def test_try_parse_age_verified_field_age_under(): activity_details = ActivityDetails(successful_receipt()) create_age_verified_field(activity_details, False, "false".encode(), 55) - ActivityDetails.try_parse_age_verified_field(activity_details, activity_details.field) + ActivityDetails.try_parse_age_verified_field( + activity_details, activity_details.field + ) assert activity_details.user_profile[config.KEY_AGE_VERIFIED] is False def test_try_parse_age_verified_field_non_bool_value_not_parsed(): activity_details = ActivityDetails(successful_receipt()) create_age_verified_field(activity_details, True, "18".encode(), 18) - sys.stdout = open(os.devnull, 'w') # disable print - ActivityDetails.try_parse_age_verified_field(activity_details, activity_details.field) + sys.stdout = open(os.devnull, "w") # disable print + ActivityDetails.try_parse_age_verified_field( + activity_details, activity_details.field + ) sys.stdout = sys.__stdout__ # enable print - assert not isinstance(activity_details.user_profile.get(config.KEY_AGE_VERIFIED), bool) + assert not isinstance( + activity_details.user_profile.get(config.KEY_AGE_VERIFIED), bool + ) def test_try_parse_structured_postal_address_uk(): activity_details = ActivityDetails(successful_receipt()) - structured_postal_address = {ADDRESS_FORMAT_KEY: ADDRESS_FORMAT_VALUE, - BUILDING_NUMBER_KEY: BUILDING_NUMBER_VALUE, - ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, - TOWN_CITY_KEY: TOWN_CITY_VALUE, - POSTAL_CODE_KEY: POSTAL_CODE_VALUE, - COUNTRY_ISO_KEY: COUNTRY_ISO_VALUE, - COUNTRY_KEY: COUNTRY_VALUE, - config.KEY_FORMATTED_ADDRESS: FORMATTED_ADDRESS_VALUE} + structured_postal_address = { + ADDRESS_FORMAT_KEY: ADDRESS_FORMAT_VALUE, + BUILDING_NUMBER_KEY: BUILDING_NUMBER_VALUE, + ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, + TOWN_CITY_KEY: TOWN_CITY_VALUE, + POSTAL_CODE_KEY: POSTAL_CODE_VALUE, + COUNTRY_ISO_KEY: COUNTRY_ISO_VALUE, + COUNTRY_KEY: COUNTRY_VALUE, + config.KEY_FORMATTED_ADDRESS: FORMATTED_ADDRESS_VALUE, + } structured_postal_address_json = json.dumps(structured_postal_address) - create_structured_postal_address_field(activity_details, structured_postal_address_json) + create_structured_postal_address_field( + activity_details, structured_postal_address_json + ) - activity_details.user_profile[config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] = \ - ActivityDetails.try_convert_structured_postal_address_to_dict(activity_details.field) + activity_details.user_profile[ + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ] = ActivityDetails.try_convert_structured_postal_address_to_dict( + activity_details.field + ) actual_structured_postal_address_user_profile = activity_details.user_profile[ - config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] - - assert type(actual_structured_postal_address_user_profile) is collections.OrderedDict - assert actual_structured_postal_address_user_profile[ADDRESS_FORMAT_KEY] == ADDRESS_FORMAT_VALUE - assert actual_structured_postal_address_user_profile[BUILDING_NUMBER_KEY] == BUILDING_NUMBER_VALUE - assert actual_structured_postal_address_user_profile[ADDRESS_LINE_1_KEY] == ADDRESS_LINE_1_VALUE - assert actual_structured_postal_address_user_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE - assert actual_structured_postal_address_user_profile[POSTAL_CODE_KEY] == POSTAL_CODE_VALUE - assert actual_structured_postal_address_user_profile[COUNTRY_ISO_KEY] == COUNTRY_ISO_VALUE + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ] + + assert ( + type(actual_structured_postal_address_user_profile) is collections.OrderedDict + ) + assert ( + actual_structured_postal_address_user_profile[ADDRESS_FORMAT_KEY] + == ADDRESS_FORMAT_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[BUILDING_NUMBER_KEY] + == BUILDING_NUMBER_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[ADDRESS_LINE_1_KEY] + == ADDRESS_LINE_1_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[POSTAL_CODE_KEY] + == POSTAL_CODE_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[COUNTRY_ISO_KEY] + == COUNTRY_ISO_VALUE + ) assert actual_structured_postal_address_user_profile[COUNTRY_KEY] == COUNTRY_VALUE - assert actual_structured_postal_address_user_profile[config.KEY_FORMATTED_ADDRESS] == FORMATTED_ADDRESS_VALUE + assert ( + actual_structured_postal_address_user_profile[config.KEY_FORMATTED_ADDRESS] + == FORMATTED_ADDRESS_VALUE + ) def test_try_parse_structured_postal_address_india(): activity_details = ActivityDetails(successful_receipt()) - structured_postal_address = {ADDRESS_FORMAT_KEY: INDIA_FORMAT_VALUE, - CARE_OF_KEY: CARE_OF_VALUE, - BUILDING_KEY: BUILDING_VALUE, - STREET_KEY: STREET_VALUE, - TOWN_CITY_KEY: TOWN_CITY_VALUE, - SUBDISTRICT_KEY: SUBDISTRICT_VALUE, - DISTRICT_KEY: DISTRICT_VALUE, - STATE_KEY: INDIA_STATE_VALUE, - POSTAL_CODE_KEY: INDIA_POSTAL_CODE_VALUE, - POST_OFFICE_KEY: INDIA_POST_OFFICE_VALUE, - COUNTRY_ISO_KEY: INDIA_COUNTRY_ISO_VALUE, - COUNTRY_KEY: INDIA_COUNTRY_VALUE, - config.KEY_FORMATTED_ADDRESS: INDIA_FORMATTED_ADDRESS_VALUE} + structured_postal_address = { + ADDRESS_FORMAT_KEY: INDIA_FORMAT_VALUE, + CARE_OF_KEY: CARE_OF_VALUE, + BUILDING_KEY: BUILDING_VALUE, + STREET_KEY: STREET_VALUE, + TOWN_CITY_KEY: TOWN_CITY_VALUE, + SUBDISTRICT_KEY: SUBDISTRICT_VALUE, + DISTRICT_KEY: DISTRICT_VALUE, + STATE_KEY: INDIA_STATE_VALUE, + POSTAL_CODE_KEY: INDIA_POSTAL_CODE_VALUE, + POST_OFFICE_KEY: INDIA_POST_OFFICE_VALUE, + COUNTRY_ISO_KEY: INDIA_COUNTRY_ISO_VALUE, + COUNTRY_KEY: INDIA_COUNTRY_VALUE, + config.KEY_FORMATTED_ADDRESS: INDIA_FORMATTED_ADDRESS_VALUE, + } structured_postal_address_json = json.dumps(structured_postal_address) - create_structured_postal_address_field(activity_details, structured_postal_address_json) + create_structured_postal_address_field( + activity_details, structured_postal_address_json + ) - activity_details.user_profile[config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] = \ - ActivityDetails.try_convert_structured_postal_address_to_dict(activity_details.field) + activity_details.user_profile[ + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ] = ActivityDetails.try_convert_structured_postal_address_to_dict( + activity_details.field + ) actual_structured_postal_address_user_profile = activity_details.user_profile[ - config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] - - assert type(actual_structured_postal_address_user_profile) is collections.OrderedDict - assert actual_structured_postal_address_user_profile[ADDRESS_FORMAT_KEY] == INDIA_FORMAT_VALUE + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ] + + assert ( + type(actual_structured_postal_address_user_profile) is collections.OrderedDict + ) + assert ( + actual_structured_postal_address_user_profile[ADDRESS_FORMAT_KEY] + == INDIA_FORMAT_VALUE + ) assert actual_structured_postal_address_user_profile[CARE_OF_KEY] == CARE_OF_VALUE assert actual_structured_postal_address_user_profile[BUILDING_KEY] == BUILDING_VALUE assert actual_structured_postal_address_user_profile[STREET_KEY] == STREET_VALUE - assert actual_structured_postal_address_user_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE - assert actual_structured_postal_address_user_profile[SUBDISTRICT_KEY] == SUBDISTRICT_VALUE + assert ( + actual_structured_postal_address_user_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[SUBDISTRICT_KEY] + == SUBDISTRICT_VALUE + ) assert actual_structured_postal_address_user_profile[DISTRICT_KEY] == DISTRICT_VALUE assert actual_structured_postal_address_user_profile[STATE_KEY] == INDIA_STATE_VALUE - assert actual_structured_postal_address_user_profile[POSTAL_CODE_KEY] == INDIA_POSTAL_CODE_VALUE - assert actual_structured_postal_address_user_profile[POST_OFFICE_KEY] == INDIA_POST_OFFICE_VALUE - assert actual_structured_postal_address_user_profile[COUNTRY_ISO_KEY] == INDIA_COUNTRY_ISO_VALUE - assert actual_structured_postal_address_user_profile[COUNTRY_KEY] == INDIA_COUNTRY_VALUE - assert actual_structured_postal_address_user_profile[config.KEY_FORMATTED_ADDRESS] == INDIA_FORMATTED_ADDRESS_VALUE + assert ( + actual_structured_postal_address_user_profile[POSTAL_CODE_KEY] + == INDIA_POSTAL_CODE_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[POST_OFFICE_KEY] + == INDIA_POST_OFFICE_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[COUNTRY_ISO_KEY] + == INDIA_COUNTRY_ISO_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[COUNTRY_KEY] + == INDIA_COUNTRY_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[config.KEY_FORMATTED_ADDRESS] + == INDIA_FORMATTED_ADDRESS_VALUE + ) def test_try_parse_structured_postal_address_usa(): activity_details = ActivityDetails(successful_receipt()) - structured_postal_address = {ADDRESS_FORMAT_KEY: USA_FORMAT_VALUE, - ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, - TOWN_CITY_KEY: TOWN_CITY_VALUE, - STATE_KEY: USA_STATE_VALUE, - POSTAL_CODE_KEY: USA_POSTAL_CODE_VALUE, - COUNTRY_ISO_KEY: USA_COUNTRY_ISO_VALUE, - COUNTRY_KEY: USA_COUNTRY_VALUE, - config.KEY_FORMATTED_ADDRESS: USA_FORMATTED_ADDRESS_VALUE} + structured_postal_address = { + ADDRESS_FORMAT_KEY: USA_FORMAT_VALUE, + ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, + TOWN_CITY_KEY: TOWN_CITY_VALUE, + STATE_KEY: USA_STATE_VALUE, + POSTAL_CODE_KEY: USA_POSTAL_CODE_VALUE, + COUNTRY_ISO_KEY: USA_COUNTRY_ISO_VALUE, + COUNTRY_KEY: USA_COUNTRY_VALUE, + config.KEY_FORMATTED_ADDRESS: USA_FORMATTED_ADDRESS_VALUE, + } structured_postal_address_json = json.dumps(structured_postal_address) - create_structured_postal_address_field(activity_details, structured_postal_address_json) + create_structured_postal_address_field( + activity_details, structured_postal_address_json + ) - activity_details.user_profile[config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] = \ - ActivityDetails.try_convert_structured_postal_address_to_dict(activity_details.field) + activity_details.user_profile[ + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ] = ActivityDetails.try_convert_structured_postal_address_to_dict( + activity_details.field + ) actual_structured_postal_address_user_profile = activity_details.user_profile[ - config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] - - assert type(actual_structured_postal_address_user_profile) is collections.OrderedDict - assert actual_structured_postal_address_user_profile[ADDRESS_FORMAT_KEY] == USA_FORMAT_VALUE - assert actual_structured_postal_address_user_profile[ADDRESS_LINE_1_KEY] == ADDRESS_LINE_1_VALUE - assert actual_structured_postal_address_user_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ] + + assert ( + type(actual_structured_postal_address_user_profile) is collections.OrderedDict + ) + assert ( + actual_structured_postal_address_user_profile[ADDRESS_FORMAT_KEY] + == USA_FORMAT_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[ADDRESS_LINE_1_KEY] + == ADDRESS_LINE_1_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE + ) assert actual_structured_postal_address_user_profile[STATE_KEY] == USA_STATE_VALUE - assert actual_structured_postal_address_user_profile[POSTAL_CODE_KEY] == USA_POSTAL_CODE_VALUE - assert actual_structured_postal_address_user_profile[COUNTRY_ISO_KEY] == USA_COUNTRY_ISO_VALUE - assert actual_structured_postal_address_user_profile[COUNTRY_KEY] == USA_COUNTRY_VALUE - assert actual_structured_postal_address_user_profile[config.KEY_FORMATTED_ADDRESS] == USA_FORMATTED_ADDRESS_VALUE + assert ( + actual_structured_postal_address_user_profile[POSTAL_CODE_KEY] + == USA_POSTAL_CODE_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[COUNTRY_ISO_KEY] + == USA_COUNTRY_ISO_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[COUNTRY_KEY] == USA_COUNTRY_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[config.KEY_FORMATTED_ADDRESS] + == USA_FORMATTED_ADDRESS_VALUE + ) def test_try_parse_structured_postal_address_nested_json(): formatted_address_json = { - "item1": [ - [1, 'a1'], - [2, 'a2'], - ], - "item2": [ - [3, 'b3'], - [4, 'b4'], - ], + "item1": [[1, "a1"], [2, "a2"]], + "item2": [[3, "b3"], [4, "b4"]], } activity_details = ActivityDetails(successful_receipt()) - structured_postal_address = {ADDRESS_FORMAT_KEY: ADDRESS_FORMAT_VALUE, - BUILDING_NUMBER_KEY: BUILDING_NUMBER_VALUE, - ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, - TOWN_CITY_KEY: TOWN_CITY_VALUE, - POSTAL_CODE_KEY: POSTAL_CODE_VALUE, - COUNTRY_ISO_KEY: COUNTRY_ISO_VALUE, - COUNTRY_KEY: COUNTRY_VALUE, - config.KEY_FORMATTED_ADDRESS: formatted_address_json} + structured_postal_address = { + ADDRESS_FORMAT_KEY: ADDRESS_FORMAT_VALUE, + BUILDING_NUMBER_KEY: BUILDING_NUMBER_VALUE, + ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, + TOWN_CITY_KEY: TOWN_CITY_VALUE, + POSTAL_CODE_KEY: POSTAL_CODE_VALUE, + COUNTRY_ISO_KEY: COUNTRY_ISO_VALUE, + COUNTRY_KEY: COUNTRY_VALUE, + config.KEY_FORMATTED_ADDRESS: formatted_address_json, + } structured_postal_address_json = json.dumps(structured_postal_address) - create_structured_postal_address_field(activity_details, structured_postal_address_json) + create_structured_postal_address_field( + activity_details, structured_postal_address_json + ) - activity_details.user_profile[config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] = \ - ActivityDetails.try_convert_structured_postal_address_to_dict(activity_details.field) + activity_details.user_profile[ + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ] = ActivityDetails.try_convert_structured_postal_address_to_dict( + activity_details.field + ) actual_structured_postal_address_user_profile = activity_details.user_profile[ - config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] - - assert type(actual_structured_postal_address_user_profile) is collections.OrderedDict - assert actual_structured_postal_address_user_profile[ADDRESS_FORMAT_KEY] == ADDRESS_FORMAT_VALUE - assert actual_structured_postal_address_user_profile[BUILDING_NUMBER_KEY] == BUILDING_NUMBER_VALUE - assert actual_structured_postal_address_user_profile[ADDRESS_LINE_1_KEY] == ADDRESS_LINE_1_VALUE - assert actual_structured_postal_address_user_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE - assert actual_structured_postal_address_user_profile[POSTAL_CODE_KEY] == POSTAL_CODE_VALUE - assert actual_structured_postal_address_user_profile[COUNTRY_ISO_KEY] == COUNTRY_ISO_VALUE + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ] + + assert ( + type(actual_structured_postal_address_user_profile) is collections.OrderedDict + ) + assert ( + actual_structured_postal_address_user_profile[ADDRESS_FORMAT_KEY] + == ADDRESS_FORMAT_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[BUILDING_NUMBER_KEY] + == BUILDING_NUMBER_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[ADDRESS_LINE_1_KEY] + == ADDRESS_LINE_1_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[POSTAL_CODE_KEY] + == POSTAL_CODE_VALUE + ) + assert ( + actual_structured_postal_address_user_profile[COUNTRY_ISO_KEY] + == COUNTRY_ISO_VALUE + ) assert actual_structured_postal_address_user_profile[COUNTRY_KEY] == COUNTRY_VALUE - assert actual_structured_postal_address_user_profile[config.KEY_FORMATTED_ADDRESS] == formatted_address_json + assert ( + actual_structured_postal_address_user_profile[config.KEY_FORMATTED_ADDRESS] + == formatted_address_json + ) def test_set_address_to_be_formatted_address(): @@ -317,13 +457,20 @@ def test_set_address_to_be_formatted_address(): structured_postal_address = {config.KEY_FORMATTED_ADDRESS: FORMATTED_ADDRESS_VALUE} structured_postal_address_json = json.dumps(structured_postal_address) - create_structured_postal_address_field(activity_details, structured_postal_address_json) + create_structured_postal_address_field( + activity_details, structured_postal_address_json + ) activity_details.user_profile[ - config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS] = ActivityDetails.try_convert_structured_postal_address_to_dict( - activity_details.field) + config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS + ] = ActivityDetails.try_convert_structured_postal_address_to_dict( + activity_details.field + ) assert config.ATTRIBUTE_POSTAL_ADDRESS not in activity_details.user_profile ActivityDetails.ensure_postal_address(activity_details) - assert activity_details.user_profile[config.ATTRIBUTE_POSTAL_ADDRESS] == FORMATTED_ADDRESS_VALUE + assert ( + activity_details.user_profile[config.ATTRIBUTE_POSTAL_ADDRESS] + == FORMATTED_ADDRESS_VALUE + ) diff --git a/yoti_python_sdk/tests/test_aml.py b/yoti_python_sdk/tests/test_aml.py index e2b3f2bd..77cf1947 100644 --- a/yoti_python_sdk/tests/test_aml.py +++ b/yoti_python_sdk/tests/test_aml.py @@ -5,7 +5,9 @@ from yoti_python_sdk import aml VALID_RESPONSE = '{"on_fraud_list":false,"on_pep_list":false,"on_watch_list":true}' -INVALID_FORMAT_RESPONSE = json.loads('{"on_fraud_list":false,"on_pep_list":false,"on_watch_list":true}') +INVALID_FORMAT_RESPONSE = json.loads( + '{"on_fraud_list":false,"on_pep_list":false,"on_watch_list":true}' +) MISSING_FRAUD_LIST_RESPONSE = '{"on_pep_list":false,"on_watch_list":true}' VALID_AML_ADDRESS = aml.AmlAddress(country="FRA", postcode="ABC123") @@ -17,7 +19,7 @@ def test_getting_aml_result_with_valid_response(): def test_getting_aml_result_with_invalid_format_response(): with pytest.raises(RuntimeError) as exc: aml.AmlResult(INVALID_FORMAT_RESPONSE) - expected_error = 'Could not parse AML result from response' + expected_error = "Could not parse AML result from response" assert expected_error in str(exc) @@ -28,7 +30,7 @@ def test_getting_aml_result_with_missing_value(): def test_getting_aml_result_with_empty_string_response(): with pytest.raises(ValueError): - aml.AmlResult('') + aml.AmlResult("") def test_getting_aml_result_with_none_value(): @@ -42,7 +44,5 @@ def test_setting_aml_address_with_valid_values(): def test_setting_aml_profile_with_valid_values(): aml.AmlProfile( - given_names="Joe", - family_name="Bloggs", - address=VALID_AML_ADDRESS, - ssn="123456") + given_names="Joe", family_name="Bloggs", address=VALID_AML_ADDRESS, ssn="123456" + ) diff --git a/yoti_python_sdk/tests/test_anchor.py b/yoti_python_sdk/tests/test_anchor.py index f88b14da..bfd5d465 100644 --- a/yoti_python_sdk/tests/test_anchor.py +++ b/yoti_python_sdk/tests/test_anchor.py @@ -1,83 +1,121 @@ -# -*- coding: utf-8 -*- -import logging -import time -from datetime import datetime - -from yoti_python_sdk.protobuf.attribute_public_api import Attribute_pb2 - -import yoti_python_sdk -from yoti_python_sdk import config -from yoti_python_sdk.anchor import Anchor -from yoti_python_sdk.tests import anchor_fixture_parser - - -def get_utc_offset(): - utc_offset = int(time.timezone / 60 / 60) - - if time.daylight: - utc_offset = utc_offset - time.daylight - - return utc_offset - - -def test_parse_anchors_driving_license(): - parsed_anchor = anchor_fixture_parser.get_parsed_driving_license_anchor() - - assert parsed_anchor.anchor_type == config.ANCHOR_SOURCE - assert parsed_anchor.sub_type == "" - assert parsed_anchor.value == "DRIVING_LICENCE" - assert parsed_anchor.origin_server_certs.serial_number == int("46131813624213904216516051554755262812") - assert parsed_anchor.signed_timestamp == datetime(2018, 4, 11, 12 - get_utc_offset(), 13, 3, 923537) - - -def test_parse_anchors_passport(): - parsed_anchor = anchor_fixture_parser.get_parsed_passport_anchor() - - assert parsed_anchor.anchor_type == config.ANCHOR_SOURCE - assert parsed_anchor.sub_type == "OCR" - assert parsed_anchor.value == "PASSPORT" - assert parsed_anchor.origin_server_certs.serial_number == int("277870515583559162487099305254898397834") - assert parsed_anchor.signed_timestamp == datetime(2018, 4, 12, 13 - get_utc_offset(), 14, 32, 835537) - - -def test_parse_yoti_admin(): - parsed_anchor = anchor_fixture_parser.get_parsed_yoti_admin_anchor() - - assert parsed_anchor.anchor_type == config.ANCHOR_VERIFIER - assert parsed_anchor.sub_type == "" - assert parsed_anchor.value == "YOTI_ADMIN" - assert parsed_anchor.origin_server_certs.serial_number == int("256616937783084706710155170893983549581") - assert parsed_anchor.signed_timestamp == datetime(2018, 4, 11, 12 - get_utc_offset(), 13, 4, 95238) - - -def test_anchor_returns_correct_default_values(): - default_anchor = yoti_python_sdk.anchor.Anchor() - - assert default_anchor.anchor_type == "Unknown" - assert default_anchor.signed_timestamp is None - assert default_anchor.sub_type == "" - assert default_anchor.value == "" - assert default_anchor.origin_server_certs is None - - -def test_error_parsing_anchor_certificate_carries_on_parsing(): - driving_license_anchor = \ - anchor_fixture_parser.get_anchor_from_base64_text(anchor_fixture_parser.ANCHOR_DRIVING_LICENSE)[0] - anchors = list() - anchors.append(Attribute_pb2.Anchor()) - anchors.append(driving_license_anchor) - - # 1st anchor will log a warning when being parsed - logger = logging.getLogger() - logger.propagate = False - parsed_anchors = Anchor.parse_anchors(anchors) - logger.propagate = True - - assert len(parsed_anchors) == 1 - - parsed_anchor = parsed_anchors[0] - assert parsed_anchor.anchor_type == config.ANCHOR_SOURCE - assert parsed_anchor.sub_type == "" - assert parsed_anchor.value == "DRIVING_LICENCE" - assert parsed_anchor.origin_server_certs.serial_number == int("46131813624213904216516051554755262812") - assert parsed_anchor.signed_timestamp == datetime(2018, 4, 11, 12 - get_utc_offset(), 13, 3, 923537) +# -*- coding: utf-8 -*- +import logging +import time +from datetime import datetime + +from yoti_python_sdk.protobuf.attribute_public_api import Attribute_pb2 + +import yoti_python_sdk +from yoti_python_sdk import config +from yoti_python_sdk.anchor import Anchor +from yoti_python_sdk.tests import anchor_fixture_parser + + +def get_utc_offset(): + utc_offset = int(time.timezone / 60 / 60) + + if time.daylight: + utc_offset = utc_offset - time.daylight + + return utc_offset + + +def test_parse_anchors_driving_license(): + parsed_anchor = anchor_fixture_parser.get_parsed_driving_license_anchor() + + assert parsed_anchor.anchor_type == config.ANCHOR_SOURCE + assert parsed_anchor.sub_type == "" + assert parsed_anchor.value == "DRIVING_LICENCE" + assert parsed_anchor.origin_server_certs.serial_number == int( + "46131813624213904216516051554755262812" + ) + assert parsed_anchor.signed_timestamp == datetime( + 2018, 4, 11, 12 - get_utc_offset(), 13, 3, 923537 + ) + + +def test_parse_anchors_passport(): + parsed_anchor = anchor_fixture_parser.get_parsed_passport_anchor() + + assert parsed_anchor.anchor_type == config.ANCHOR_SOURCE + assert parsed_anchor.sub_type == "OCR" + assert parsed_anchor.value == "PASSPORT" + assert parsed_anchor.origin_server_certs.serial_number == int( + "277870515583559162487099305254898397834" + ) + assert parsed_anchor.signed_timestamp == datetime( + 2018, 4, 12, 13 - get_utc_offset(), 14, 32, 835537 + ) + + +def test_parse_yoti_admin(): + parsed_anchor = anchor_fixture_parser.get_parsed_yoti_admin_anchor() + + assert parsed_anchor.anchor_type == config.ANCHOR_VERIFIER + assert parsed_anchor.sub_type == "" + assert parsed_anchor.value == "YOTI_ADMIN" + assert parsed_anchor.origin_server_certs.serial_number == int( + "256616937783084706710155170893983549581" + ) + assert parsed_anchor.signed_timestamp == datetime( + 2018, 4, 11, 12 - get_utc_offset(), 13, 4, 95238 + ) + + +def test_anchor_returns_correct_default_values(): + default_anchor = yoti_python_sdk.anchor.Anchor() + + assert default_anchor.anchor_type == "Unknown" + assert default_anchor.signed_timestamp is None + assert default_anchor.sub_type == "" + assert default_anchor.value == "" + assert default_anchor.origin_server_certs is None + + +def test_error_parsing_anchor_certificate_carries_on_parsing(): + driving_license_anchor = anchor_fixture_parser.get_anchor_from_base64_text( + anchor_fixture_parser.ANCHOR_DRIVING_LICENSE + )[0] + anchors = list() + anchors.append(Attribute_pb2.Anchor()) + anchors.append(driving_license_anchor) + + # 1st anchor will log a warning when being parsed + logger = logging.getLogger() + logger.propagate = False + parsed_anchors = Anchor.parse_anchors(anchors) + logger.propagate = True + + assert len(parsed_anchors) == 1 + + parsed_anchor = parsed_anchors[0] + assert parsed_anchor.anchor_type == config.ANCHOR_SOURCE + assert parsed_anchor.sub_type == "" + assert parsed_anchor.value == "DRIVING_LICENCE" + assert parsed_anchor.origin_server_certs.serial_number == int( + "46131813624213904216516051554755262812" + ) + assert parsed_anchor.signed_timestamp == datetime( + 2018, 4, 11, 12 - get_utc_offset(), 13, 3, 923537 + ) + + +def test_processing_unknown_anchor_data(): + unknown_anchor_data = anchor_fixture_parser.get_anchor_from_base64_text( + anchor_fixture_parser.ANCHOR_UNKNOWN_ANCHOR + ) + anchors = Anchor.parse_anchors(unknown_anchor_data) + + assert len(anchors) == 1 + assert ("", "Unknown", "TEST UNKNOWN SUB TYPE") in [ + (anchor.value, anchor.anchor_type, anchor.sub_type) for anchor in anchors + ] + + expected_timestamp = datetime(2019, 3, 5, 10, 45, 11, 840037) + actual_timestamp = anchors[0].signed_timestamp + + assert expected_timestamp == actual_timestamp + + assert "document-registration-server" in [ + a.value for a in anchors[0].origin_server_certs.issuer + ] diff --git a/yoti_python_sdk/tests/test_attribute.py b/yoti_python_sdk/tests/test_attribute.py index 200bf1ea..5672c4bf 100644 --- a/yoti_python_sdk/tests/test_attribute.py +++ b/yoti_python_sdk/tests/test_attribute.py @@ -1,42 +1,42 @@ -import yoti_python_sdk.attribute - -from yoti_python_sdk import config -from yoti_python_sdk.tests import anchor_fixture_parser - -NAME = "name" -VALUE = "value" - - -def test_attribute_get_values(): - parsed_anchors = [] - - attribute = yoti_python_sdk.attribute.Attribute(NAME, VALUE, parsed_anchors) - - assert attribute.name == NAME - assert attribute.value == VALUE - assert attribute.anchors == parsed_anchors - - -def test_attribute_get_sources(): - anchors = create_source_and_verifier_anchors() - attribute = yoti_python_sdk.attribute.Attribute(NAME, VALUE, anchors) - sources = attribute.sources - - assert len(sources) == 1 - assert sources[0].anchor_type == config.ANCHOR_SOURCE - - -def test_attribute_get_verifiers(): - anchors = create_source_and_verifier_anchors() - attribute = yoti_python_sdk.attribute.Attribute(NAME, VALUE, anchors) - verifiers = attribute.verifiers - - assert len(verifiers) == 1 - assert verifiers[0].anchor_type == config.ANCHOR_VERIFIER - - -def create_source_and_verifier_anchors(): - passport_anchor = anchor_fixture_parser.get_parsed_passport_anchor() # source - yoti_admin_anchor = anchor_fixture_parser.get_parsed_yoti_admin_anchor() # verifier - - return [passport_anchor, yoti_admin_anchor] +import yoti_python_sdk.attribute + +from yoti_python_sdk import config +from yoti_python_sdk.tests import anchor_fixture_parser + +NAME = "name" +VALUE = "value" + + +def test_attribute_get_values(): + parsed_anchors = [] + + attribute = yoti_python_sdk.attribute.Attribute(NAME, VALUE, parsed_anchors) + + assert attribute.name == NAME + assert attribute.value == VALUE + assert attribute.anchors == parsed_anchors + + +def test_attribute_get_sources(): + anchors = create_source_and_verifier_anchors() + attribute = yoti_python_sdk.attribute.Attribute(NAME, VALUE, anchors) + sources = attribute.sources + + assert len(sources) == 1 + assert sources[0].anchor_type == config.ANCHOR_SOURCE + + +def test_attribute_get_verifiers(): + anchors = create_source_and_verifier_anchors() + attribute = yoti_python_sdk.attribute.Attribute(NAME, VALUE, anchors) + verifiers = attribute.verifiers + + assert len(verifiers) == 1 + assert verifiers[0].anchor_type == config.ANCHOR_VERIFIER + + +def create_source_and_verifier_anchors(): + passport_anchor = anchor_fixture_parser.get_parsed_passport_anchor() # source + yoti_admin_anchor = anchor_fixture_parser.get_parsed_yoti_admin_anchor() # verifier + + return [passport_anchor, yoti_admin_anchor] diff --git a/yoti_python_sdk/tests/test_attribute_parser.py b/yoti_python_sdk/tests/test_attribute_parser.py index 33c362eb..071ac175 100644 --- a/yoti_python_sdk/tests/test_attribute_parser.py +++ b/yoti_python_sdk/tests/test_attribute_parser.py @@ -11,16 +11,19 @@ INT_VALUE = int(STRING_VALUE) -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def proto(): return protobuf.Protobuf() @pytest.mark.parametrize( "content_type, expected_value", - [(proto().CT_STRING, STRING_VALUE), - (proto().CT_DATE, STRING_VALUE), - (proto().CT_INT, INT_VALUE)]) + [ + (proto().CT_STRING, STRING_VALUE), + (proto().CT_DATE, STRING_VALUE), + (proto().CT_INT, INT_VALUE), + ], +) def test_attribute_parser_values_based_on_content_type(content_type, expected_value): result = attribute_parser.value_based_on_content_type(BYTE_VALUE, content_type) assert result == expected_value @@ -31,7 +34,9 @@ def test_attribute_parser_values_based_on_other_content_types(proto): logger = logging.getLogger() logger.propagate = False - result = attribute_parser.value_based_on_content_type(BYTE_VALUE, proto.CT_UNDEFINED) + result = attribute_parser.value_based_on_content_type( + BYTE_VALUE, proto.CT_UNDEFINED + ) assert result == STRING_VALUE result = attribute_parser.value_based_on_content_type(BYTE_VALUE) diff --git a/yoti_python_sdk/tests/test_client.py b/yoti_python_sdk/tests/test_client.py index e5f8e489..8fd91c5b 100644 --- a/yoti_python_sdk/tests/test_client.py +++ b/yoti_python_sdk/tests/test_client.py @@ -1,302 +1,381 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -import json -from datetime import datetime -from os import environ - -import pytest -from cryptography.fernet import base64 -from past.builtins import basestring - -from yoti_python_sdk import config - -try: - from unittest import mock -except ImportError: - import mock - -import yoti_python_sdk -from yoti_python_sdk import YOTI_API_ENDPOINT -from yoti_python_sdk import Client -from yoti_python_sdk import aml -from yoti_python_sdk.config import * -from yoti_python_sdk.client import NO_KEY_FILE_SPECIFIED_ERROR -from yoti_python_sdk.activity_details import ActivityDetails -from yoti_python_sdk.tests.conftest import YOTI_CLIENT_SDK_ID, PEM_FILE_PATH -from yoti_python_sdk.tests.mocks import ( - mocked_requests_get, - mocked_requests_get_null_profile, - mocked_requests_get_empty_profile, - mocked_requests_get_missing_profile, - mocked_requests_post_aml_profile, - mocked_requests_post_aml_profile_not_found, - mocked_timestamp, - mocked_uuid4 -) - -INVALID_KEY_FILE_PATH = '/invalid/path/to/file.txt' -INVALID_KEY_FILES = (INVALID_KEY_FILE_PATH, 'wrong_pa&*#@th', - -19, 1, False, True, {}, []) - - -@pytest.fixture(scope='module') -def expected_get_headers(x_yoti_auth_key, x_yoti_auth_digest_get): - sdk_version = yoti_python_sdk.__version__ - - return { - 'Content-Type': JSON_CONTENT_TYPE, - 'Accept': JSON_CONTENT_TYPE, - X_YOTI_AUTH_KEY: x_yoti_auth_key, - X_YOTI_AUTH_DIGEST: x_yoti_auth_digest_get, - X_YOTI_SDK: SDK_IDENTIFIER, - X_YOTI_SDK_VERSION: "Python-" + sdk_version - } - - -@pytest.fixture(scope='module') -def expected_post_headers(x_yoti_auth_key, x_yoti_auth_digest_post): - sdk_version = yoti_python_sdk.__version__ - - return { - X_YOTI_AUTH_KEY: x_yoti_auth_key, - X_YOTI_AUTH_DIGEST: x_yoti_auth_digest_post, - X_YOTI_SDK: SDK_IDENTIFIER, - X_YOTI_SDK_VERSION: "Python-" + sdk_version, - 'Content-Type': JSON_CONTENT_TYPE, - 'Accept': JSON_CONTENT_TYPE - } - - -@pytest.fixture(scope='module') -def expected_activity_details_url(decrypted_request_token): - nonce = mocked_uuid4() - timestamp = int(mocked_timestamp() * 1000) - return '{0}/profile/{1}?nonce={2}×tamp={3}&appId={4}'.format( - YOTI_API_ENDPOINT, - decrypted_request_token, - nonce, - timestamp, - YOTI_CLIENT_SDK_ID - ) - - -@pytest.fixture(scope='module') -def expected_aml_url(): - nonce = mocked_uuid4() - timestamp = int(mocked_timestamp() * 1000) - return '{0}/aml-check?appId={1}×tamp={2}&nonce={3}'.format( - YOTI_API_ENDPOINT, - YOTI_CLIENT_SDK_ID, - timestamp, - nonce) - - -def test_creating_client_instance_with_valid_key_file_env(): - environ['YOTI_KEY_FILE_PATH'] = PEM_FILE_PATH - Client(YOTI_CLIENT_SDK_ID) - - -def test_creating_client_instance_without_private_key_file(): - if environ.get('YOTI_KEY_FILE_PATH'): - del environ['YOTI_KEY_FILE_PATH'] - with pytest.raises(RuntimeError) as exc: - Client(YOTI_CLIENT_SDK_ID) - assert str(exc.value) == NO_KEY_FILE_SPECIFIED_ERROR - - -@pytest.mark.parametrize('key_file', INVALID_KEY_FILES) -def test_creating_client_instance_with_invalid_key_file_arg(key_file): - with pytest.raises(RuntimeError) as exc: - Client(YOTI_CLIENT_SDK_ID, key_file) - expected_error = 'Could not read private key file' - assert expected_error in str(exc) - assert str(key_file) in str(exc) - - -@pytest.mark.parametrize('key_file', INVALID_KEY_FILES) -def test_creating_client_instance_with_invalid_key_file_env(key_file): - environ['YOTI_KEY_FILE_PATH'] = str(key_file) - with pytest.raises(RuntimeError) as exc: - Client(YOTI_CLIENT_SDK_ID) - expected_error = 'Could not read private key file' - expected_error_source = 'specified by the YOTI_KEY_FILE_PATH env variable' - assert expected_error in str(exc) - assert expected_error_source in str(exc) - assert str(key_file) in str(exc) - - -def test_creating_client_instance_with_invalid_key_file_env_but_valid_key_file_arg(): - environ['YOTI_KEY_FILE_PATH'] = INVALID_KEY_FILE_PATH - Client(YOTI_CLIENT_SDK_ID, PEM_FILE_PATH) - - -def test_creating_client_instance_with_valid_key_file_env_but_invalid_key_file_arg(): - environ['YOTI_KEY_FILE_PATH'] = PEM_FILE_PATH - with pytest.raises(RuntimeError) as exc: - Client(YOTI_CLIENT_SDK_ID, INVALID_KEY_FILE_PATH) - expected_error = 'Could not read private key file' - assert expected_error in str(exc) - assert str(INVALID_KEY_FILE_PATH) in str(exc) - - -@mock.patch('requests.get', side_effect=mocked_requests_get) -@mock.patch('time.time', side_effect=mocked_timestamp) -@mock.patch('uuid.uuid4', side_effect=mocked_uuid4) -def test_requesting_activity_details_with_correct_data( - mock_uuid4, mock_time, mock_get, client, expected_activity_details_url, - expected_get_headers, encrypted_request_token): - activity_details = client.get_activity_details(encrypted_request_token) - - mock_get.assert_called_once_with(url=expected_activity_details_url, headers=expected_get_headers) - assert isinstance(activity_details, ActivityDetails) - - assert activity_details.user_id == "ijH4kkqMKTG0FSNUgQIvd2Z3Nx1j8f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrN" - assert activity_details.receipt_id == "Eq3+P8qjAlxr4d2mXKCUvzKdJTchI53ghwYPZXyA/cF5T+m/HCP1bK5LOmudZASN" - assert activity_details.timestamp == datetime(2016, 11, 14, 11, 35, 33) - - selfie_user_profile = activity_details.user_profile.get(config.ATTRIBUTE_SELFIE) - assert isinstance(selfie_user_profile, basestring) - - selfie_profile = activity_details.profile.selfie.value - assert isinstance(selfie_profile, basestring) - assert activity_details.profile.get_attribute(config.ATTRIBUTE_SELFIE) == activity_details.profile.selfie - - base64_selfie_uri = getattr(activity_details, config.KEY_BASE64_SELFIE) - assert isinstance(base64_selfie_uri, basestring) - assert base64_selfie_uri.startswith('data:image/jpeg;base64') - - -@mock.patch('requests.get', side_effect=mocked_requests_get_null_profile) -@mock.patch('time.time', side_effect=mocked_timestamp) -@mock.patch('uuid.uuid4', side_effect=mocked_uuid4) -def test_requesting_activity_details_with_null_profile( - mock_uuid4, mock_time, mock_get, client, expected_activity_details_url, - expected_get_headers, encrypted_request_token): - activity_details = client.get_activity_details(encrypted_request_token) - - mock_get.assert_called_once_with(url=expected_activity_details_url, headers=expected_get_headers) - assert activity_details.user_id == "ijH4kkqMKTG0FSNUgQIvd2Z3Nx1j8f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrN" - assert activity_details.receipt_id == "Eq3+P8qjAlxr4d2mXKCUvzKdJTchI53ghwYPZXyA/cF5T+m/HCP1bK5LOmudZASN" - assert activity_details.timestamp == datetime(2016, 11, 14, 11, 35, 33) - assert isinstance(activity_details, ActivityDetails) - - -@mock.patch('requests.get', side_effect=mocked_requests_get_empty_profile) -@mock.patch('time.time', side_effect=mocked_timestamp) -@mock.patch('uuid.uuid4', side_effect=mocked_uuid4) -def test_requesting_activity_details_with_empty_profile( - mock_uuid4, mock_time, mock_get, client, expected_activity_details_url, - expected_get_headers, encrypted_request_token): - activity_details = client.get_activity_details(encrypted_request_token) - - mock_get.assert_called_once_with(url=expected_activity_details_url, headers=expected_get_headers) - assert activity_details.user_id == "ijH4kkqMKTG0FSNUgQIvd2Z3Nx1j8f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrN" - assert activity_details.receipt_id == "Eq3+P8qjAlxr4d2mXKCUvzKdJTchI53ghwYPZXyA/cF5T+m/HCP1bK5LOmudZASN" - assert activity_details.timestamp == datetime(2016, 11, 14, 11, 35, 33) - assert isinstance(activity_details, ActivityDetails) - - -@mock.patch('requests.get', side_effect=mocked_requests_get_missing_profile) -@mock.patch('time.time', side_effect=mocked_timestamp) -@mock.patch('uuid.uuid4', side_effect=mocked_uuid4) -def test_requesting_activity_details_with_missing_profile( - mock_uuid4, mock_time, mock_get, client, expected_activity_details_url, - expected_get_headers, encrypted_request_token): - activity_details = client.get_activity_details(encrypted_request_token) - - mock_get.assert_called_once_with(url=expected_activity_details_url, headers=expected_get_headers) - assert activity_details.user_id == "ijH4kkqMKTG0FSNUgQIvd2Z3Nx1j8f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrN" - assert activity_details.receipt_id == "Eq3+P8qjAlxr4d2mXKCUvzKdJTchI53ghwYPZXyA/cF5T+m/HCP1bK5LOmudZASN" - assert activity_details.timestamp == datetime(2016, 11, 14, 11, 35, 33) - assert isinstance(activity_details, ActivityDetails) - - -@mock.patch('requests.get', side_effect=mocked_requests_get) -@mock.patch('time.time', side_effect=mocked_timestamp) -@mock.patch('uuid.uuid4', side_effect=mocked_uuid4) -def test_creating_request_with_unsupported_http_method( - mock_uuid4, mock_time, mock_get, client, expected_get_headers): - with pytest.raises(ValueError): - client._Client__create_request(http_method="UNSUPPORTED_METHOD", path=YOTI_API_ENDPOINT, content=None) - - -@mock.patch('requests.get', side_effect=mocked_requests_get) -@mock.patch('uuid.uuid4', side_effect=mocked_uuid4) -@mock.patch('time.time', side_effect=mocked_timestamp) -def test_creating_request_with_supported_http_method( - mock_uuid4, mock_time, mock_get, client, expected_get_headers): - client._Client__create_request(http_method="GET", path=YOTI_API_ENDPOINT, content=None) - - -@mock.patch('requests.get', side_effect=mocked_requests_get) -@mock.patch('uuid.uuid4', side_effect=mocked_uuid4) -@mock.patch('time.time', side_effect=mocked_timestamp) -def test_creating_request_content_is_added( - mock_uuid4, mock_time, mock_get, client, expected_get_headers): - content = '{"Content"}' - content_bytes = content.encode() - request = client._Client__create_request(http_method="GET", path=YOTI_API_ENDPOINT, content=content_bytes) - - b64encoded = base64.b64encode(content_bytes) - b64ascii = b64encoded.decode('ascii') - - assert request.endswith("&" + b64ascii) - - -@mock.patch('requests.post', side_effect=mocked_requests_post_aml_profile) -@mock.patch('time.time', side_effect=mocked_timestamp) -@mock.patch('uuid.uuid4', side_effect=mocked_uuid4) -def test_perform_aml_check_details_with_correct_data( - mock_uuid4, mock_time, mock_post, client, expected_aml_url, expected_post_headers): - given_names = "Given Name" - family_name = "Family Name" - - aml_address = aml.AmlAddress(country="GBR") - aml_profile = aml.AmlProfile( - given_names, - family_name, - aml_address - ) - - aml_result = client.perform_aml_check(aml_profile) - - aml_profile_json = json.dumps(aml_profile.__dict__, sort_keys=True) - aml_profile_bytes = aml_profile_json.encode() - - mock_post.assert_called_once_with(url=expected_aml_url, headers=expected_post_headers, data=aml_profile_bytes) - - assert isinstance(aml_result, aml.AmlResult) - assert isinstance(aml_result.on_watch_list, bool) - assert isinstance(aml_result.on_fraud_list, bool) - assert isinstance(aml_result.on_pep_list, bool) - - -def test_perform_aml_check_with_null_profile(client): - aml_profile = None - - with pytest.raises(TypeError) as exc: - client.perform_aml_check(aml_profile) - expected_error = 'aml_profile not set' - assert expected_error in str(exc) - - -@mock.patch('requests.post', side_effect=mocked_requests_post_aml_profile_not_found) -@mock.patch('time.time', side_effect=mocked_timestamp) -@mock.patch('uuid.uuid4', side_effect=mocked_uuid4) -def test_perform_aml_check_with_unsuccessful_call( - mock_uuid4, mock_time, mock_post, client): - given_names = "Given Name" - family_name = "Family Name" - - aml_address = aml.AmlAddress(country="GBR") - aml_profile = aml.AmlProfile( - given_names, - family_name, - aml_address - ) - - with pytest.raises(RuntimeError) as exc: - client.perform_aml_check(aml_profile) - expected_error = 'Unsuccessful Yoti API call:' - assert expected_error in str(exc) +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import json +from datetime import datetime +from os import environ + +import pytest +from cryptography.fernet import base64 +from past.builtins import basestring + +from yoti_python_sdk import config + +try: + from unittest import mock +except ImportError: + import mock + +import yoti_python_sdk +from yoti_python_sdk import YOTI_API_ENDPOINT +from yoti_python_sdk import Client +from yoti_python_sdk import aml +from yoti_python_sdk.config import ( + JSON_CONTENT_TYPE, + X_YOTI_AUTH_KEY, + X_YOTI_AUTH_DIGEST, + X_YOTI_SDK, + SDK_IDENTIFIER, + X_YOTI_SDK_VERSION, +) +from yoti_python_sdk.client import NO_KEY_FILE_SPECIFIED_ERROR +from yoti_python_sdk.activity_details import ActivityDetails +from yoti_python_sdk.tests.conftest import YOTI_CLIENT_SDK_ID, PEM_FILE_PATH +from yoti_python_sdk.tests.mocks import ( + mocked_requests_get, + mocked_requests_get_null_profile, + mocked_requests_get_empty_profile, + mocked_requests_get_missing_profile, + mocked_requests_post_aml_profile, + mocked_requests_post_aml_profile_not_found, + mocked_timestamp, + mocked_uuid4, +) + +INVALID_KEY_FILE_PATH = "/invalid/path/to/file.txt" +INVALID_KEY_FILES = ( + INVALID_KEY_FILE_PATH, + "wrong_pa&*#@th", + -19, + 1, + False, + True, + {}, + [], +) + + +@pytest.fixture(scope="module") +def expected_get_headers(x_yoti_auth_key, x_yoti_auth_digest_get): + sdk_version = yoti_python_sdk.__version__ + + return { + "Content-Type": JSON_CONTENT_TYPE, + "Accept": JSON_CONTENT_TYPE, + X_YOTI_AUTH_KEY: x_yoti_auth_key, + X_YOTI_AUTH_DIGEST: x_yoti_auth_digest_get, + X_YOTI_SDK: SDK_IDENTIFIER, + X_YOTI_SDK_VERSION: "Python-" + sdk_version, + } + + +@pytest.fixture(scope="module") +def expected_post_headers(x_yoti_auth_key, x_yoti_auth_digest_post): + sdk_version = yoti_python_sdk.__version__ + + return { + X_YOTI_AUTH_KEY: x_yoti_auth_key, + X_YOTI_AUTH_DIGEST: x_yoti_auth_digest_post, + X_YOTI_SDK: SDK_IDENTIFIER, + X_YOTI_SDK_VERSION: "Python-" + sdk_version, + "Content-Type": JSON_CONTENT_TYPE, + "Accept": JSON_CONTENT_TYPE, + } + + +@pytest.fixture(scope="module") +def expected_activity_details_url(decrypted_request_token): + nonce = mocked_uuid4() + timestamp = int(mocked_timestamp() * 1000) + return "{0}/profile/{1}?nonce={2}×tamp={3}&appId={4}".format( + YOTI_API_ENDPOINT, decrypted_request_token, nonce, timestamp, YOTI_CLIENT_SDK_ID + ) + + +@pytest.fixture(scope="module") +def expected_aml_url(): + nonce = mocked_uuid4() + timestamp = int(mocked_timestamp() * 1000) + return "{0}/aml-check?appId={1}×tamp={2}&nonce={3}".format( + YOTI_API_ENDPOINT, YOTI_CLIENT_SDK_ID, timestamp, nonce + ) + + +def test_creating_client_instance_with_valid_key_file_env(): + environ["YOTI_KEY_FILE_PATH"] = PEM_FILE_PATH + Client(YOTI_CLIENT_SDK_ID) + + +def test_creating_client_instance_without_private_key_file(): + if environ.get("YOTI_KEY_FILE_PATH"): + del environ["YOTI_KEY_FILE_PATH"] + with pytest.raises(RuntimeError) as exc: + Client(YOTI_CLIENT_SDK_ID) + assert str(exc.value) == NO_KEY_FILE_SPECIFIED_ERROR + + +@pytest.mark.parametrize("key_file", INVALID_KEY_FILES) +def test_creating_client_instance_with_invalid_key_file_arg(key_file): + with pytest.raises(RuntimeError) as exc: + Client(YOTI_CLIENT_SDK_ID, key_file) + expected_error = "Could not read private key file" + assert expected_error in str(exc) + assert str(key_file) in str(exc) + + +@pytest.mark.parametrize("key_file", INVALID_KEY_FILES) +def test_creating_client_instance_with_invalid_key_file_env(key_file): + environ["YOTI_KEY_FILE_PATH"] = str(key_file) + with pytest.raises(RuntimeError) as exc: + Client(YOTI_CLIENT_SDK_ID) + expected_error = "Could not read private key file" + expected_error_source = "specified by the YOTI_KEY_FILE_PATH env variable" + assert expected_error in str(exc) + assert expected_error_source in str(exc) + assert str(key_file) in str(exc) + + +def test_creating_client_instance_with_invalid_key_file_env_but_valid_key_file_arg(): + environ["YOTI_KEY_FILE_PATH"] = INVALID_KEY_FILE_PATH + Client(YOTI_CLIENT_SDK_ID, PEM_FILE_PATH) + + +def test_creating_client_instance_with_valid_key_file_env_but_invalid_key_file_arg(): + environ["YOTI_KEY_FILE_PATH"] = PEM_FILE_PATH + with pytest.raises(RuntimeError) as exc: + Client(YOTI_CLIENT_SDK_ID, INVALID_KEY_FILE_PATH) + expected_error = "Could not read private key file" + assert expected_error in str(exc) + assert str(INVALID_KEY_FILE_PATH) in str(exc) + + +@mock.patch("requests.get", side_effect=mocked_requests_get) +@mock.patch("time.time", side_effect=mocked_timestamp) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +def test_requesting_activity_details_with_correct_data( + mock_uuid4, + mock_time, + mock_get, + client, + expected_activity_details_url, + expected_get_headers, + encrypted_request_token, +): + activity_details = client.get_activity_details(encrypted_request_token) + + mock_get.assert_called_once_with( + url=expected_activity_details_url, headers=expected_get_headers, verify=yoti_python_sdk.YOTI_API_VERIFY_SSL + ) + assert isinstance(activity_details, ActivityDetails) + + assert ( + activity_details.user_id + == "Hig2yAT79cWvseSuXcIuCLa5lNkAPy70rxetUaeHlTJGmiwc/g1MWdYWYrexWvPU" + ) + assert ( + activity_details.receipt_id + == "9HNJDX5bEIN5TqBm0OGzVIc1LaAmbzfx6eIrwNdwpHvKeQmgPujyogC+r7hJCVPl" + ) + assert activity_details.timestamp == datetime(2016, 7, 19, 8, 55, 38) + + selfie_user_profile = activity_details.user_profile.get(config.ATTRIBUTE_SELFIE) + assert isinstance(selfie_user_profile, basestring) + + selfie_profile = activity_details.profile.selfie.value + assert isinstance(selfie_profile, basestring) + assert ( + activity_details.profile.get_attribute(config.ATTRIBUTE_SELFIE) + == activity_details.profile.selfie + ) + + base64_selfie_uri = getattr(activity_details, config.KEY_BASE64_SELFIE) + assert isinstance(base64_selfie_uri, basestring) + assert base64_selfie_uri.startswith("data:image/jpeg;base64") + + phone_number = activity_details.profile.phone_number + assert phone_number is not None + assert len(phone_number.anchors) == 1 + assert "Unknown" in [anchor.anchor_type for anchor in phone_number.anchors] + assert "" in [anchor.value for anchor in phone_number.anchors] + + +@mock.patch("requests.get", side_effect=mocked_requests_get_null_profile) +@mock.patch("time.time", side_effect=mocked_timestamp) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +def test_requesting_activity_details_with_null_profile( + mock_uuid4, + mock_time, + mock_get, + client, + expected_activity_details_url, + expected_get_headers, + encrypted_request_token, +): + activity_details = client.get_activity_details(encrypted_request_token) + + mock_get.assert_called_once_with( + url=expected_activity_details_url, headers=expected_get_headers, verify=yoti_python_sdk.YOTI_API_VERIFY_SSL + ) + assert ( + activity_details.user_id + == "ijH4kkqMKTG0FSNUgQIvd2Z3Nx1j8f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrN" + ) + assert ( + activity_details.receipt_id + == "Eq3+P8qjAlxr4d2mXKCUvzKdJTchI53ghwYPZXyA/cF5T+m/HCP1bK5LOmudZASN" + ) + assert activity_details.timestamp == datetime(2016, 11, 14, 11, 35, 33) + assert isinstance(activity_details, ActivityDetails) + + +@mock.patch("requests.get", side_effect=mocked_requests_get_empty_profile) +@mock.patch("time.time", side_effect=mocked_timestamp) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +def test_requesting_activity_details_with_empty_profile( + mock_uuid4, + mock_time, + mock_get, + client, + expected_activity_details_url, + expected_get_headers, + encrypted_request_token, +): + activity_details = client.get_activity_details(encrypted_request_token) + + mock_get.assert_called_once_with( + url=expected_activity_details_url, headers=expected_get_headers, verify=yoti_python_sdk.YOTI_API_VERIFY_SSL + ) + assert ( + activity_details.user_id + == "ijH4kkqMKTG0FSNUgQIvd2Z3Nx1j8f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrN" + ) + assert ( + activity_details.receipt_id + == "Eq3+P8qjAlxr4d2mXKCUvzKdJTchI53ghwYPZXyA/cF5T+m/HCP1bK5LOmudZASN" + ) + assert activity_details.timestamp == datetime(2016, 11, 14, 11, 35, 33) + assert isinstance(activity_details, ActivityDetails) + + +@mock.patch("requests.get", side_effect=mocked_requests_get_missing_profile) +@mock.patch("time.time", side_effect=mocked_timestamp) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +def test_requesting_activity_details_with_missing_profile( + mock_uuid4, + mock_time, + mock_get, + client, + expected_activity_details_url, + expected_get_headers, + encrypted_request_token, +): + activity_details = client.get_activity_details(encrypted_request_token) + + mock_get.assert_called_once_with( + url=expected_activity_details_url, headers=expected_get_headers, verify=yoti_python_sdk.YOTI_API_VERIFY_SSL + ) + assert ( + activity_details.user_id + == "ijH4kkqMKTG0FSNUgQIvd2Z3Nx1j8f5RjVQMyoKOvO/hkv43Ik+t6d6mGfP2tdrN" + ) + assert ( + activity_details.receipt_id + == "Eq3+P8qjAlxr4d2mXKCUvzKdJTchI53ghwYPZXyA/cF5T+m/HCP1bK5LOmudZASN" + ) + assert activity_details.timestamp == datetime(2016, 11, 14, 11, 35, 33) + assert isinstance(activity_details, ActivityDetails) + + +@mock.patch("requests.get", side_effect=mocked_requests_get) +@mock.patch("time.time", side_effect=mocked_timestamp) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +def test_creating_request_with_unsupported_http_method( + mock_uuid4, mock_time, mock_get, client, expected_get_headers +): + with pytest.raises(ValueError): + client._Client__create_request( + http_method="UNSUPPORTED_METHOD", path=YOTI_API_ENDPOINT, content=None + ) + + +@mock.patch("requests.get", side_effect=mocked_requests_get) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +@mock.patch("time.time", side_effect=mocked_timestamp) +def test_creating_request_with_supported_http_method( + mock_uuid4, mock_time, mock_get, client, expected_get_headers +): + client._Client__create_request( + http_method="GET", path=YOTI_API_ENDPOINT, content=None + ) + + +@mock.patch("requests.get", side_effect=mocked_requests_get) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +@mock.patch("time.time", side_effect=mocked_timestamp) +def test_creating_request_content_is_added( + mock_uuid4, mock_time, mock_get, client, expected_get_headers +): + content = '{"Content"}' + content_bytes = content.encode() + request = client._Client__create_request( + http_method="GET", path=YOTI_API_ENDPOINT, content=content_bytes + ) + + b64encoded = base64.b64encode(content_bytes) + b64ascii = b64encoded.decode("ascii") + + assert request.endswith("&" + b64ascii) + + +@mock.patch("requests.post", side_effect=mocked_requests_post_aml_profile) +@mock.patch("time.time", side_effect=mocked_timestamp) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +def test_perform_aml_check_details_with_correct_data( + mock_uuid4, mock_time, mock_post, client, expected_aml_url, expected_post_headers +): + given_names = "Given Name" + family_name = "Family Name" + + aml_address = aml.AmlAddress(country="GBR") + aml_profile = aml.AmlProfile(given_names, family_name, aml_address) + + aml_result = client.perform_aml_check(aml_profile) + + aml_profile_json = json.dumps(aml_profile.__dict__, sort_keys=True) + aml_profile_bytes = aml_profile_json.encode() + + mock_post.assert_called_once_with( + url=expected_aml_url, headers=expected_post_headers, data=aml_profile_bytes, verify=yoti_python_sdk.YOTI_API_VERIFY_SSL + ) + + assert isinstance(aml_result, aml.AmlResult) + assert isinstance(aml_result.on_watch_list, bool) + assert isinstance(aml_result.on_fraud_list, bool) + assert isinstance(aml_result.on_pep_list, bool) + + +def test_perform_aml_check_with_null_profile(client): + aml_profile = None + + with pytest.raises(TypeError) as exc: + client.perform_aml_check(aml_profile) + expected_error = "aml_profile not set" + assert expected_error in str(exc) + + +@mock.patch("requests.post", side_effect=mocked_requests_post_aml_profile_not_found) +@mock.patch("time.time", side_effect=mocked_timestamp) +@mock.patch("uuid.uuid4", side_effect=mocked_uuid4) +def test_perform_aml_check_with_unsuccessful_call( + mock_uuid4, mock_time, mock_post, client +): + given_names = "Given Name" + family_name = "Family Name" + + aml_address = aml.AmlAddress(country="GBR") + aml_profile = aml.AmlProfile(given_names, family_name, aml_address) + + with pytest.raises(RuntimeError) as exc: + client.perform_aml_check(aml_profile) + expected_error = "Unsuccessful Yoti API call:" + assert expected_error in str(exc) diff --git a/yoti_python_sdk/tests/test_crypto.py b/yoti_python_sdk/tests/test_crypto.py index 85ef523b..2a2f4c22 100644 --- a/yoti_python_sdk/tests/test_crypto.py +++ b/yoti_python_sdk/tests/test_crypto.py @@ -6,29 +6,27 @@ from yoti_python_sdk.crypto import Crypto -@pytest.mark.parametrize('invalid_token', [ - '', - None, - 'some_invalid_token', - True, - 123, -]) +@pytest.mark.parametrize("invalid_token", ["", None, "some_invalid_token", True, 123]) def test_decrypting_an_invalid_toke__should_not_be_allowed(invalid_token, crypto): with pytest.raises(ValueError): crypto.decrypt_token(invalid_token) def test_given_proper_encrypted_token__decrypting_should_yield_decrypted_token( - encrypted_request_token, decrypted_request_token, crypto): + encrypted_request_token, decrypted_request_token, crypto +): expected_token = decrypted_request_token - decrypted_token = crypto.decrypt_token(encrypted_request_token).decode('utf-8') + decrypted_token = crypto.decrypt_token(encrypted_request_token).decode("utf-8") assert decrypted_token == expected_token -@pytest.mark.parametrize('with_padding,stripped', [ - (b'\xfa\x01', b'\xfa'), - (b'\xfa\x06\x06\x06\x06\x06\x06', b'\xfa'), - (b'\xfa\x08\x08\x08\x08\x08\x08\x08\x08', b'\xfa'), -]) +@pytest.mark.parametrize( + "with_padding,stripped", + [ + (b"\xfa\x01", b"\xfa"), + (b"\xfa\x06\x06\x06\x06\x06\x06", b"\xfa"), + (b"\xfa\x08\x08\x08\x08\x08\x08\x08\x08", b"\xfa"), + ], +) def test_strip_pkcs5_padding(with_padding, stripped): assert Crypto.strip_pkcs5_padding(with_padding) == stripped diff --git a/yoti_python_sdk/tests/test_document_details.py b/yoti_python_sdk/tests/test_document_details.py new file mode 100644 index 00000000..20701dd5 --- /dev/null +++ b/yoti_python_sdk/tests/test_document_details.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- + +from yoti_python_sdk.document_details import DocumentDetails + +import datetime +import pytest + + +def test_exception_for_empty_data(): + DATA = "" + + with pytest.raises(ValueError) as exc: + DocumentDetails(DATA) + assert str(exc.value) == "Invalid value for DocumentDetails" + + +def test_exception_for_short_data(): + DATA = "PASS_CARD GBR" + + with pytest.raises(ValueError) as exc: + DocumentDetails(DATA) + assert str(exc.value) == "Invalid value for DocumentDetails" + + +def test_parse_3_words(): + DATA = "PASSPORT GBR 01234567" + + document = DocumentDetails(DATA) + + assert document.document_type == "PASSPORT" + assert document.issuing_country == "GBR" + assert document.document_number == "01234567" + assert document.expiration_date is None + assert document.issuing_authority is None + + +def test_parse_4_words(): + DATA = "DRIVING_LICENCE GBR 1234abc 2016-05-01" + + document = DocumentDetails(DATA) + + assert document.document_type == "DRIVING_LICENCE" + assert document.issuing_country == "GBR" + assert document.document_number == "1234abc" + assert document.expiration_date == datetime.date(2016, 5, 1) + assert document.issuing_authority is None + + +def test_parse_5_words(): + DATA = "DRIVING_LICENCE GBR 1234abc 2016-05-01 DVLA" + + document = DocumentDetails(DATA) + + assert document.document_type == "DRIVING_LICENCE" + assert document.issuing_country == "GBR" + assert document.document_number == "1234abc" + assert document.expiration_date == datetime.date(2016, 5, 1) + assert document.issuing_authority == "DVLA" + + +def test_parse_6_words(): + DATA = "DRIVING_LICENCE GBR 1234abc 2016-05-01 DVLA someThirdData" + + document = DocumentDetails(DATA) + + assert document.document_type == "DRIVING_LICENCE" + assert document.issuing_country == "GBR" + assert document.document_number == "1234abc" + assert document.expiration_date == datetime.date(2016, 5, 1) + assert document.issuing_authority == "DVLA" + + +def test_expiration_date_is_dash(): + DATA = "PASS_CARD GBR 22719564893 - CITIZENCARD" + + document = DocumentDetails(DATA) + + assert document.document_type == "PASS_CARD" + assert document.issuing_country == "GBR" + assert document.document_number == "22719564893" + assert document.expiration_date is None + assert document.issuing_authority == "CITIZENCARD" + + +def test_invalid_date(): + DATA = "PASSPORT GBR 1234abc X016-05-01" + + with pytest.raises(ValueError) as exc: + DocumentDetails(DATA) + assert str(exc.value) == "Invalid value for DocumentDetails" diff --git a/yoti_python_sdk/tests/test_image.py b/yoti_python_sdk/tests/test_image.py index c6da7a70..2ef9da41 100644 --- a/yoti_python_sdk/tests/test_image.py +++ b/yoti_python_sdk/tests/test_image.py @@ -7,21 +7,26 @@ def test_image_with_unsupported_type(): with pytest.raises(TypeError): - Image(b'', Protobuf.CT_UNDEFINED) + Image(b"", Protobuf.CT_UNDEFINED) -@pytest.mark.parametrize("content_type, expected_mime_type", - [(Protobuf.CT_JPEG, 'image/jpeg'), - (Protobuf.CT_PNG, 'image/png')]) +@pytest.mark.parametrize( + "content_type, expected_mime_type", + [(Protobuf.CT_JPEG, "image/jpeg"), (Protobuf.CT_PNG, "image/png")], +) def test_image_mime_type(content_type, expected_mime_type): - image = Image(b'', content_type) + image = Image(b"", content_type) assert image.mime_type() == expected_mime_type -@pytest.mark.parametrize("content_type, expected_base64_content", - [(Protobuf.CT_JPEG, 'data:image/jpeg;base64,dGVzdCBzdHJpbmc='), - (Protobuf.CT_PNG, 'data:image/png;base64,dGVzdCBzdHJpbmc=')]) +@pytest.mark.parametrize( + "content_type, expected_base64_content", + [ + (Protobuf.CT_JPEG, "data:image/jpeg;base64,dGVzdCBzdHJpbmc="), + (Protobuf.CT_PNG, "data:image/png;base64,dGVzdCBzdHJpbmc="), + ], +) def test_image_base64_content(content_type, expected_base64_content): - image = Image(b'test string', content_type) + image = Image(b"test string", content_type) assert image.base64_content() == expected_base64_content diff --git a/yoti_python_sdk/tests/test_profile.py b/yoti_python_sdk/tests/test_profile.py index 0ff855ae..78be7e59 100644 --- a/yoti_python_sdk/tests/test_profile.py +++ b/yoti_python_sdk/tests/test_profile.py @@ -1,442 +1,654 @@ -# -*- coding: utf-8 -*- -import collections -import json -import logging - -import pytest - -from yoti_python_sdk import config -from yoti_python_sdk.attribute import Attribute -from yoti_python_sdk.profile import Profile -from yoti_python_sdk.protobuf.protobuf import Protobuf -from yoti_python_sdk.tests import attribute_fixture_parser, image_helper -from yoti_python_sdk.tests.protobuf_attribute import ProtobufAttribute - -ADDRESS_FORMAT_KEY = "address_format" -ADDRESS_FORMAT_VALUE = 1 -INDIA_FORMAT_VALUE = 2 -USA_FORMAT_VALUE = 3 - -BUILDING_NUMBER_KEY = "building_number" -BUILDING_NUMBER_VALUE = "15a" - -CARE_OF_KEY = "care_of" -CARE_OF_VALUE = "S/O: Name" - -STATE_KEY = "state" -INDIA_STATE_VALUE = "Punjab" -USA_STATE_VALUE = "AL" - -BUILDING_KEY = "building" -BUILDING_VALUE = "House No.1111-A" - -STREET_KEY = "street" -STREET_VALUE = "42nd Street" - -DISTRICT_KEY = "district" -DISTRICT_VALUE = "DISTRICT 10" - -SUBDISTRICT_KEY = "subdistrict" -SUBDISTRICT_VALUE = "Sub-DISTRICT 10" - -POST_OFFICE_KEY = "post_office" -INDIA_POST_OFFICE_VALUE = "Rajguru Nagar" - -ADDRESS_LINE_1_KEY = "address_line_1" -ADDRESS_LINE_1_VALUE = "15a North Street" - -TOWN_CITY_KEY = "town_city" -TOWN_CITY_VALUE = "TOWN/CITY NAME" - -POSTAL_CODE_KEY = "postal_code" -POSTAL_CODE_VALUE = "SM5 2HW" -INDIA_POSTAL_CODE_VALUE = "141012" -USA_POSTAL_CODE_VALUE = "36201" - -COUNTRY_ISO_KEY = "country_iso" -COUNTRY_ISO_VALUE = "GBR" -INDIA_COUNTRY_ISO_VALUE = "IND" -USA_COUNTRY_ISO_VALUE = "USA" - -COUNTRY_KEY = "country" -COUNTRY_VALUE = "UK" -INDIA_COUNTRY_VALUE = "India" -USA_COUNTRY_VALUE = "USA" - -FORMATTED_ADDRESS_VALUE = "15a North Street\nCARSHALTON\nSM5 2HW\nUK" -INDIA_FORMATTED_ADDRESS_VALUE = 'S/O: Name\nHouse No.1111-A\n42nd Street\nTOWN/CITY NAME\nSub-DISTRICT 10\nDISTRICT 10\nPunjab\n141012\nRajgura Nagar\nIndia' -USA_FORMATTED_ADDRESS_VALUE = "15a North Street\nTOWN/CITY NAME\nAL\n36201\nUSA" - - -def create_single_attribute_list(name, value, anchors, content_type): - attribute = ProtobufAttribute(name, value, anchors, content_type) - - attribute_list = list() - attribute_list.append(attribute) - return attribute_list - - -def create_attribute_list_with_selfie_field(): - return create_single_attribute_list( - name=config.ATTRIBUTE_SELFIE, - value="base64(ง •̀_•́)ง", - anchors=None, - content_type=Protobuf.CT_JPEG) - - -def create_attribute_list_with_email_field(): - return create_single_attribute_list( - name=config.ATTRIBUTE_EMAIL_ADDRESS, - value="y@ti.com".encode(), - anchors=None, - content_type=Protobuf.CT_STRING) - - -def create_attribute_list_with_structured_postal_address_field(json_address_value): - return create_single_attribute_list( - name=config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS, - value=json_address_value, - anchors=None, - content_type=Protobuf.CT_JSON) - - -@pytest.mark.parametrize( - "string, expected_int", [("0", 0), ("1", 1), ("123", 123), ("-10", -10), ("-1", -1)] -) -def test_try_parse_int_value(string, expected_int): - attribute_name = "int_attribute" - attribute_list = create_single_attribute_list( - name=attribute_name, - value=str.encode(string), - anchors=None, - content_type=Protobuf.CT_INT) - - profile = Profile(attribute_list) - int_attribute = profile.get_attribute(attribute_name) - assert int_attribute.value == expected_int - - -def test_error_parsing_attribute_has_none_value(): - int_attribute_name = "int_attribute" - - attribute_list = create_single_attribute_list( - name=int_attribute_name, - value=str.encode("invalid_int"), - anchors=None, - content_type=Protobuf.CT_INT) - - # disable logging for the below call: warning shown as int is invalid - logger = logging.getLogger() - logger.propagate = False - - profile = Profile(attribute_list) - - logger.propagate = True - - assert profile.get_attribute(int_attribute_name) is None - - -@pytest.mark.parametrize("content_type", - [Protobuf.CT_DATE, Protobuf.CT_INT, Protobuf.CT_JPEG, Protobuf.CT_PNG, Protobuf.CT_JSON, - Protobuf.CT_UNDEFINED]) -def test_parse_empty_values_returns_none(content_type): - attribute_name = "attribute_name" - - attribute_list = create_single_attribute_list( - name=attribute_name, - value=b'', - anchors=None, - content_type=content_type) - - # disable logging for the below call: warning logged as value is empty - logger = logging.getLogger() - logger.propagate = False - - profile = Profile(attribute_list) - - logger.propagate = True - - assert profile.get_attribute(attribute_name) is None - - -@pytest.mark.parametrize("value", [b'', "".encode()]) -def test_parse_empty_string_value_returns_attribute(value): - attribute_name = "attribute_name" - - attribute_list = create_single_attribute_list( - name=attribute_name, - value=value, - anchors=None, - content_type=Protobuf.CT_STRING) - - profile = Profile(attribute_list) - - assert profile.get_attribute(attribute_name).value == "" - - -def test_error_parsing_attribute_does_not_affect_other_attribute(): - string_attribute_name = "string_attribute" - int_attribute_name = "int_attribute" - string_value = "string" - - attribute_list = list() - - attribute_list.append(ProtobufAttribute( - name=string_attribute_name, - value=str.encode(string_value), - anchors=None, - content_type=Protobuf.CT_STRING)) - - attribute_list.append(ProtobufAttribute( - name=int_attribute_name, - value=str.encode("invalid_int"), - anchors=None, - content_type=Protobuf.CT_INT)) - - # disable logging for the below call: warning shown as int is invalid - logger = logging.getLogger() - logger.propagate = False - - profile = Profile(attribute_list) - - logger.propagate = True - - assert len(profile.attributes) == 1 - - retrieved_string_attribute = profile.get_attribute(string_attribute_name) - assert retrieved_string_attribute.name == string_attribute_name - assert retrieved_string_attribute.value == string_value - - -def test_try_parse_structured_postal_address_uk(): - structured_postal_address = {ADDRESS_FORMAT_KEY: ADDRESS_FORMAT_VALUE, - BUILDING_NUMBER_KEY: BUILDING_NUMBER_VALUE, - ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, - TOWN_CITY_KEY: TOWN_CITY_VALUE, - POSTAL_CODE_KEY: POSTAL_CODE_VALUE, - COUNTRY_ISO_KEY: COUNTRY_ISO_VALUE, - COUNTRY_KEY: COUNTRY_VALUE, - config.KEY_FORMATTED_ADDRESS: FORMATTED_ADDRESS_VALUE} - - structured_postal_address_json = json.dumps(structured_postal_address).encode() - - profile = Profile(create_attribute_list_with_structured_postal_address_field(structured_postal_address_json)) - - actual_structured_postal_address_profile = profile.structured_postal_address.value - - assert type(actual_structured_postal_address_profile) is collections.OrderedDict - assert actual_structured_postal_address_profile[ADDRESS_FORMAT_KEY] == ADDRESS_FORMAT_VALUE - assert actual_structured_postal_address_profile[BUILDING_NUMBER_KEY] == BUILDING_NUMBER_VALUE - assert actual_structured_postal_address_profile[ADDRESS_LINE_1_KEY] == ADDRESS_LINE_1_VALUE - assert actual_structured_postal_address_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE - assert actual_structured_postal_address_profile[POSTAL_CODE_KEY] == POSTAL_CODE_VALUE - assert actual_structured_postal_address_profile[COUNTRY_ISO_KEY] == COUNTRY_ISO_VALUE - assert actual_structured_postal_address_profile[COUNTRY_KEY] == COUNTRY_VALUE - assert actual_structured_postal_address_profile[config.KEY_FORMATTED_ADDRESS] == FORMATTED_ADDRESS_VALUE - - -def test_other_json_type_is_parsed(): - json_attribute_name = "other_json" - key_a = "keyA" - key_b = "keyB" - value_a = "valueA" - value_b = "valueB" - json_value = {key_a: value_a, - key_b: value_b} - - encoded_json = json.dumps(json_value).encode() - - attribute_list = create_single_attribute_list( - name=json_attribute_name, - value=encoded_json, - anchors=None, - content_type=Protobuf.CT_JSON) - - profile = Profile(attribute_list) - - retrieved_attribute = profile.get_attribute(json_attribute_name) - - assert retrieved_attribute.name == json_attribute_name - assert type(retrieved_attribute.value) is collections.OrderedDict - assert retrieved_attribute.value[key_a] == value_a - assert retrieved_attribute.value[key_b] == value_b - - -def test_try_parse_structured_postal_address_india(): - structured_postal_address = {ADDRESS_FORMAT_KEY: INDIA_FORMAT_VALUE, - CARE_OF_KEY: CARE_OF_VALUE, - BUILDING_KEY: BUILDING_VALUE, - STREET_KEY: STREET_VALUE, - TOWN_CITY_KEY: TOWN_CITY_VALUE, - SUBDISTRICT_KEY: SUBDISTRICT_VALUE, - DISTRICT_KEY: DISTRICT_VALUE, - STATE_KEY: INDIA_STATE_VALUE, - POSTAL_CODE_KEY: INDIA_POSTAL_CODE_VALUE, - POST_OFFICE_KEY: INDIA_POST_OFFICE_VALUE, - COUNTRY_ISO_KEY: INDIA_COUNTRY_ISO_VALUE, - COUNTRY_KEY: INDIA_COUNTRY_VALUE, - config.KEY_FORMATTED_ADDRESS: INDIA_FORMATTED_ADDRESS_VALUE} - - structured_postal_address_bytes = json.dumps(structured_postal_address).encode() - - profile = Profile(create_attribute_list_with_structured_postal_address_field(structured_postal_address_bytes)) - - actual_structured_postal_address_profile = profile.structured_postal_address.value - - assert type(actual_structured_postal_address_profile) is collections.OrderedDict - assert actual_structured_postal_address_profile[ADDRESS_FORMAT_KEY] == INDIA_FORMAT_VALUE - assert actual_structured_postal_address_profile[CARE_OF_KEY] == CARE_OF_VALUE - assert actual_structured_postal_address_profile[BUILDING_KEY] == BUILDING_VALUE - assert actual_structured_postal_address_profile[STREET_KEY] == STREET_VALUE - assert actual_structured_postal_address_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE - assert actual_structured_postal_address_profile[SUBDISTRICT_KEY] == SUBDISTRICT_VALUE - assert actual_structured_postal_address_profile[DISTRICT_KEY] == DISTRICT_VALUE - assert actual_structured_postal_address_profile[STATE_KEY] == INDIA_STATE_VALUE - assert actual_structured_postal_address_profile[POSTAL_CODE_KEY] == INDIA_POSTAL_CODE_VALUE - assert actual_structured_postal_address_profile[POST_OFFICE_KEY] == INDIA_POST_OFFICE_VALUE - assert actual_structured_postal_address_profile[COUNTRY_ISO_KEY] == INDIA_COUNTRY_ISO_VALUE - assert actual_structured_postal_address_profile[COUNTRY_KEY] == INDIA_COUNTRY_VALUE - assert actual_structured_postal_address_profile[config.KEY_FORMATTED_ADDRESS] == INDIA_FORMATTED_ADDRESS_VALUE - - -def test_try_parse_structured_postal_address_usa(): - structured_postal_address = {ADDRESS_FORMAT_KEY: USA_FORMAT_VALUE, - ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, - TOWN_CITY_KEY: TOWN_CITY_VALUE, - STATE_KEY: USA_STATE_VALUE, - POSTAL_CODE_KEY: USA_POSTAL_CODE_VALUE, - COUNTRY_ISO_KEY: USA_COUNTRY_ISO_VALUE, - COUNTRY_KEY: USA_COUNTRY_VALUE, - config.KEY_FORMATTED_ADDRESS: USA_FORMATTED_ADDRESS_VALUE} - - structured_postal_address_bytes = json.dumps(structured_postal_address).encode() - - profile = Profile(create_attribute_list_with_structured_postal_address_field(structured_postal_address_bytes)) - - actual_structured_postal_address_profile = profile.structured_postal_address.value - - assert type(actual_structured_postal_address_profile) is collections.OrderedDict - assert actual_structured_postal_address_profile[ADDRESS_FORMAT_KEY] == USA_FORMAT_VALUE - assert actual_structured_postal_address_profile[ADDRESS_LINE_1_KEY] == ADDRESS_LINE_1_VALUE - assert actual_structured_postal_address_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE - assert actual_structured_postal_address_profile[STATE_KEY] == USA_STATE_VALUE - assert actual_structured_postal_address_profile[POSTAL_CODE_KEY] == USA_POSTAL_CODE_VALUE - assert actual_structured_postal_address_profile[COUNTRY_ISO_KEY] == USA_COUNTRY_ISO_VALUE - assert actual_structured_postal_address_profile[COUNTRY_KEY] == USA_COUNTRY_VALUE - assert actual_structured_postal_address_profile[config.KEY_FORMATTED_ADDRESS] == USA_FORMATTED_ADDRESS_VALUE - - -def test_try_parse_structured_postal_address_nested_json(): - formatted_address_json = { - "item1": [ - [1, 'a1'], - [2, 'a2'], - ], - "item2": [ - [3, 'b3'], - [4, 'b4'], - ], - } - - structured_postal_address = {ADDRESS_FORMAT_KEY: ADDRESS_FORMAT_VALUE, - BUILDING_NUMBER_KEY: BUILDING_NUMBER_VALUE, - ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, - TOWN_CITY_KEY: TOWN_CITY_VALUE, - POSTAL_CODE_KEY: POSTAL_CODE_VALUE, - COUNTRY_ISO_KEY: COUNTRY_ISO_VALUE, - COUNTRY_KEY: COUNTRY_VALUE, - config.KEY_FORMATTED_ADDRESS: formatted_address_json} - - structured_postal_address_bytes = json.dumps(structured_postal_address).encode() - - profile = Profile(create_attribute_list_with_structured_postal_address_field(structured_postal_address_bytes)) - - actual_structured_postal_address_profile = profile.structured_postal_address.value - - assert type(actual_structured_postal_address_profile) is collections.OrderedDict - assert actual_structured_postal_address_profile[ADDRESS_FORMAT_KEY] == ADDRESS_FORMAT_VALUE - assert actual_structured_postal_address_profile[BUILDING_NUMBER_KEY] == BUILDING_NUMBER_VALUE - assert actual_structured_postal_address_profile[ADDRESS_LINE_1_KEY] == ADDRESS_LINE_1_VALUE - assert actual_structured_postal_address_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE - assert actual_structured_postal_address_profile[POSTAL_CODE_KEY] == POSTAL_CODE_VALUE - assert actual_structured_postal_address_profile[COUNTRY_ISO_KEY] == COUNTRY_ISO_VALUE - assert actual_structured_postal_address_profile[COUNTRY_KEY] == COUNTRY_VALUE - - assert actual_structured_postal_address_profile[config.KEY_FORMATTED_ADDRESS] == formatted_address_json - - -def test_set_address_to_be_formatted_address(): - structured_postal_address = {config.KEY_FORMATTED_ADDRESS: FORMATTED_ADDRESS_VALUE} - structured_postal_address_bytes = json.dumps(structured_postal_address).encode() - - profile = Profile(create_attribute_list_with_structured_postal_address_field(structured_postal_address_bytes)) - - assert profile.postal_address.value == FORMATTED_ADDRESS_VALUE - - -def test_document_images(): - document_images_attribute = attribute_fixture_parser.get_attribute_from_base64_text( - attribute_fixture_parser.ATTRIBUTE_DOCUMENT_IMAGES) - - attribute_list = list() - attribute_list.append(document_images_attribute) - - profile = Profile(attribute_list) - - document_images_attribute = profile.document_images - assert len(document_images_attribute.value) == 2 - image_helper.assert_is_expected_image(document_images_attribute.value[0], "jpeg", "vWgD//2Q==") - image_helper.assert_is_expected_image(document_images_attribute.value[1], "jpeg", "38TVEH/9k=") - - -def test_nested_multi_value(): - attribute_name = "nested_multi_value" - inner_multi_value = attribute_fixture_parser.parse_multi_value() - - outer_tuple = (inner_multi_value,) - - profile = Profile(profile_attributes=None) - profile.attributes[attribute_name] = Attribute( - name=attribute_name, - value=outer_tuple, - anchors=None) - - retrieved_multi_value = profile.get_attribute(attribute_name) - - assert isinstance(retrieved_multi_value.value, tuple) - - for item in retrieved_multi_value.value: - assert isinstance(item, tuple) - - image_helper.assert_is_expected_image(retrieved_multi_value.value[0][0], "jpeg", "vWgD//2Q==") - image_helper.assert_is_expected_image(retrieved_multi_value.value[0][1], "jpeg", "38TVEH/9k=") - - -def test_get_attribute_document_images(): - attribute_list = create_single_attribute_list( - name=config.ATTRIBUTE_DOCUMENT_IMAGES, - value=[], - anchors=None, - content_type=Protobuf.CT_MULTI_VALUE) - - profile = Profile(attribute_list) - - assert profile.get_attribute(config.ATTRIBUTE_DOCUMENT_IMAGES) == profile.document_images - - -def test_get_attribute_selfie(): - profile = Profile(create_attribute_list_with_selfie_field()) - - assert profile.get_attribute(config.ATTRIBUTE_SELFIE) == profile.selfie - - -def test_get_attribute_email_address(): - profile = Profile(create_attribute_list_with_email_field()) - - assert profile.get_attribute(config.ATTRIBUTE_EMAIL_ADDRESS) == profile.email_address - - -def test_get_attribute_returns_none(): - profile = Profile(None) - - assert profile.get_attribute(config.ATTRIBUTE_SELFIE) is None +# -*- coding: utf-8 -*- +import collections +import json +import logging + +import pytest + +from yoti_python_sdk import config +from yoti_python_sdk.attribute import Attribute +from yoti_python_sdk.profile import Profile, ApplicationProfile +from yoti_python_sdk.protobuf.protobuf import Protobuf +from yoti_python_sdk.tests import attribute_fixture_parser, image_helper +from yoti_python_sdk.tests.protobuf_attribute import ProtobufAttribute +from yoti_python_sdk.image import Image + +ADDRESS_FORMAT_KEY = "address_format" +ADDRESS_FORMAT_VALUE = 1 +INDIA_FORMAT_VALUE = 2 +USA_FORMAT_VALUE = 3 + +BUILDING_NUMBER_KEY = "building_number" +BUILDING_NUMBER_VALUE = "15a" + +CARE_OF_KEY = "care_of" +CARE_OF_VALUE = "S/O: Name" + +STATE_KEY = "state" +INDIA_STATE_VALUE = "Punjab" +USA_STATE_VALUE = "AL" + +BUILDING_KEY = "building" +BUILDING_VALUE = "House No.1111-A" + +STREET_KEY = "street" +STREET_VALUE = "42nd Street" + +DISTRICT_KEY = "district" +DISTRICT_VALUE = "DISTRICT 10" + +SUBDISTRICT_KEY = "subdistrict" +SUBDISTRICT_VALUE = "Sub-DISTRICT 10" + +POST_OFFICE_KEY = "post_office" +INDIA_POST_OFFICE_VALUE = "Rajguru Nagar" + +ADDRESS_LINE_1_KEY = "address_line_1" +ADDRESS_LINE_1_VALUE = "15a North Street" + +TOWN_CITY_KEY = "town_city" +TOWN_CITY_VALUE = "TOWN/CITY NAME" + +POSTAL_CODE_KEY = "postal_code" +POSTAL_CODE_VALUE = "SM5 2HW" +INDIA_POSTAL_CODE_VALUE = "141012" +USA_POSTAL_CODE_VALUE = "36201" + +COUNTRY_ISO_KEY = "country_iso" +COUNTRY_ISO_VALUE = "GBR" +INDIA_COUNTRY_ISO_VALUE = "IND" +USA_COUNTRY_ISO_VALUE = "USA" + +COUNTRY_KEY = "country" +COUNTRY_VALUE = "UK" +INDIA_COUNTRY_VALUE = "India" +USA_COUNTRY_VALUE = "USA" + +FORMATTED_ADDRESS_VALUE = "15a North Street\nCARSHALTON\nSM5 2HW\nUK" +INDIA_FORMATTED_ADDRESS_VALUE = "S/O: Name\nHouse No.1111-A\n42nd Street\nTOWN/CITY NAME\nSub-DISTRICT 10\nDISTRICT 10\nPunjab\n141012\nRajgura Nagar\nIndia" +USA_FORMATTED_ADDRESS_VALUE = "15a North Street\nTOWN/CITY NAME\nAL\n36201\nUSA" + +USA_DOCUMENT_DETAILS = "DRIVING_LICENCE USA 12345678 2016-05-01" +INDIA_DOCUMENT_DETAILS = "DRIVING_LICENCE IND MH-05-2006-1234567 2016-05-01" +DRIVING_LICENCE = "DRIVING_LICENCE" +USA_DRIVING_LICENCE_NUMBER = "12345678" +IND_DRIVING_LICENCE_NUMBER = "MH-05-2006-1234567" +EXPIRY_DATE = "2016-05-01" + + +def create_single_attribute_list(name, value, anchors, content_type): + attribute = ProtobufAttribute(name, value, anchors, content_type) + + attribute_list = list() + attribute_list.append(attribute) + return attribute_list + + +def create_attribute_list_with_selfie_field(): + return create_single_attribute_list( + name=config.ATTRIBUTE_SELFIE, + value="base64(ง •̀_•́)ง", + anchors=None, + content_type=Protobuf.CT_JPEG, + ) + + +def create_attribute_list_with_application_logo(): + return create_single_attribute_list( + name=config.ATTRIBUTE_APPLICATION_LOGO, + value="base64(┛ಠ_ಠ)┛彡┻━┻", + anchors=None, + content_type=Protobuf.CT_JPEG, + ) + + +def create_attribute_list_with_email_field(): + return create_single_attribute_list( + name=config.ATTRIBUTE_EMAIL_ADDRESS, + value="y@ti.com".encode(), + anchors=None, + content_type=Protobuf.CT_STRING, + ) + + +def create_attribute_list_with_structured_postal_address_field(json_address_value): + return create_single_attribute_list( + name=config.ATTRIBUTE_STRUCTURED_POSTAL_ADDRESS, + value=json_address_value, + anchors=None, + content_type=Protobuf.CT_JSON, + ) + + +@pytest.mark.parametrize( + "string, expected_int", [("0", 0), ("1", 1), ("123", 123), ("-10", -10), ("-1", -1)] +) +def test_try_parse_int_value(string, expected_int): + attribute_name = "int_attribute" + attribute_list = create_single_attribute_list( + name=attribute_name, + value=str.encode(string), + anchors=None, + content_type=Protobuf.CT_INT, + ) + + profile = Profile(attribute_list) + int_attribute = profile.get_attribute(attribute_name) + assert int_attribute.value == expected_int + + +def test_error_parsing_attribute_has_none_value(): + int_attribute_name = "int_attribute" + + attribute_list = create_single_attribute_list( + name=int_attribute_name, + value=str.encode("invalid_int"), + anchors=None, + content_type=Protobuf.CT_INT, + ) + + # disable logging for the below call: warning shown as int is invalid + logger = logging.getLogger() + logger.propagate = False + + profile = Profile(attribute_list) + + logger.propagate = True + + assert profile.get_attribute(int_attribute_name) is None + + +@pytest.mark.parametrize( + "content_type", + [ + Protobuf.CT_DATE, + Protobuf.CT_INT, + Protobuf.CT_JPEG, + Protobuf.CT_PNG, + Protobuf.CT_JSON, + Protobuf.CT_UNDEFINED, + ], +) +def test_parse_empty_values_returns_none(content_type): + attribute_name = "attribute_name" + + attribute_list = create_single_attribute_list( + name=attribute_name, value=b"", anchors=None, content_type=content_type + ) + + # disable logging for the below call: warning logged as value is empty + logger = logging.getLogger() + logger.propagate = False + + profile = Profile(attribute_list) + + logger.propagate = True + + assert profile.get_attribute(attribute_name) is None + + +@pytest.mark.parametrize("value", [b"", "".encode()]) +def test_parse_empty_string_value_returns_attribute(value): + attribute_name = "attribute_name" + + attribute_list = create_single_attribute_list( + name=attribute_name, value=value, anchors=None, content_type=Protobuf.CT_STRING + ) + + profile = Profile(attribute_list) + + assert profile.get_attribute(attribute_name).value == "" + + +def test_error_parsing_attribute_does_not_affect_other_attribute(): + string_attribute_name = "string_attribute" + int_attribute_name = "int_attribute" + string_value = "string" + + attribute_list = list() + + attribute_list.append( + ProtobufAttribute( + name=string_attribute_name, + value=str.encode(string_value), + anchors=None, + content_type=Protobuf.CT_STRING, + ) + ) + + attribute_list.append( + ProtobufAttribute( + name=int_attribute_name, + value=str.encode("invalid_int"), + anchors=None, + content_type=Protobuf.CT_INT, + ) + ) + + # disable logging for the below call: warning shown as int is invalid + logger = logging.getLogger() + logger.propagate = False + + profile = Profile(attribute_list) + + logger.propagate = True + + assert len(profile.attributes) == 1 + + retrieved_string_attribute = profile.get_attribute(string_attribute_name) + assert retrieved_string_attribute.name == string_attribute_name + assert retrieved_string_attribute.value == string_value + + +def test_try_parse_structured_postal_address_uk(): + structured_postal_address = { + ADDRESS_FORMAT_KEY: ADDRESS_FORMAT_VALUE, + BUILDING_NUMBER_KEY: BUILDING_NUMBER_VALUE, + ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, + TOWN_CITY_KEY: TOWN_CITY_VALUE, + POSTAL_CODE_KEY: POSTAL_CODE_VALUE, + COUNTRY_ISO_KEY: COUNTRY_ISO_VALUE, + COUNTRY_KEY: COUNTRY_VALUE, + config.KEY_FORMATTED_ADDRESS: FORMATTED_ADDRESS_VALUE, + } + + structured_postal_address_json = json.dumps(structured_postal_address).encode() + + profile = Profile( + create_attribute_list_with_structured_postal_address_field( + structured_postal_address_json + ) + ) + + actual_structured_postal_address = profile.structured_postal_address.value + actual_address_format = actual_structured_postal_address[ADDRESS_FORMAT_KEY] + actual_building_number = actual_structured_postal_address[BUILDING_NUMBER_KEY] + actual_address_line_1 = actual_structured_postal_address[ADDRESS_LINE_1_KEY] + actual_town_city = actual_structured_postal_address[TOWN_CITY_KEY] + actual_postal_code = actual_structured_postal_address[POSTAL_CODE_KEY] + actual_country_iso = actual_structured_postal_address[COUNTRY_ISO_KEY] + actual_country = actual_structured_postal_address[COUNTRY_KEY] + actual_formatted_address = actual_structured_postal_address[ + config.KEY_FORMATTED_ADDRESS + ] + + assert type(actual_structured_postal_address) is collections.OrderedDict + assert actual_address_format == ADDRESS_FORMAT_VALUE + assert actual_building_number == BUILDING_NUMBER_VALUE + assert actual_address_line_1 == ADDRESS_LINE_1_VALUE + assert actual_town_city == TOWN_CITY_VALUE + assert actual_postal_code == POSTAL_CODE_VALUE + assert actual_country_iso == COUNTRY_ISO_VALUE + assert actual_country == COUNTRY_VALUE + assert actual_formatted_address == FORMATTED_ADDRESS_VALUE + + +def test_other_json_type_is_parsed(): + json_attribute_name = "other_json" + key_a = "keyA" + key_b = "keyB" + value_a = "valueA" + value_b = "valueB" + json_value = {key_a: value_a, key_b: value_b} + + encoded_json = json.dumps(json_value).encode() + + attribute_list = create_single_attribute_list( + name=json_attribute_name, + value=encoded_json, + anchors=None, + content_type=Protobuf.CT_JSON, + ) + + profile = Profile(attribute_list) + + retrieved_attribute = profile.get_attribute(json_attribute_name) + + assert retrieved_attribute.name == json_attribute_name + assert type(retrieved_attribute.value) is collections.OrderedDict + assert retrieved_attribute.value[key_a] == value_a + assert retrieved_attribute.value[key_b] == value_b + + +def test_try_parse_structured_postal_address_india(): + structured_postal_address = { + ADDRESS_FORMAT_KEY: INDIA_FORMAT_VALUE, + CARE_OF_KEY: CARE_OF_VALUE, + BUILDING_KEY: BUILDING_VALUE, + STREET_KEY: STREET_VALUE, + TOWN_CITY_KEY: TOWN_CITY_VALUE, + SUBDISTRICT_KEY: SUBDISTRICT_VALUE, + DISTRICT_KEY: DISTRICT_VALUE, + STATE_KEY: INDIA_STATE_VALUE, + POSTAL_CODE_KEY: INDIA_POSTAL_CODE_VALUE, + POST_OFFICE_KEY: INDIA_POST_OFFICE_VALUE, + COUNTRY_ISO_KEY: INDIA_COUNTRY_ISO_VALUE, + COUNTRY_KEY: INDIA_COUNTRY_VALUE, + config.KEY_FORMATTED_ADDRESS: INDIA_FORMATTED_ADDRESS_VALUE, + } + + structured_postal_address_bytes = json.dumps(structured_postal_address).encode() + + profile = Profile( + create_attribute_list_with_structured_postal_address_field( + structured_postal_address_bytes + ) + ) + + actual_structured_postal_address_profile = profile.structured_postal_address.value + + assert type(actual_structured_postal_address_profile) is collections.OrderedDict + assert ( + actual_structured_postal_address_profile[ADDRESS_FORMAT_KEY] + == INDIA_FORMAT_VALUE + ) + assert actual_structured_postal_address_profile[CARE_OF_KEY] == CARE_OF_VALUE + assert actual_structured_postal_address_profile[BUILDING_KEY] == BUILDING_VALUE + assert actual_structured_postal_address_profile[STREET_KEY] == STREET_VALUE + assert actual_structured_postal_address_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE + assert ( + actual_structured_postal_address_profile[SUBDISTRICT_KEY] == SUBDISTRICT_VALUE + ) + assert actual_structured_postal_address_profile[DISTRICT_KEY] == DISTRICT_VALUE + assert actual_structured_postal_address_profile[STATE_KEY] == INDIA_STATE_VALUE + assert ( + actual_structured_postal_address_profile[POSTAL_CODE_KEY] + == INDIA_POSTAL_CODE_VALUE + ) + assert ( + actual_structured_postal_address_profile[POST_OFFICE_KEY] + == INDIA_POST_OFFICE_VALUE + ) + assert ( + actual_structured_postal_address_profile[COUNTRY_ISO_KEY] + == INDIA_COUNTRY_ISO_VALUE + ) + assert actual_structured_postal_address_profile[COUNTRY_KEY] == INDIA_COUNTRY_VALUE + assert ( + actual_structured_postal_address_profile[config.KEY_FORMATTED_ADDRESS] + == INDIA_FORMATTED_ADDRESS_VALUE + ) + + +def test_try_parse_structured_postal_address_usa(): + structured_postal_address = { + ADDRESS_FORMAT_KEY: USA_FORMAT_VALUE, + ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, + TOWN_CITY_KEY: TOWN_CITY_VALUE, + STATE_KEY: USA_STATE_VALUE, + POSTAL_CODE_KEY: USA_POSTAL_CODE_VALUE, + COUNTRY_ISO_KEY: USA_COUNTRY_ISO_VALUE, + COUNTRY_KEY: USA_COUNTRY_VALUE, + config.KEY_FORMATTED_ADDRESS: USA_FORMATTED_ADDRESS_VALUE, + } + + structured_postal_address_bytes = json.dumps(structured_postal_address).encode() + + profile = Profile( + create_attribute_list_with_structured_postal_address_field( + structured_postal_address_bytes + ) + ) + + actual_structured_postal_address_profile = profile.structured_postal_address.value + + assert type(actual_structured_postal_address_profile) is collections.OrderedDict + assert ( + actual_structured_postal_address_profile[ADDRESS_FORMAT_KEY] == USA_FORMAT_VALUE + ) + assert ( + actual_structured_postal_address_profile[ADDRESS_LINE_1_KEY] + == ADDRESS_LINE_1_VALUE + ) + assert actual_structured_postal_address_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE + assert actual_structured_postal_address_profile[STATE_KEY] == USA_STATE_VALUE + assert ( + actual_structured_postal_address_profile[POSTAL_CODE_KEY] + == USA_POSTAL_CODE_VALUE + ) + assert ( + actual_structured_postal_address_profile[COUNTRY_ISO_KEY] + == USA_COUNTRY_ISO_VALUE + ) + assert actual_structured_postal_address_profile[COUNTRY_KEY] == USA_COUNTRY_VALUE + assert ( + actual_structured_postal_address_profile[config.KEY_FORMATTED_ADDRESS] + == USA_FORMATTED_ADDRESS_VALUE + ) + + +def test_try_parse_structured_postal_address_nested_json(): + formatted_address_json = { + "item1": [[1, "a1"], [2, "a2"]], + "item2": [[3, "b3"], [4, "b4"]], + } + + structured_postal_address = { + ADDRESS_FORMAT_KEY: ADDRESS_FORMAT_VALUE, + BUILDING_NUMBER_KEY: BUILDING_NUMBER_VALUE, + ADDRESS_LINE_1_KEY: ADDRESS_LINE_1_VALUE, + TOWN_CITY_KEY: TOWN_CITY_VALUE, + POSTAL_CODE_KEY: POSTAL_CODE_VALUE, + COUNTRY_ISO_KEY: COUNTRY_ISO_VALUE, + COUNTRY_KEY: COUNTRY_VALUE, + config.KEY_FORMATTED_ADDRESS: formatted_address_json, + } + + structured_postal_address_bytes = json.dumps(structured_postal_address).encode() + + profile = Profile( + create_attribute_list_with_structured_postal_address_field( + structured_postal_address_bytes + ) + ) + + actual_structured_postal_address_profile = profile.structured_postal_address.value + + assert type(actual_structured_postal_address_profile) is collections.OrderedDict + assert ( + actual_structured_postal_address_profile[ADDRESS_FORMAT_KEY] + == ADDRESS_FORMAT_VALUE + ) + assert ( + actual_structured_postal_address_profile[BUILDING_NUMBER_KEY] + == BUILDING_NUMBER_VALUE + ) + assert ( + actual_structured_postal_address_profile[ADDRESS_LINE_1_KEY] + == ADDRESS_LINE_1_VALUE + ) + assert actual_structured_postal_address_profile[TOWN_CITY_KEY] == TOWN_CITY_VALUE + assert ( + actual_structured_postal_address_profile[POSTAL_CODE_KEY] == POSTAL_CODE_VALUE + ) + assert ( + actual_structured_postal_address_profile[COUNTRY_ISO_KEY] == COUNTRY_ISO_VALUE + ) + assert actual_structured_postal_address_profile[COUNTRY_KEY] == COUNTRY_VALUE + + assert ( + actual_structured_postal_address_profile[config.KEY_FORMATTED_ADDRESS] + == formatted_address_json + ) + + +def test_set_address_to_be_formatted_address(): + structured_postal_address = {config.KEY_FORMATTED_ADDRESS: FORMATTED_ADDRESS_VALUE} + structured_postal_address_bytes = json.dumps(structured_postal_address).encode() + + profile = Profile( + create_attribute_list_with_structured_postal_address_field( + structured_postal_address_bytes + ) + ) + + assert profile.postal_address.value == FORMATTED_ADDRESS_VALUE + + +def test_document_images(): + document_images_attribute = attribute_fixture_parser.get_attribute_from_base64_text( + attribute_fixture_parser.ATTRIBUTE_DOCUMENT_IMAGES + ) + + attribute_list = list() + attribute_list.append(document_images_attribute) + + profile = Profile(attribute_list) + + document_images_attribute = profile.document_images + assert len(document_images_attribute.value) == 2 + image_helper.assert_is_expected_image( + document_images_attribute.value[0], "jpeg", "vWgD//2Q==" + ) + image_helper.assert_is_expected_image( + document_images_attribute.value[1], "jpeg", "38TVEH/9k=" + ) + + +def test_nested_multi_value(): + attribute_name = "nested_multi_value" + inner_multi_value = attribute_fixture_parser.parse_multi_value() + + outer_tuple = (inner_multi_value,) + + profile = Profile(profile_attributes=None) + profile.attributes[attribute_name] = Attribute( + name=attribute_name, value=outer_tuple, anchors=None + ) + + retrieved_multi_value = profile.get_attribute(attribute_name) + + assert isinstance(retrieved_multi_value.value, tuple) + + for item in retrieved_multi_value.value: + assert isinstance(item, tuple) + + image_helper.assert_is_expected_image( + retrieved_multi_value.value[0][0], "jpeg", "vWgD//2Q==" + ) + image_helper.assert_is_expected_image( + retrieved_multi_value.value[0][1], "jpeg", "38TVEH/9k=" + ) + + +def test_get_attribute_document_images(): + attribute_list = create_single_attribute_list( + name=config.ATTRIBUTE_DOCUMENT_IMAGES, + value=[], + anchors=None, + content_type=Protobuf.CT_MULTI_VALUE, + ) + + profile = Profile(attribute_list) + + assert ( + profile.get_attribute(config.ATTRIBUTE_DOCUMENT_IMAGES) + == profile.document_images + ) + + +def test_get_attribute_selfie(): + profile = Profile(create_attribute_list_with_selfie_field()) + + assert profile.get_attribute(config.ATTRIBUTE_SELFIE) == profile.selfie + + +def test_get_attribute_email_address(): + profile = Profile(create_attribute_list_with_email_field()) + + assert ( + profile.get_attribute(config.ATTRIBUTE_EMAIL_ADDRESS) == profile.email_address + ) + + +def test_get_attribute_returns_none(): + profile = Profile(None) + + assert profile.get_attribute(config.ATTRIBUTE_SELFIE) is None + + +def test_get_document_details_usa(): + attribute_list = create_single_attribute_list( + name=config.ATTRIBUTE_DOCUMENT_DETAILS, + value=USA_DOCUMENT_DETAILS.encode(), + anchors=None, + content_type=Protobuf.CT_STRING, + ) + profile = Profile(attribute_list) + document = profile.document_details.value + + assert document.document_type == DRIVING_LICENCE + assert document.issuing_country == USA_COUNTRY_ISO_VALUE + assert document.document_number == USA_DRIVING_LICENCE_NUMBER + assert document.expiration_date.isoformat() == EXPIRY_DATE + + +def test_get_document_details_india(): + attribute_list = create_single_attribute_list( + name=config.ATTRIBUTE_DOCUMENT_DETAILS, + value=INDIA_DOCUMENT_DETAILS.encode(), + anchors=None, + content_type=Protobuf.CT_STRING, + ) + profile = Profile(attribute_list) + document = profile.document_details.value + + assert document.document_type == DRIVING_LICENCE + assert document.issuing_country == INDIA_COUNTRY_ISO_VALUE + assert document.document_number == IND_DRIVING_LICENCE_NUMBER + assert document.expiration_date.isoformat() == EXPIRY_DATE + + +def test_create_application_profile_with_name(): + attribute_list = create_single_attribute_list( + name=config.ATTRIBUTE_APPLICATION_NAME, + value="yoti-sdk-test", + anchors=None, + content_type=Protobuf.CT_STRING + ) + + app_profile = ApplicationProfile(attribute_list) + + assert (app_profile.get_attribute(config.ATTRIBUTE_APPLICATION_NAME) == app_profile.application_name) + assert isinstance(app_profile, ApplicationProfile) + + +def test_create_application_profile_with_url(): + attribute_list = create_single_attribute_list( + name=config.ATTRIBUTE_APPLICATION_URL, + value="https://yoti.com", + anchors=None, + content_type=Protobuf.CT_STRING + ) + + app_profile = ApplicationProfile(attribute_list) + + assert (app_profile.get_attribute(config.ATTRIBUTE_APPLICATION_URL) == app_profile.application_url) + assert isinstance(app_profile, ApplicationProfile) + + +def test_create_application_profile_with_receipt_bgcolor(): + attribute_list = create_single_attribute_list( + name=config.ATTRIBUTE_APPLICATION_RECEIPT_BGCOLOR, + value="#FFFFFF", + anchors=None, + content_type=Protobuf.CT_STRING + ) + + app_profile = ApplicationProfile(attribute_list) + + assert (app_profile.get_attribute(config.ATTRIBUTE_APPLICATION_RECEIPT_BGCOLOR) == app_profile.application_receipt_bg_color) + assert isinstance(app_profile, ApplicationProfile) + + +def test_create_application_profile_with_logo(): + attribute_list = create_attribute_list_with_application_logo() + + app_profile = ApplicationProfile(attribute_list) + app_logo = app_profile.application_logo + + assert isinstance(app_logo.value, Image) + assert (app_profile.get_attribute(config.ATTRIBUTE_APPLICATION_LOGO) == app_profile.application_logo) + assert isinstance(app_profile, ApplicationProfile) + + diff --git a/yoti_python_sdk/version.py b/yoti_python_sdk/version.py index 70e0898b..40720561 100644 --- a/yoti_python_sdk/version.py +++ b/yoti_python_sdk/version.py @@ -1,2 +1,2 @@ # -*- coding: utf-8 -*- -__version__ = "2.7.1" +__version__ = "2.8.1"