def test_add_framework_info_fails_on_non_404_error(mock_data_client):
    mock_data_client.get_supplier_framework_info.side_effect = HTTPError(Mock(status_code=400))

    framework_info_adder = export_g8_suppliers.add_framework_info(mock_data_client, 'framework-slug')

    with pytest.raises(HTTPError):
        framework_info_adder({'supplier_id': 1})
def test_add_framework_info_fails_if_incomplete_declaration_is_not_failed(mock_data_client):
    mock_data_client.get_supplier_framework_info.return_value = {
        'frameworkInterest': {'declaration': {'status': 'incomplete'}, 'onFramework': None}
    }

    framework_info_adder = export_g8_suppliers.add_framework_info(mock_data_client, 'framework-slug')

    with pytest.raises(AssertionError):
        framework_info_adder({'supplier_id': 1})
def test_add_framework_info(mock_data_client):
    mock_data_client.get_supplier_framework_info.side_effect = [
        {'frameworkInterest': {'declaration': {'status': 'complete'}, 'onFramework': True}},
        {'frameworkInterest': {'declaration': {'status': 'complete'}, 'onFramework': False}},
    ]

    framework_info_adder = export_g8_suppliers.add_framework_info(mock_data_client, 'framework-slug')
    records = [
        framework_info_adder({'supplier_id': 1}),
        framework_info_adder({'supplier_id': 2}),
    ]

    mock_data_client.get_supplier_framework_info.assert_has_calls([
        call(1, 'framework-slug'), call(2, 'framework-slug')
    ])
    assert records == [
        {'supplier_id': 1, 'declaration': {'status': 'complete'}, 'onFramework': True},
        {'supplier_id': 2, 'declaration': {'status': 'complete'}, 'onFramework': False},
    ]