Esempio n. 1
0
    def test_resolve_field_mappings_value_requires_translation(
            self, mock_get_field_mappings, mock_value_requires_translation,
            mock_get_value_mappings, mock_is_field_required):
        get_field_mappings_return_value = OrderedDict()
        get_field_mappings_return_value[
            self.procedure_concept_id] = self.condition_concept_id
        get_field_mappings_return_value[
            self.procedure_type_concept_id] = self.condition_type_concept_id

        mock_get_field_mappings.return_value = get_field_mappings_return_value
        mock_value_requires_translation.side_effect = [True, True]
        mock_is_field_required.side_effect = [False, True]
        mock_get_value_mappings.return_value = dict()

        expected = ',\n\t'.join([
            domain_alignment.NULL_AS_DEST_FIELD.format(
                dest_field=self.procedure_concept_id),
            domain_alignment.ZERO_AS_DEST_FIELD.format(
                dest_field=self.procedure_type_concept_id)
        ])

        actual = domain_alignment.resolve_field_mappings(
            self.condition_table, self.procedure_table)

        self.assertEqual(
            re.sub(self.chars_to_replace, self.single_space, expected),
            re.sub(self.chars_to_replace, self.single_space, actual))
    def test_resolve_field_mappings(self, mock_get_field_mappings,
                                    mock_value_requires_translation,
                                    mock_get_value_mappings,
                                    mock_fetch_dummy_value):
        get_field_mappings_return_value = OrderedDict()
        get_field_mappings_return_value[
            self.procedure_concept_id] = self.condition_concept_id
        get_field_mappings_return_value[
            self.procedure_type_concept_id] = self.condition_type_concept_id

        mock_get_field_mappings.return_value = get_field_mappings_return_value
        mock_value_requires_translation.side_effect = [False, True]
        mock_get_value_mappings.return_value = {
            self.primary_procedure_concept_id:
            self.primary_condition_concept_id
        }
        mock_fetch_dummy_value.return_value = 0

        actual = domain_alignment.resolve_field_mappings(
            self.condition_table, self.procedure_table)

        select_field_1 = SRC_FIELD_AS_DEST_FIELD.format(
            src_field=self.condition_concept_id,
            dest_field=self.procedure_concept_id)

        select_field_2 = CASE_STATEMENT.format(
            src_field=self.condition_type_concept_id,
            statements=WHEN_STATEMENT.format(
                src_value=self.primary_condition_concept_id,
                dest_value=self.primary_procedure_concept_id),
            dummy_value=mock_fetch_dummy_value.return_value,
            dest_field=self.procedure_type_concept_id)

        expected = ',\n\t'.join([select_field_1, select_field_2])

        self.assertEqual(
            re.sub(self.chars_to_replace, self.single_space, expected),
            re.sub(self.chars_to_replace, self.single_space, actual))

        mock_get_field_mappings.assert_called_once_with(
            self.condition_table, self.procedure_table)

        mock_value_requires_translation.assert_any_call(
            self.condition_table, self.procedure_table,
            self.condition_concept_id, self.procedure_concept_id)
        mock_value_requires_translation.assert_any_call(
            self.condition_table, self.procedure_table,
            self.condition_type_concept_id, self.procedure_type_concept_id)

        mock_get_value_mappings.assert_called_once_with(
            self.condition_table, self.procedure_table,
            self.condition_type_concept_id, self.procedure_type_concept_id)

        self.assertEqual(mock_value_requires_translation.call_count, 2)
        self.assertEqual(mock_get_value_mappings.call_count, 1)