コード例 #1
0
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'])
コード例 #2
0
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))
コード例 #4
0
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')
コード例 #6
0
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'])
コード例 #7
0
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')
コード例 #9
0
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")
コード例 #10
0
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)
コード例 #11
0
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")
コード例 #12
0
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")
コード例 #14
0
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'])
コード例 #15
0
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)
コード例 #16
0
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'])
コード例 #17
0
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"')
コード例 #18
0
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')