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
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)
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)
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)