From 648d3bd6c17f6be01c7f1d12299ee3cdfc8e2d76 Mon Sep 17 00:00:00 2001 From: Michael Olund Date: Tue, 27 Oct 2020 14:12:54 -0700 Subject: [PATCH 1/4] Split up submission tests and packaging tests --- .../apps/core/tests/test_efiling_packaging.py | 51 +++++++++++++++++++ ...ling_hub.py => test_efiling_submission.py} | 31 ----------- ...est_filing.py => test_filing_documents.py} | 0 edivorce/apps/core/views/efiling.py | 10 ++-- 4 files changed, 58 insertions(+), 34 deletions(-) create mode 100644 edivorce/apps/core/tests/test_efiling_packaging.py rename edivorce/apps/core/tests/{test_efiling_hub.py => test_efiling_submission.py} (86%) rename edivorce/apps/core/tests/{test_filing.py => test_filing_documents.py} (100%) diff --git a/edivorce/apps/core/tests/test_efiling_packaging.py b/edivorce/apps/core/tests/test_efiling_packaging.py new file mode 100644 index 00000000..4514df71 --- /dev/null +++ b/edivorce/apps/core/tests/test_efiling_packaging.py @@ -0,0 +1,51 @@ +import json +from unittest import mock + +from django.contrib.sessions.middleware import SessionMiddleware +from django.core.exceptions import PermissionDenied +from django.test import TransactionTestCase +from django.test.client import RequestFactory +from django.core.files.uploadedfile import SimpleUploadedFile + +from edivorce.apps.core.utils.efiling_submission import EFilingSubmission +from edivorce.apps.core.utils.efiling_packaging import EFilingPackaging, PACKAGE_PARTY_FORMAT, PACKAGE_DOCUMENT_FORMAT + + +class EFilingPackagingTests(TransactionTestCase): + + def setUp(self): + # Every test needs access to the request factory. + self.factory = RequestFactory() + + self.request = self.factory.get('/') + middleware = SessionMiddleware() + middleware.process_request(self.request) + self.request.session.save() + + self.packaging = EFilingPackaging(initial_filing=True) + + def test_format_package(self): + files = [] + documents = [] + for i in range(0, 2): + document = PACKAGE_DOCUMENT_FORMAT.copy() + filename = 'form_{}.pdf'.format(i) + document['name'] = filename + file = SimpleUploadedFile(filename, b'test content') + files.append(('files', (file.name, file.read()))) + documents.append(document) + parties = [] + for i in range(0, 2): + party = PACKAGE_PARTY_FORMAT.copy() + party['firstName'] = 'Party {}'.format(i) + party['lastName'] = 'Test' + parties.append(party) + + location = '6011' + package = self.packaging.format_package(self.request, files, documents, parties, location) + + self.assertTrue(package) + self.assertEqual(package['filingPackage']['documents'][0]['name'], 'form_0.pdf') + self.assertEqual(package['filingPackage']['documents'][1]['name'], 'form_1.pdf') + self.assertEqual(package['filingPackage']['parties'][0]['firstName'], 'Party 0') + self.assertEqual(package['filingPackage']['parties'][1]['firstName'], 'Party 1') diff --git a/edivorce/apps/core/tests/test_efiling_hub.py b/edivorce/apps/core/tests/test_efiling_submission.py similarity index 86% rename from edivorce/apps/core/tests/test_efiling_hub.py rename to edivorce/apps/core/tests/test_efiling_submission.py index 445557e3..70dd03fe 100644 --- a/edivorce/apps/core/tests/test_efiling_hub.py +++ b/edivorce/apps/core/tests/test_efiling_submission.py @@ -176,37 +176,6 @@ class EFilingSubmissionTests(TransactionTestCase): bceid = self.hub._get_bceid(self.request) self.assertFalse(bceid) - def test_format_package(self): - files = [] - documents = [] - for i in range(0, 2): - document = PACKAGE_DOCUMENT_FORMAT.copy() - filename = 'form_{}.pdf'.format(i) - document['name'] = filename - file = SimpleUploadedFile(filename, b'test content') - files.append(('files', (file.name, file.read()))) - documents.append(document) - parties = [] - for i in range(0, 2): - party = PACKAGE_PARTY_FORMAT.copy() - party['firstName'] = 'Party {}'.format(i) - party['lastName'] = 'Test' - parties.append(party) - - location = '6011' - package = self.packaging.format_package(self.request, files, documents, parties, location) - - self.assertTrue(package) - self.assertEqual(package['filingPackage']['documents'][0]['name'], 'form_0.pdf') - self.assertEqual(package['filingPackage']['documents'][1]['name'], 'form_1.pdf') - self.assertEqual(package['filingPackage']['parties'][0]['firstName'], 'Party 0') - self.assertEqual(package['filingPackage']['parties'][1]['firstName'], 'Party 1') - - def test_upload_anonymous_user(self): - with self.settings(DEPLOYMENT_TYPE='prod'): - with self.assertRaises(PermissionDenied): - redirect, msg = self.hub.upload(self.request, None) - @mock.patch('edivorce.apps.core.utils.efiling_submission.EFilingSubmission._get_api') def test_upload_success(self, mock_get_api): self.request.session['bcgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9' diff --git a/edivorce/apps/core/tests/test_filing.py b/edivorce/apps/core/tests/test_filing_documents.py similarity index 100% rename from edivorce/apps/core/tests/test_filing.py rename to edivorce/apps/core/tests/test_filing_documents.py diff --git a/edivorce/apps/core/views/efiling.py b/edivorce/apps/core/views/efiling.py index 1b81cb60..65f0f5fb 100644 --- a/edivorce/apps/core/views/efiling.py +++ b/edivorce/apps/core/views/efiling.py @@ -99,9 +99,13 @@ def _package_and_submit(request, uploaded, generated, responses, initial): hub = EFilingSubmission(initial_filing=initial) packaging = EFilingPackaging(initial_filing=initial) post_files, documents = packaging.get_files(request, responses, uploaded, generated) - location = packaging.get_location(responses) - parties = packaging.get_parties(responses) - redirect_url, msg = hub.upload(request, post_files, documents, parties, location) + redirect_url, msg = hub.upload( + request, + post_files, + documents, + parties=packaging.get_parties(responses), + location=packaging.get_location(responses) + ) return msg, redirect_url From a26cca627e930fc11a2160de7114cc6e6d0892ec Mon Sep 17 00:00:00 2001 From: Michael Olund Date: Tue, 27 Oct 2020 15:46:08 -0700 Subject: [PATCH 2/4] Added a few tests for efiling_packaging --- .../apps/core/tests/test_efiling_packaging.py | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/edivorce/apps/core/tests/test_efiling_packaging.py b/edivorce/apps/core/tests/test_efiling_packaging.py index 4514df71..af66e963 100644 --- a/edivorce/apps/core/tests/test_efiling_packaging.py +++ b/edivorce/apps/core/tests/test_efiling_packaging.py @@ -49,3 +49,104 @@ class EFilingPackagingTests(TransactionTestCase): self.assertEqual(package['filingPackage']['documents'][1]['name'], 'form_1.pdf') self.assertEqual(package['filingPackage']['parties'][0]['firstName'], 'Party 0') self.assertEqual(package['filingPackage']['parties'][1]['firstName'], 'Party 1') + + def test_get_location_success(self): + responses = { + "court_registry_for_filing": "Vancouver" + } + location = self.packaging.get_location(responses) + self.assertEqual(location, '6011') + + def test_get_location_fail(self): + responses = { + "court_registry_for_filing": "Tokyo" + } + location = self.packaging.get_location(responses) + self.assertEqual(location, '0000') + + responses = {} + location = self.packaging.get_location(responses) + self.assertEqual(location, '0000') + + def test_get_json_data_signing_location(self): + + responses = { + 'how_to_sign': 'Together', + 'signing_location': 'Virtual' + } + + json = self.packaging._get_json_data(responses) + + self.assertEqual(json['parties'][0]["signingVirtually"], True) + self.assertEqual(json['parties'][1]["signingVirtually"], True) + + responses = { + 'how_to_sign': 'Separately', + 'signing_location_you': 'Virtual', + 'signing_location_spouse': 'In-person' + } + + json = self.packaging._get_json_data(responses) + + self.assertEqual(json['parties'][0]["signingVirtually"], True) + self.assertEqual(json['parties'][1]["signingVirtually"], False) + + def test_get_json_data_parties(self): + + responses = { + 'last_name_you': 'Smith', + 'given_name_1_you': 'John', + 'given_name_2_you': 'Jonas', + 'given_name_3_you': '', + 'birthday_you': 'Jun 1, 1970', + 'last_name_before_married_you': 'Baker', + 'last_name_born_you': '', + 'email_you': 'you@gmail.com', + 'address_to_send_official_document_email_you': 'you2@gmail.com', + 'last_name_spouse': 'Jones', + 'given_name_1_spouse': 'Jane', + 'given_name_2_spouse': 'Jennifer', + 'given_name_3_spouse': 'Janet', + 'birthday_spouse': 'Jan 15, 1980', + 'last_name_before_married_spouse': 'Wilson', + 'last_name_born_spouse': 'Ross', + 'email_spouse': '', + 'address_to_send_official_document_email_spouse': 'spouse2@gmail.com', + } + + json = self.packaging._get_json_data(responses) + + self.assertEqual(json['parties'][0]['surname'], 'Smith') + self.assertEqual(json['parties'][0]['given1'], 'John') + self.assertEqual(json['parties'][0]['given2'], 'Jonas') + self.assertEqual(json['parties'][0]['given3'], '') + self.assertEqual(json['parties'][0]['birthDate'], '1970-06-01') + self.assertEqual(json['parties'][0]['surnameBeforeMarriage'], 'Baker') + self.assertEqual(json['parties'][0]['surnameAtBirth'], '') + self.assertEqual(json['parties'][0]['email'], 'you@gmail.com') + + self.assertEqual(json['parties'][1]['surname'], 'Jones') + self.assertEqual(json['parties'][1]['given1'], 'Jane') + self.assertEqual(json['parties'][1]['given2'], 'Jennifer') + self.assertEqual(json['parties'][1]['given3'], 'Janet') + self.assertEqual(json['parties'][1]['birthDate'], '1980-01-15') + self.assertEqual(json['parties'][1]['surnameBeforeMarriage'], 'Wilson') + self.assertEqual(json['parties'][1]['surnameAtBirth'], 'Ross') + self.assertEqual(json['parties'][1]['email'], 'spouse2@gmail.com') + + def test_get_json_data_aliases(self): + + responses = { + 'any_other_name_you': 'YES', + 'other_name_you': '[["also known as","Smith","Mike","Joe","Skippy"],["also known as","D","A","B","C"]]', + 'any_other_name_spouse': 'NO' + } + + json = self.packaging._get_json_data(responses) + + self.assertEqual(json['parties'][0]["aliases"][0]["surname"], "Smith") + self.assertEqual(json['parties'][0]["aliases"][0]["given1"], "Mike") + self.assertEqual(json['parties'][0]["aliases"][0]["given2"], "Joe") + self.assertEqual(json['parties'][0]["aliases"][0]["given3"], "Skippy") + self.assertEqual(json['parties'][0]["aliases"][1]["surname"], "D") + self.assertEqual(len(json['parties'][1]["aliases"]), 0) From 97a330f18cb6e0248916210b82ff45524c94e1e1 Mon Sep 17 00:00:00 2001 From: Michael Olund Date: Wed, 28 Oct 2020 08:47:53 -0700 Subject: [PATCH 3/4] Turn on efiling --- edivorce/settings/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/edivorce/settings/base.py b/edivorce/settings/base.py index ad44abdb..f60642f3 100644 --- a/edivorce/settings/base.py +++ b/edivorce/settings/base.py @@ -185,7 +185,7 @@ DEBUG_TOOLBAR_CONFIG = { SECURE_BROWSER_XSS_FILTER = True # eFiling Hub settings -EFILING_HUB_ENABLED = False +EFILING_HUB_ENABLED = True EFILING_HUB_TOKEN_BASE_URL = env('EFILING_HUB_TOKEN_BASE_URL', '') EFILING_HUB_REALM = env('EFILING_HUB_REALM', '') EFILING_HUB_CLIENT_ID = env('EFILING_HUB_CLIENT_ID', '') From c5312f4aec643e2bcd21d6fb0ce609d5b9bf789c Mon Sep 17 00:00:00 2001 From: Michael Olund Date: Wed, 28 Oct 2020 08:50:06 -0700 Subject: [PATCH 4/4] Enable eFiling Hub --- edivorce/settings/openshift.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/edivorce/settings/openshift.py b/edivorce/settings/openshift.py index 8c8e8045..03bd3287 100644 --- a/edivorce/settings/openshift.py +++ b/edivorce/settings/openshift.py @@ -144,6 +144,8 @@ REDIS_PASSWORD = os.getenv('REDIS_PASSWORD', '') # Keycloak OpenID Connect settings LOGIN_REDIRECT_URL = PROXY_URL_PREFIX + '/signin' +# Enable Efiling Hub +EFILING_HUB_ENABLED = True def monkey_absolutify(request, path): return PROXY_BASE_URL + path