Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
 def test_mixed_case_republican_input(self):
     assert utils.party_enum('RePubLiCan') == constants.Party.REPUBLICAN
Ejemplo n.º 4
0
 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'")
Ejemplo n.º 5
0
 def test_republican_input(self):
     assert utils.party_enum('republican') == constants.Party.REPUBLICAN
Ejemplo n.º 6
0
 def test_letter_r_input(self):
     assert utils.party_enum('R') == constants.Party.REPUBLICAN
Ejemplo n.º 7
0
 def test_letter_i_input(self):
     assert utils.party_enum('I') == constants.Party.INDEPENDENT
Ejemplo n.º 8
0
 def test_mixed_case_independent_input(self):
     assert utils.party_enum('InDePenDenT') == constants.Party.INDEPENDENT
Ejemplo n.º 9
0
 def test_independent_input(self):
     assert utils.party_enum('independent') == constants.Party.INDEPENDENT
Ejemplo n.º 10
0
 def test_mixed_case_democrat_input(self):
     assert utils.party_enum('DeMocRatiC') == constants.Party.DEMOCRATIC
Ejemplo n.º 11
0
 def test_letter_d_input(self):
     assert utils.party_enum('D') == constants.Party.DEMOCRATIC
Ejemplo n.º 12
0
 def test_democratic_input(self):
     assert utils.party_enum('democratic') == constants.Party.DEMOCRATIC
Ejemplo n.º 13
0
 def test_null_input(self):
     assert utils.party_enum(None) == constants.Party.UNKNOWN