def check_census_case_fields(context): test_helper.assertTrue(context.case_details['caseRef']) test_helper.assertEquals(len(context.case_details['caseRef']), 10) test_helper.assertTrue(luhn.verify(context.case_details['caseRef'])) test_helper.assertTrue(context.case_details['estabUprn']) test_helper.assertTrue(context.case_details['estabType']) test_helper.assertTrue(context.case_details['uprn']) test_helper.assertTrue(context.case_details['collectionExerciseId']) test_helper.assertTrue(context.case_details['createdDateTime']) test_helper.assertTrue(context.case_details['lastUpdated']) test_helper.assertTrue(context.case_details['addressLine1']) test_helper.assertTrue(context.case_details['addressLine2']) test_helper.assertTrue(context.case_details['addressLine3']) test_helper.assertTrue(context.case_details['townName']) test_helper.assertTrue(context.case_details['postcode']) test_helper.assertTrue(context.case_details['addressLevel']) test_helper.assertTrue(context.case_details['abpCode']) test_helper.assertTrue(context.case_details['region']) test_helper.assertTrue(context.case_details['latitude']) test_helper.assertTrue(context.case_details['longitude']) test_helper.assertTrue(context.case_details['oa']) test_helper.assertTrue(context.case_details['lsoa']) test_helper.assertTrue(context.case_details['msoa']) test_helper.assertTrue(context.case_details['lad']) test_helper.assertTrue(context.case_details['id']) test_helper.assertTrue(context.case_details['addressType']) test_helper.assertTrue(context.case_details['caseType']) test_helper.assertEqual(context.case_details['surveyType'], "CENSUS") test_helper.assertFalse(context.case_details['handDelivery'])
def get_new_qid_and_case_as_required(context, case_type, address_level, qid_type, country_code): context.loaded_case = context.case_created_events[0]['payload']['collectionCase'] # receipting_case will be over written if a child case is created context.receipting_case = context.case_created_events[0]['payload']['collectionCase'] if qid_type == "CE1": return qid_type_equals_ce1(address_level, case_type, context, country_code) if qid_type == "HH": return qid_type_equals_hh(case_type, context, country_code) if qid_type == 'Ind': if case_type == 'HI': context.case_type = "HI" request_hi_individual_telephone_capture(context, "HH", country_code) context.qid_to_receipt = context.telephone_capture_qid_uac['questionnaireId'] context.receipting_case = _get_emitted_case(context, 'CASE_CREATED') uac = _get_emitted_uac(context) test_helper.assertEqual(uac['caseId'], context.receipting_case['id']) test_helper.assertEquals(uac['questionnaireId'], context.qid_to_receipt) return else: request_individual_telephone_capture(context, case_type, country_code) context.qid_to_receipt = context.telephone_capture_qid_uac['questionnaireId'] check_correct_uac_updated_message_is_emitted(context) return if qid_type == 'Cont': send_print_fulfilment_request(context, "P_OR_HC1") listen_for_ad_hoc_uac_updated_message(context, "11") context.qid_to_receipt = context.requested_qid return test_helper.assertFalse(f"Failed to get qid for {qid_type}")
def _check_print_file_does_not_contain_case_ref(context, start_of_test, sftp_utility, pack_code): logger.debug('Checking for files on SFTP server') context.expected_print_files = sftp_utility.get_all_files_after_time(start_of_test, pack_code, ".csv.gpg") actual_content_list = sftp_utility.get_files_content_as_list(context.expected_print_files, pack_code) if not actual_content_list: raise FileNotFoundError test_helper.assertFalse(any( context.case_created_events[0]['payload']['collectionCase']['caseRef'] in row for row in actual_content_list))
def _check_emitted_action_instructions(context, expected_value): context.expected_cases_for_action = context.case_created_events start_listening_to_rabbit_queue(Config.RABBITMQ_OUTBOUND_FIELD_QUEUE, functools.partial(_fieldwork_message_callback, context=context, expected_value=expected_value)) test_helper.assertFalse(context.expected_cases_for_action, msg="Didn't find all expected fieldwork action instruction messages")
def check_address_valid_case_updated_events(context): address_valid_case_ids = [case_id['CASE_ID'] for case_id in context.bulk_uninvalidated_addresses] context.case_updated_events = get_case_updated_events(context, len(address_valid_case_ids)) test_helper.assertEqual(len(context.case_updated_events), len(context.bulk_uninvalidated_addresses)) for event in context.case_updated_events: test_helper.assertFalse(event['payload']['collectionCase']['addressInvalid'], 'Address invalid flag must be "False" on all updated events') test_helper.assertIn(event['payload']['collectionCase']['id'], address_valid_case_ids, 'Unexpected case ID found on updated event')
def new_addresses_sent_to_field_secureType_false(context): context.messages_received = [] start_listening_to_rabbit_queue(Config.RABBITMQ_OUTBOUND_FIELD_QUEUE, functools.partial( store_all_msgs_in_context, context=context, expected_msg_count=1)) field_msg = context.messages_received[0] test_helper.assertEqual(field_msg['actionInstruction'], 'CREATE') test_helper.assertFalse(field_msg['secureEstablishment'])
def uac_updated_with_active_set_to_false_for_all_original_uacs(context): uac_updated_events = get_uac_updated_events( context, len(context.bulk_deactivate_uac)) for uac_updated in uac_updated_events: test_helper.assertFalse(uac_updated['payload']['uac']['active']) context.bulk_deactivate_uac.remove( uac_updated['payload']['uac']['questionnaireId']) test_helper.assertEqual( len(context.bulk_deactivate_uac), 0, "Expected to be empty after matching UAC_UPDATED events emitted")
def check_case_updated_event(context): context.case_updated_events = get_case_updated_events(context, 1) collection_case = context.case_updated_events[0]['payload']['collectionCase'] test_helper.assertIn(collection_case['id'], context.rm_case_updated['caseId']) test_helper.assertEqual(collection_case['treatmentCode'], context.rm_case_updated['treatmentCode']) test_helper.assertEqual(collection_case['address']['estabType'], context.rm_case_updated['estabType']) test_helper.assertEqual(collection_case['oa'], context.rm_case_updated['oa']) test_helper.assertEqual(collection_case['lsoa'], context.rm_case_updated['lsoa']) test_helper.assertEqual(collection_case['msoa'], context.rm_case_updated['msoa']) test_helper.assertEqual(collection_case['lad'], context.rm_case_updated['lad']) test_helper.assertEqual(collection_case['fieldCoordinatorId'], context.rm_case_updated['fieldCoordinatorId']) test_helper.assertEqual(collection_case['fieldOfficerId'], context.rm_case_updated['fieldOfficerId']) test_helper.assertEqual(collection_case['address']['latitude'], context.rm_case_updated['latitude']) test_helper.assertEqual(collection_case['address']['longitude'], context.rm_case_updated['longitude']) test_helper.assertFalse(collection_case['skeleton'], 'Skeleton flag should be removed from updated case')
def only_unrefused_cases_are_sent_to_field(context): context.expected_cases_for_action = [ case_created['payload']['collectionCase'] for case_created in context.case_created_events if case_created['payload']['collectionCase']['id'] != context.refused_case_id ] context.fieldwork_case_ids = [ case['id'] for case in context.expected_cases_for_action ] start_listening_to_rabbit_queue( Config.RABBITMQ_OUTBOUND_FIELD_QUEUE, functools.partial(fieldwork_create_message_callback, context=context)) test_helper.assertFalse( context.expected_cases_for_action, msg="Didn't find all expected fieldwork action instruction messages")
def check_address_valid_case_updated_events(context): address_valid_case_ids = [ case_id['CASE_ID'] for case_id in context.bulk_uninvalidated_addresses ] context.case_updated_events = get_case_updated_events( context, len(address_valid_case_ids)) test_helper.assertEqual(len(context.case_updated_events), len(context.bulk_uninvalidated_addresses)) for event in context.case_updated_events: test_helper.assertFalse( event['payload']['collectionCase']['addressInvalid'], 'Address invalid flag must be "False" on all updated events') test_helper.assertIn(event['payload']['collectionCase']['id'], address_valid_case_ids, 'Unexpected case ID found on updated event') context.bulk_uninvalidated_addresses_file.unlink() if Config.BULK_UNINVALIDATED_ADDRESS_BUCKET_NAME: clear_bucket(Config.BULK_UNINVALIDATED_ADDRESS_BUCKET_NAME)
def _check_emitted_action_instructions(context, filter_column, treatment_code, expected_ce1_complete): context.expected_cases_for_action = [ case_created['payload']['collectionCase'] for case_created in context.case_created_events if case_created['payload']['collectionCase'][filter_column] == treatment_code ] context.fieldwork_case_ids = [ case['id'] for case in context.expected_cases_for_action ] context.expected_ce1_complete = expected_ce1_complete start_listening_to_rabbit_queue( Config.RABBITMQ_OUTBOUND_FIELD_QUEUE, functools.partial(fieldwork_create_message_callback, context=context)) test_helper.assertFalse( context.expected_cases_for_action, msg="Didn't find all expected fieldwork action instruction messages")
def fwmt_update_message_sent_for_first_case(context): context.expected_cases_for_action = [ event['payload']['collectionCase'] for event in context.case_updated_events if (event['payload']['collectionCase']['address']['estabType'] != "TRANSIENT PERSONS" and (event['payload']['collectionCase']['address']['addressType'] != 'CE' or event['payload']['collectionCase']['address']['region'][0] != 'N') ) ] context.fieldwork_case_ids = [ case['id'] for case in context.expected_cases_for_action ] start_listening_to_rabbit_queue( Config.RABBITMQ_OUTBOUND_FIELD_QUEUE, functools.partial(field_work_update_callback, context=context)) test_helper.assertFalse( context.expected_cases_for_action, msg="Didn't find all expected fieldwork action instruction messages")
def check_message_redelivery_rate(context): time.sleep(2) # Wait a couple of seconds for all hell to break loose v_host = urllib.parse.quote(Config.RABBITMQ_VHOST, safe='') response = requests.get( f'http://{Config.RABBITMQ_HOST}:{Config.RABBITMQ_HTTP_PORT}/api/queues/{v_host}/Case.Responses', auth=HTTPBasicAuth(Config.RABBITMQ_USER, Config.RABBITMQ_PASSWORD)) response.raise_for_status() queue_details = response.json() redeliver_rate = queue_details.get('message_stats', {}).get('redeliver_details', {}).get('rate') test_helper.assertFalse(redeliver_rate, "Redeliver rate should be zero") response = requests.get( f'http://{Config.RABBITMQ_HOST}:{Config.RABBITMQ_HTTP_PORT}/api/queues/{v_host}/FieldworkAdapter.caseUpdated', auth=HTTPBasicAuth(Config.RABBITMQ_USER, Config.RABBITMQ_PASSWORD)) response.raise_for_status() queue_details = response.json() redeliver_rate = queue_details.get('message_stats', {}).get('redeliver_details', {}).get('rate') test_helper.assertFalse(redeliver_rate, "Redeliver rate should be zero")
def check_the_uninvalidated_cases_via_case_api(context): for row in context.bulk_uninvalidated_addresses: actual_case = get_case_and_case_events_by_case_id(row['CASE_ID']) test_helper.assertFalse(actual_case['addressInvalid'])
def check_address_update_case_updated_events(context): address_update_case_ids = set(row['CASE_ID'] for row in context.bulk_address_updates) context.case_updated_events = get_case_updated_events( context, len(address_update_case_ids)) test_helper.assertEqual(len(context.case_updated_events), len(context.bulk_address_updates)) for event in context.case_updated_events: collection_case = event['payload']['collectionCase'] test_helper.assertIn(collection_case['id'], address_update_case_ids, 'Unexpected case ID found on updated event') test_helper.assertEqual( collection_case['treatmentCode'], context.bulk_address_updates[0]['TREATMENT_CODE']) test_helper.assertEqual(collection_case['address']['estabType'], context.bulk_address_updates[0]['ESTAB_TYPE']) test_helper.assertEqual(collection_case['oa'], context.bulk_address_updates[0]['OA']) test_helper.assertEqual(collection_case['lsoa'], context.bulk_address_updates[0]['LSOA']) test_helper.assertEqual(collection_case['msoa'], context.bulk_address_updates[0]['MSOA']) test_helper.assertEqual(collection_case['lad'], context.bulk_address_updates[0]['LAD']) test_helper.assertEqual( collection_case['fieldCoordinatorId'], context.bulk_address_updates[0]['FIELDCOORDINATOR_ID']) test_helper.assertEqual( collection_case['fieldOfficerId'], context.bulk_address_updates[0]['FIELDOFFICER_ID']) test_helper.assertEqual(collection_case['address']['latitude'], context.bulk_address_updates[0]['LATITUDE']) test_helper.assertEqual(collection_case['address']['longitude'], context.bulk_address_updates[0]['LONGITUDE']) test_helper.assertTrue( collection_case['metadata']['secureEstablishment'], 'Secure flag should be changed to true') test_helper.assertEqual(collection_case['printBatch'], context.bulk_address_updates[0]['PRINT_BATCH']) test_helper.assertEqual( collection_case['ceExpectedCapacity'], int(context.bulk_address_updates[0]['CE_EXPECTED_CAPACITY'])) test_helper.assertEqual( collection_case['htcWillingness'], context.bulk_address_updates[0]['HTC_WILLINGNESS']) test_helper.assertEqual(collection_case['htcDigital'], context.bulk_address_updates[0]['HTC_DIGITAL']) test_helper.assertEqual(collection_case['address']['uprn'], context.bulk_address_updates[0]['UPRN']) test_helper.assertEqual(collection_case['address']['estabUprn'], context.bulk_address_updates[0]['ESTAB_UPRN']) test_helper.assertEqual( collection_case['address']['addressLine1'], context.bulk_address_updates[0]['ADDRESS_LINE1']) test_helper.assertEqual( collection_case['address']['addressLine2'], context.bulk_address_updates[0]['ADDRESS_LINE2']) test_helper.assertEqual( collection_case['address']['addressLine3'], context.bulk_address_updates[0]['ADDRESS_LINE3']) test_helper.assertEqual(collection_case['address']['abpCode'], context.bulk_address_updates[0]['ABP_CODE']) test_helper.assertEqual( collection_case['address']['organisationName'], context.bulk_address_updates[0]['ORGANISATION_NAME']) test_helper.assertEqual(collection_case['address']['postcode'], context.bulk_address_updates[0]['POSTCODE']) test_helper.assertEqual(collection_case['address']['townName'], context.bulk_address_updates[0]['TOWN_NAME']) test_helper.assertFalse( collection_case['skeleton'], 'Skeleton flag should be removed from updated case') context.bulk_address_updates_file.unlink() if Config.BULK_ADDRESS_UPDATE_BUCKET_NAME: clear_bucket(Config.BULK_ADDRESS_UPDATE_BUCKET_NAME)
def check_uac_updated_msg_sets_receipted_qid_to_unactive(context): uac = _get_emitted_uac(context) test_helper.assertEqual(uac['caseId'], context.receipting_case['id']) test_helper.assertEquals(uac['questionnaireId'], context.qid_to_receipt) test_helper.assertFalse(uac['active'])
def uac_updated_msg_emitted(context): emitted_uac = _get_emitted_uac(context) test_helper.assertEqual(emitted_uac['caseId'], context.first_case['id']) test_helper.assertFalse(emitted_uac['active'], 'The UAC_UPDATED message should active flag "false"')
def check_ccs_case_not_receipted(context): ccs_case = get_case_details_by_case_id(context.ccs_case['id']) test_helper.assertFalse( ccs_case['receiptReceived'], 'Receipt received flag on the CCS case should be false')