Пример #1
0
def test_classification_search_given_raw_data_returns_data_for_builders_v2():
    # Given
    # a classification search with a simple classifications
    standardiser = pet_standardiser()
    classification_collection = ethnicity_classification_collection_from_classification_list(
        [ethnicity_classification_with_cats_and_dogs_data()])
    classification_finder = EthnicityClassificationFinder(
        standardiser, classification_collection)

    # When
    # we search with data that will fit the classification
    raw_values = ["FELINE", "Canine  "]
    search_outputs = classification_finder.find_classifications(raw_values)

    # Then
    # we expect the data section will contain data needed to display
    first_classification_data = search_outputs[0]["data"]
    expected = [
        {
            "raw_value": "FELINE",
            "standard_value": "Cat",
            "display_value": "Cat",
            "parent": "Cat",
            "order": 1
        },
        {
            "raw_value": "Canine  ",
            "standard_value": "Dog",
            "display_value": "Dog",
            "parent": "Dog",
            "order": 2
        },
    ]

    assert expected == first_classification_data
def ethnicity_classification_finder_from_data(standardiser_data,
                                              classification_collection_data):
    standardiser = ethnicity_standardiser_from_data(standardiser_data)
    classification_collection = ethnicity_classification_collection_from_data(
        classification_collection_data)

    return EthnicityClassificationFinder(standardiser,
                                         classification_collection)
def ethnicity_classification_finder_from_file(standardiser_file,
                                              classification_collection_file):
    standardiser = ethnicity_standardiser_from_file(standardiser_file)
    ethnicity_classification_collection = ethnicity_classification_collection_from_file(
        classification_collection_file)

    return EthnicityClassificationFinder(standardiser,
                                         ethnicity_classification_collection)
def test_classification_search_given_raw_data_returns_only_output_for_valid_classifications():
    # Given
    # a classification search with multiple classifications
    standardiser = pet_standardiser()
    classification_collection = ethnicity_classification_collection_from_classification_list(
        [
            ethnicity_classification_with_required_fish_and_mammal_data(),
            ethnicity_classification_with_required_fish_cat_and_dog_data(),
        ]
    )
    classification_finder = EthnicityClassificationFinder(standardiser, classification_collection)

    # When
    # we search with data that will fit only one classification
    raw_values = ["Cat", "Dog", "Fish"]
    search_outputs = classification_finder.find_classifications(raw_values)

    # Then
    # we expect output from one classification will be returned (plus the custom classification)
    assert 2 == len(search_outputs)