def test_sync_new_legislator_without_leg_id_fails():
    data_with_invalid_id = data.get_sample_legislator_detail()
    data_with_invalid_id['leg_id'] = ''  # 'leg_id' is a required field.
    info = services.sync_new_legislator_data(data_with_invalid_id,
                                             commit=False)

    assert info.action == services.Action.FAILED
    assert 'openstates_leg_id' in info.error
Beispiel #2
0
    def test_update_legislator_instance(self):
        original = LegislatorFactory()
        original_id = original.id

        api_data = data.get_sample_legislator_detail()
        legislator = utils.update_legislator_instance(original, api_data)

        testing.assert_legislator_fields_match_data(legislator, api_data)
        assert legislator.id == original_id
def test_sync_existing_legislator_data_skips_old_data():
    instance = factories.LegislatorFactory.build()
    original_id = instance.id
    updated_at = utils.format_datetime(instance.openstates_updated_at -
                                       ONE_DAY)
    api_data = data.get_sample_legislator_detail(updated_at=updated_at)

    info = services.sync_existing_legislator_data(instance,
                                                  api_data,
                                                  commit=False)

    assert info.action == services.Action.SKIPPED
    assert info.instance.id == original_id
def test_sync_existing_legislator_data_updates_from_recently_updated_data():
    instance = factories.LegislatorFactory.build()
    original_id = instance.id
    updated_at = utils.format_datetime(instance.openstates_updated_at +
                                       ONE_DAY)
    api_data = data.get_sample_legislator_detail(updated_at=updated_at)

    info = services.sync_existing_legislator_data(instance,
                                                  api_data,
                                                  commit=False)

    assert info.action == services.Action.UPDATED
    assert_legislator_fields_match_data(info.instance, api_data)
    assert info.instance.id == original_id
def test_sync_new_legislator_data():
    api_data = data.get_sample_legislator_detail()
    info = services.sync_new_legislator_data(api_data, commit=False)

    assert info.action == services.Action.ADDED
    assert_legislator_fields_match_data(info.instance, api_data)
Beispiel #6
0
    def test_deserialize_with_missing_required_field_raises(self):
        api_data = data.get_sample_legislator_detail()
        del api_data['first_name']  # Delete required key, first_name

        with pytest.raises(ValidationError):
            legislator = utils.deserialize_openstates_legislator(api_data)
Beispiel #7
0
 def test_deserialize_from_openstates_sample(self):
     api_data = data.get_sample_legislator_detail()
     legislator = utils.deserialize_openstates_legislator(api_data,
                                                          commit=False)
     testing.assert_legislator_fields_match_data(legislator, api_data)