def adapt_openstates_legislator(api_data): """Return legislator data adapted to match Legislator model. Translate key names and casting data to match Legislator model. """ adapted_data = deepcopy(api_data) # Update fields that require pre-processing before deserialization. adapted_data['openstates_updated_at'] = parse_datetime(adapted_data.pop('updated_at')) adapted_data['openstates_leg_id'] = adapted_data.pop('leg_id') adapted_data['district'] = int(adapted_data.pop('district')) adapted_data['party'] = party_enum(adapted_data.get('party')).value return adapted_data
def adapt_openstates_legislator(api_data): """Return legislator data adapted to match Legislator model. Translate key names and casting data to match Legislator model. """ adapted_data = deepcopy(api_data) # Update fields that require pre-processing before deserialization. adapted_data['openstates_leg_id'] = adapted_data['id'] adapted_data['name'] = adapted_data['name'] adapted_data['first_name'] = adapted_data['givenName'] adapted_data['last_name'] = adapted_data['familyName'] adapted_data['openstates_updated_at'] = parse_datetime( adapted_data['updatedAt']) adapted_data['party'] = party_enum( adapted_data['party'][0]['organization']['name']).value adapted_data['district'] = int(adapted_data['chamber'][0]['post']['label']) adapted_data['url'] = adapted_data['links'][0]['url'] adapted_data['chamber'] = adapted_data['chamber'][0]['organization'][ 'name'] adapted_data['photo_url'] = adapted_data['image'] return adapted_data
def test_mixed_case_republican_input(self): assert utils.party_enum('RePubLiCan') == constants.Party.REPUBLICAN
def test_non_party_input(self): with mock.patch.object(utils, 'log') as log: assert utils.party_enum('not a real party') is None log.warn.assert_called_once_with( "Could not determine party from 'not a real party'")
def test_republican_input(self): assert utils.party_enum('republican') == constants.Party.REPUBLICAN
def test_letter_r_input(self): assert utils.party_enum('R') == constants.Party.REPUBLICAN
def test_letter_i_input(self): assert utils.party_enum('I') == constants.Party.INDEPENDENT
def test_mixed_case_independent_input(self): assert utils.party_enum('InDePenDenT') == constants.Party.INDEPENDENT
def test_independent_input(self): assert utils.party_enum('independent') == constants.Party.INDEPENDENT
def test_mixed_case_democrat_input(self): assert utils.party_enum('DeMocRatiC') == constants.Party.DEMOCRATIC
def test_letter_d_input(self): assert utils.party_enum('D') == constants.Party.DEMOCRATIC
def test_democratic_input(self): assert utils.party_enum('democratic') == constants.Party.DEMOCRATIC
def test_null_input(self): assert utils.party_enum(None) == constants.Party.UNKNOWN