Esempio n. 1
0
def case_updated_msg_with_metadata_field(context, field, expected_field_value):
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_CASE_QUEUE,
        functools.partial(store_first_message_in_context, context=context))
    test_helper.assertEqual(
        context.first_message['payload']['metadata'][field],
        expected_field_value)
Esempio n. 2
0
def gather_welsh_reminder_uac_events(context, number_of_matching_cases):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
        functools.partial(
            store_all_uac_updated_msgs_by_collection_exercise_id,
            context=context,
            expected_msg_count=number_of_matching_cases * 2,
            collection_exercise_id=context.collection_exercise_id))
    test_helper.assertEquals(len(context.messages_received),
                             number_of_matching_cases * 2)
    context.reminder_uac_updated_events = context.messages_received.copy()
    qids = [
        uac_updated['payload']['uac']['questionnaireId']
        for uac_updated in context.reminder_uac_updated_events
    ]
    test_helper.assertEqual(
        len([qid for qid in qids
             if qid.startswith('02')]), number_of_matching_cases,
        (f'Expected to find an "02" questionnaire type QID '
         f'for each of the {number_of_matching_cases} cases, found {qids}'))
    test_helper.assertEqual(
        len([qid for qid in qids
             if qid.startswith('03')]), number_of_matching_cases,
        (f'Expected to find an "03" questionnaire type QID '
         f'for each of the {number_of_matching_cases} cases, found {qids}'))
    context.reminder_case_ids = {
        uac['payload']['uac']['caseId']
        for uac in context.reminder_uac_updated_events
    }
    context.messages_received = []
def action_cancel_sent_to_fwm(context, address_type):
    context.messages_received = []
    start_listening_to_rabbit_queue(Config.RABBITMQ_OUTBOUND_FIELD_QUEUE, functools.partial(
        field_work_cancel_callback, context=context))

    test_helper.assertEqual(context.fwmt_emitted_case_id, context.first_case["id"])
    test_helper.assertEqual(context.addressType, address_type)
    test_helper.assertEqual(context.field_action_cancel_message['surveyName'], context.first_case['survey'])
def listen_for_ad_hoc_uac_updated_message(context, questionnaire_type):
    context.messages_received = []
    start_listening_to_rabbit_queue(Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
                                    functools.partial(store_all_uac_updated_msgs,
                                                      context=context))
    uac_updated_event = context.messages_received[0]
    context.requested_uac = uac_updated_event['payload']['uac']['uac']
    context.requested_qid = uac_updated_event['payload']['uac']['questionnaireId']
def check_uac_message_is_received(context):
    context.messages_received = []
    context.expected_message_received = False
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
        functools.partial(_uac_callback, context=context))

    test_helper.assertTrue(context.expected_message_received)
Esempio n. 6
0
def refusal_received(context):
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_OUTBOUND_FIELD_QUEUE,
        functools.partial(field_work_cancel_callback, context=context))

    test_helper.assertEqual(context.fwmt_emitted_case_id,
                            context.refused_case_id)
    test_helper.assertEqual(context.addressType, 'HH')
def send_supplementary_materials_fulfilment_requested_event(
        context, fulfilment_code):
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_CASE_QUEUE,
        functools.partial(store_first_message_in_context,
                          context=context,
                          type_filter='CASE_CREATED'))
    context.case_created_events = [context.first_message]
    send_print_fulfilment_request(context, fulfilment_code)
Esempio n. 8
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")
Esempio n. 9
0
def check_case_created_message_is_emitted(context):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_CASE_QUEUE,
        functools.partial(store_first_message_in_context, context=context))
    test_helper.assertEqual(
        context.first_message['payload']['collectionCase']['id'],
        context.case_id)
    context.case_created_events = [context.first_message]
Esempio n. 10
0
def action_request_event_sent_to_fwm(context):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_OUTBOUND_FIELD_QUEUE,
        functools.partial(_field_work_receipt_callback, context=context))

    test_helper.assertEqual(context.fwmt_emitted_case_id,
                            context.first_case["id"])
    test_helper.assertEqual(context.addressType, 'HH')
    test_helper.assertEqual(context.fwmt_emitted_undelivered_flag, True)
Esempio n. 11
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'])
Esempio n. 12
0
def get_case_created_events(context, expected_number):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_CASE_QUEUE,
        functools.partial(
            store_all_case_created_msgs_by_collection_exercise_id,
            context=context,
            expected_msg_count=expected_number,
            collection_exercise_id=context.collection_exercise_id))
    return context.messages_received.copy()
Esempio n. 13
0
def get_last_uac_updated_event(context):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
        functools.partial(
            store_all_uac_updated_msgs_by_collection_exercise_id,
            context=context,
            expected_msg_count=1,
            collection_exercise_id=context.collection_exercise_id))
    context.last_uac_updated_event = context.messages_received[0]
    context.messages_received = []
def _get_emitted_uac(context):
    context.messages_received = []
    start_listening_to_rabbit_queue(Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
                                    functools.partial(
                                        store_all_msgs_in_context, context=context,
                                        expected_msg_count=1,
                                        type_filter='UAC_UPDATED'))

    test_helper.assertEqual(len(context.messages_received), 1)

    return context.messages_received[0]['payload']['uac']
def check_message_to_field_for_ccs_case(context, action_instruction_type):
    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))

    msg_to_field = context.messages_received[0]
    test_helper.assertEquals(msg_to_field['caseId'], context.ccs_case['id'])
    test_helper.assertEquals(msg_to_field['actionInstruction'], action_instruction_type)
    test_helper.assertEqual(msg_to_field['surveyName'], context.ccs_case['surveyType'])
Esempio n. 16
0
def get_case_updated_events(context, expected_number):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_CASE_QUEUE,
        functools.partial(store_all_msgs_in_context,
                          context=context,
                          expected_msg_count=expected_number,
                          type_filter='CASE_UPDATED'))
    case_updated_events = context.messages_received.copy()
    context.messages_received = []
    return case_updated_events
Esempio n. 17
0
def create_msg_sent_to_field(context):
    context.messages_received = []
    start_listening_to_rabbit_queue(Config.RABBITMQ_OUTBOUND_FIELD_QUEUE, functools.partial(
        _field_work_create_callback, context=context))

    test_helper.assertEqual(context.fwmt_emitted_case_id, context.case_id)
    test_helper.assertEqual(context.addressType, "SPG")
    test_helper.assertEqual(context.field_action_create_message['surveyName'], "CENSUS")
    test_helper.assertEqual(context.field_action_create_message['uprn'],
                            f"999{context.field_action_create_message['caseRef']}")
    test_helper.assertEqual(context.field_action_create_message['estabUprn'],
                            "77469066363")  # original estabUprn should be retained
Esempio n. 18
0
def get_qid_and_uac_from_emitted_child_uac(context):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
        functools.partial(
            store_all_uac_updated_msgs_by_collection_exercise_id,
            context=context,
            expected_msg_count=1,
            collection_exercise_id=context.collection_exercise_id))

    return context.messages_received[0]['payload']['uac'][
        'uac'], context.messages_received[0]['payload']['uac'][
            'questionnaireId']
Esempio n. 19
0
def check_survey_launched_case_updated_events(context, case_ids):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_CASE_QUEUE,
        functools.partial(store_all_msgs_in_context,
                          context=context,
                          expected_msg_count=len(case_ids),
                          type_filter='CASE_UPDATED'))
    for message in context.messages_received:
        test_helper.assertTrue(
            message['payload']['collectionCase']['surveyLaunched'],
            (f'Expected to find {len(case_ids)} CASE_UPDATED events as a result of survey launches '
             f'found event with "surveyLaunched"=False, cases expected={case_ids}'
             ))
        test_helper.assertIn(message['payload']['collectionCase']['id'],
                             case_ids, 'Found event for unexpected case')
def check_receipt_to_field_msg(context, action_instruction_type):
    if action_instruction_type == 'NONE':
        check_no_msgs_sent_to_queue(context, Config.RABBITMQ_OUTBOUND_FIELD_QUEUE, functools.partial(
            store_all_msgs_in_context, context=context,
            expected_msg_count=0), timeout=1)
        return

    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))

    msg_to_field = context.messages_received[0]
    test_helper.assertEquals(msg_to_field['caseId'], context.receipting_case['id'])
    test_helper.assertEquals(msg_to_field['actionInstruction'], action_instruction_type)
    test_helper.assertEqual(msg_to_field['surveyName'], context.receipting_case['survey'])
Esempio n. 21
0
def get_and_test_case_and_uac_msgs_are_correct(context, questionnaire_types):
    get_and_check_sample_load_case_created_messages(context)

    context.expected_uacs_cases = get_extended_case_created_events_for_uacs(
        context, questionnaire_types)
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
        functools.partial(
            store_all_uac_updated_msgs_by_collection_exercise_id,
            context=context,
            expected_msg_count=len(context.expected_uacs_cases),
            collection_exercise_id=context.collection_exercise_id))
    test_helper.assertEqual(len(context.messages_received),
                            len(context.expected_uacs_cases))
    context.uac_created_events = context.messages_received.copy()
    test_uacs_correct(context)
    context.messages_received = []
Esempio n. 22
0
def check_correct_individual_uac_updated_message_is_emitted(context):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
        functools.partial(store_all_uac_updated_msgs_by_collection_exercise_id,
                          context=context,
                          expected_msg_count=1,
                          collection_exercise_id=Config.CCS_COLLEX_ID))

    uac_updated_payload = context.messages_received[0]['payload']['uac']
    test_helper.assertEqual(
        uac_updated_payload['caseId'], context.ccs_case['id'],
        'UAC updated event case ID does not match the case it was requested for'
    )
    test_helper.assertEqual(
        uac_updated_payload['questionnaireId'],
        context.expected_questionnaire_id,
        'The QID on the emitted UAC_UPDATED message does not match expected')
Esempio n. 23
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")
Esempio n. 24
0
def check_correct_uac_updated_message_is_emitted_for_rops_link(context):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
        functools.partial(
            store_all_uac_updated_msgs_by_collection_exercise_id,
            context=context,
            expected_msg_count=1,
            collection_exercise_id=context.collection_exercise_id))

    uac_updated_payload = context.messages_received[0]['payload']['uac']
    test_helper.assertEqual(
        uac_updated_payload['caseId'], context.case_details['id'],
        'UAC updated event case ID does not match the case it was requested for'
    )
    test_helper.assertEqual(
        uac_updated_payload['questionnaireId'], context.requested_qid,
        'UAC updated event QID does not match what was submitted to R-ops')
def listen_for_two_ad_hoc_uac_updated_messages(context, questionnaire_type):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
        functools.partial(
            store_all_uac_updated_msgs_by_collection_exercise_id,
            context=context,
            expected_msg_count=2,
            collection_exercise_id=context.collection_exercise_id))
    uac_updated_events = context.messages_received

    test_helper.assertEqual(
        len(uac_updated_events), len(context.print_cases),
        'UAC Updated Events does not match number of Case Created Events')

    context.requested_uac_and_qid = []

    for uac in uac_updated_events:
        compare_case_and_uac(context, questionnaire_type, uac)
def check_correct_ccs_actioninstruction_sent_to_fwmt(context):
    context.messages_received = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_OUTBOUND_FIELD_QUEUE,
        functools.partial(_field_callback, context=context))

    action_instruction = context.emitted_action_instruction

    test_helper.assertEqual(context.ccs_case['id'],
                            action_instruction['caseId'])
    test_helper.assertEqual(float(context.ccs_case['latitude']),
                            action_instruction['latitude'])
    test_helper.assertEqual(float(context.ccs_case['longitude']),
                            action_instruction['longitude'])
    test_helper.assertEqual(context.ccs_case['postcode'],
                            action_instruction['postcode'])
    test_helper.assertEqual('CCS', action_instruction['surveyName'])
    test_helper.assertEqual(context.ccs_case['estabType'],
                            action_instruction['estabType'])
Esempio n. 27
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")
Esempio n. 28
0
def gather_ce_estab_messages_emitted_with_qids(context, questionnaire_types):
    expected_number_of_uac_messages = 0
    for case in context.case_created_events:
        expected_number_of_uac_messages += case['payload']['collectionCase'][
            'ceExpectedCapacity']
    context.expected_uacs_cases = get_extended_case_created_events_for_uacs(
        context, questionnaire_types)
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_RH_OUTBOUND_UAC_QUEUE,
        functools.partial(
            store_all_uac_updated_msgs_by_collection_exercise_id,
            context=context,
            expected_msg_count=expected_number_of_uac_messages,
            collection_exercise_id=context.collection_exercise_id))
    test_helper.assertEqual(len(context.messages_received),
                            expected_number_of_uac_messages)
    context.uac_created_events = context.messages_received.copy()
    test_uacs_correct_for_estab_units(context, expected_number_of_uac_messages,
                                      questionnaire_types)
    context.messages_received = []
Esempio n. 29
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")
Esempio n. 30
0
def mark_cases_as_invalid(context):
    invalid_address_case_ids = [
        case['payload']['collectionCase']['id']
        for case in context.case_created_events
    ]

    for case_id in invalid_address_case_ids:
        send_invalid_address_message_to_rabbit(case_id, "CC")

    case_updated_events = get_case_updated_events(
        context, len(context.case_created_events))
    for event in case_updated_events:
        test_helper.assertIn(event['payload']['collectionCase']['id'],
                             invalid_address_case_ids,
                             'Unexpected case ID found on updated event')
    context.cancels_to_ignore = []
    start_listening_to_rabbit_queue(
        Config.RABBITMQ_OUTBOUND_FIELD_QUEUE,
        functools.partial(ignore_field_cancel_msgs,
                          context=context,
                          expected_msg_count=len(case_updated_events)))