def test_make_prereq_blob_competency():
    df = pd.DataFrame({"HS diploma required?": ["No"], "Eligible groups": ["Veteran"]})
    transformer = PathwaysTransformer(dataframe=df)
    row = df.iloc[0]

    results = transformer._make_prereq_blob(row)

    assert (
        results["competency_required"]
        == "Must belong to one or more of the following group(s): Veteran"
    )
    assert "credential_category" not in results
def test_filter_non_pathways_programs():
    df = pd.DataFrame(
        {
            "Program Name": ["Technical Academy Program", "Sales Leadership"],
            "Should this program be available in Google Pathways?": ["Yes", "No"],
        }
    )
    transformer = PathwaysTransformer(dataframe=df)

    filtered_df = transformer._filter_non_pathways_programs()

    assert len(transformer.dataframe) == 2
    assert len(filtered_df) == 1
def test_make_address_blob_for_multiple_addresses_with_pipe():
    df = pd.DataFrame(
        {
            "Organization Address": ["234 Mulberry Street, Chicago IL 74444"],
            "Program Address (if different from organization address)": [
                "111 Grickle Grass Lane, Springfield MA 88884 | 3344 Lifted Lorax Street, Chicago IL 88884"
            ],
        }
    )
    transformer = PathwaysTransformer(dataframe=df)
    row = df.iloc[0]

    results = transformer._make_address_blob(row)
    expected_results = [
        {
            "street_address": "234 Mulberry Street",
            "address_locality": "Chicago",
            "address_region": "IL",
            "address_country": "US",
            "postal_code": "74444",
        },
        {
            "street_address": "111 Grickle Grass Lane",
            "address_locality": "Springfield",
            "address_region": "MA",
            "address_country": "US",
            "postal_code": "88884",
        },
        {
            "street_address": "3344 Lifted Lorax Street",
            "address_locality": "Chicago",
            "address_region": "IL",
            "address_country": "US",
            "postal_code": "88884",
        },
    ]

    assert len(results) == 3
    assert expected_results == results
def test_make_address_blob_for_provider():
    df = pd.DataFrame(
        {
            "Organization Address": ["111 Grickle Grass Lane, Springfield MA 88884"],
            "Program Address (if different from organization address)": [""],
        }
    )
    transformer = PathwaysTransformer(dataframe=df)
    row = df.iloc[0]

    results = transformer._make_address_blob(row)
    expected_results = [
        {
            "street_address": "111 Grickle Grass Lane",
            "address_locality": "Springfield",
            "address_region": "MA",
            "address_country": "US",
            "postal_code": "88884",
        }
    ]

    assert len(results) == 1
    assert expected_results == results
def test_convert_duration_to_isoformat(input, expected_output):
    transformer = PathwaysTransformer(dataframe=pd.DataFrame({}))
    output = transformer._convert_duration_to_isoformat(input)

    assert output == expected_output
示例#6
0
    opt_out = OptOut(google_sheet_as_list=sheet_as_list,
                     programs_table=programs_table,
                     engine=engine)
    deleted_records = opt_out.remove_deleted_programs()
    logger.info(
        f"----Deleted {len(deleted_records)} records from the Pathways database. {' '.join(deleted_records)}"
    )
    opt_out_records = opt_out.remove_programs_not_marked_for_pathways()

    logger.info(
        f"----Found {len(opt_out_records)} records that 'opt-out' of Pathways. {' '.join(opt_out_records)}"
    )

    dataframe = DataframeTransformer(sheet=sheet_as_list,
                                     engine=engine).transform()
    logger.info(
        f"----Initial transformation complete: {len(dataframe)} records prepped for PathwaysTransformer."
    )

    pathways_dataframe = PathwaysTransformer(
        dataframe=dataframe).pathways_transform()
    logger.info(
        f"----Pathways transformation complete: {len(pathways_dataframe)} records prepped for loading."
    )

    loader = Loader(engine=engine)
    loader.load_data(dataframe=pathways_dataframe,
                     metadata_table=programs_table,
                     primary_key="id")
    logger.info("----Data loaded into Google Pathways API")