def test_print_tariffs(suppress, expected_result):
    application = mock.MagicMock(country_name='spain')
    document = Document(application)
    if suppress is None:
        document.commodity_list = []
    else:
        commodity = QuotaCommodity('124567890', None)
        commodity.suppress = suppress
        commodity.duty_string = 'Test duty string<w:r><w:br/></w:r>'
        document.commodity_list = [commodity]
    actual_result = document.print_tariffs()
    assert actual_result == expected_result
def test_assign_measures_to_commodities(mock_combine_duties, commodity_list,
                                        measure_list,
                                        expected_assigned_measure):
    mock_combine_duties.return_value = None
    application = mock.MagicMock(country_name='spain')
    document = Document(application)

    commodity_list = [
        Commodity(commodity_code) for commodity_code in commodity_list
    ]
    measure_list = [
        get_measure(**measure_properties)
        for measure_properties in measure_list
    ]

    document.commodity_list = commodity_list
    document.measure_list = measure_list
    for commodity in commodity_list:
        assert commodity.measure_list == []

    document.assign_measures_to_commodities()
    for commodity in document.commodity_list:
        if expected_assigned_measure:
            assert len(commodity.measure_list) == 1
            # TODO: MPP not a very dynamic test as it makes assumptions. Consider a better way to assert
            assert commodity.measure_list[0].measure_sid == measure_list[
                0].measure_sid
        else:
            assert commodity.measure_list == []
def test_resolve_measures(mock_resolve_measures, commodity_list,
                          expected_resolve_measures_call_count):
    mock_resolve_measures.return_value = None
    application = mock.MagicMock(country_name='spain')
    document = Document(application)
    document.commodity_list = [
        Commodity(commodity_code) for commodity_code in commodity_list
    ]
    document.resolve_measures()
    assert mock_resolve_measures.call_count == expected_resolve_measures_call_count