Skip to content

Commit ba02acb

Browse files
authored
Merge pull request #105 from z3c0/test (v1.0.9)
v1.0.9
2 parents 5f9a296 + 9fa114b commit ba02acb

File tree

10 files changed

+236
-161
lines changed

10 files changed

+236
-161
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,4 +119,6 @@ dmypy.json
119119

120120
# test files
121121
test.py
122-
script.py
122+
script.py
123+
*.json
124+
*.csv

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Vistos
22

3+
## (v1.0.8+) !!! GovInfo API functionality is currently disabled !!!
4+
### Due to recent changes in the GovInfo API, the Vistos GovInfo API components have become very unstable. Until a fix can be devised, the govinfo attributes on the Congress and CongressMember classes will be disabled.
5+
6+
***
7+
38
Vistos is a module for downloading data on U. S. politicians from public sources via HTTP. V's goal is to empower U. S. citizens by providing an easier route for accessing the information necessary to hold public officials more accountable.
49
This is to be accomplished by
510

tests/test_integration.py

Lines changed: 61 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
class VistosIntegrationTests(unittest.TestCase):
1010
"""End-to-end test cases"""
1111

12-
CURRENT_CONGRESS = 116
12+
CURRENT_CONGRESS = 117
1313
GOVINFO_API_KEY = config('GOVINFO_API_KEY')
1414

1515
def test_querying_members_by_name(self):
@@ -31,39 +31,39 @@ def test_querying_member_by_bioguide_id(self):
3131
member = v.CongressMember('p000612')
3232
self.assertEqual(member.bioguide_id, 'P000612')
3333

34-
def test_querying_member_govinfo(self):
35-
"""Validate that requesting GovInfo for a member works"""
36-
members = v.search_govinfo_members(self.GOVINFO_API_KEY,
37-
last_name='butterfield')
38-
39-
self.assertGreaterEqual(len(members), 2)
40-
41-
govinfo = None
42-
for member in members:
43-
if member.bioguide_id == 'B001199':
44-
self.assertIsNone(member.govinfo)
45-
46-
if member.bioguide_id == 'B001251':
47-
govinfo = member.govinfo
48-
49-
self.assertIsNotNone(govinfo)
50-
self.assertEqual(govinfo['collectionCode'], 'CDIR')
51-
self.assertEqual(govinfo['year'], '2014')
52-
53-
# Ol' Bill here was only a senator for 9 months, and died a month
54-
# after leaving office. He didn't serve a full term and died before
55-
# the term he was a part of completed. I only found out about him
56-
# because he broke the search_govinfo_members function.
57-
# No point to this story - I just thought it was interesting
58-
# --z3c0
59-
members = v.search_govinfo_members(self.GOVINFO_API_KEY,
60-
first_name='William Stanley',
61-
last_name='West',
62-
congress=63,
63-
position='Senator',
64-
state='GA')
34+
# def test_querying_member_govinfo(self):
35+
# """Validate that requesting GovInfo for a member works"""
36+
# members = v.search_govinfo_members(self.GOVINFO_API_KEY,
37+
# last_name='butterfield')
6538

66-
self.assertEqual(len(members), 1)
39+
# self.assertGreaterEqual(len(members), 2)
40+
41+
# govinfo = None
42+
# for member in members:
43+
# if member.bioguide_id == 'B001199':
44+
# self.assertIsNone(member.govinfo)
45+
46+
# if member.bioguide_id == 'B001251':
47+
# govinfo = member.govinfo
48+
49+
# self.assertIsNotNone(govinfo)
50+
# self.assertEqual(govinfo['collectionCode'], 'CDIR')
51+
# self.assertEqual(govinfo['year'], '2016')
52+
53+
# # Ol' Bill here was only a senator for 9 months, and died a month
54+
# # after leaving office. He didn't serve a full term and died before
55+
# # the term he was a part of completed. I only found out about him
56+
# # because he broke the search_govinfo_members function.
57+
# # No point to this story - I just thought it was interesting
58+
# # --z3c0
59+
# members = v.search_govinfo_members(self.GOVINFO_API_KEY,
60+
# first_name='William Stanley',
61+
# last_name='West',
62+
# congress=63,
63+
# position='Senator',
64+
# state='GA')
65+
66+
# self.assertEqual(len(members), 1)
6767

6868
def test_congress_member(self):
6969
"""Validate the CongressMember object"""
@@ -78,7 +78,7 @@ def test_congress_member(self):
7878

7979
member = v.CongressMember('B001251')
8080
member_name = f'{member.nickname} {member.last_name}'
81-
self.assertEqual(member_name, 'G. K. Butterfield')
81+
self.assertEqual(member_name, 'G.K. Butterfield')
8282

8383
member = v.CongressMember('J000120')
8484
full_name = f'{member.first_name} {member.last_name}, {member.suffix}'
@@ -103,13 +103,13 @@ def test_parameterless_congress_query(self):
103103
self.assertEqual(congress_a.end_year, congress_b.end_year)
104104
self.assertEqual(len(congress_a.bioguide), len(congress_b.bioguide))
105105

106-
def test_govinfo_congress_query(self):
107-
"""Validate requesting govinfo data with a Congress object"""
106+
# def test_govinfo_congress_query(self):
107+
# """Validate requesting govinfo data with a Congress object"""
108108

109-
congress = v.Congress(115, self.GOVINFO_API_KEY)
109+
# congress = v.Congress(115, self.GOVINFO_API_KEY)
110110

111-
self.assertEqual(congress.number, 115)
112-
self.assertIsNotNone(congress.govinfo)
111+
# self.assertEqual(congress.number, 115)
112+
# self.assertIsNotNone(congress.govinfo)
113113

114114
def test_continental_congress(self):
115115
"""Validate requests for Continental Congress data"""
@@ -158,27 +158,27 @@ def test_1988_congress(self):
158158
self.assertIsNotNone(congress.bioguide)
159159
self.assertIsNone(congress.govinfo)
160160

161-
def test_2001_congress(self):
162-
"""Validate the congress active in 2001"""
163-
congress = v.Congress(2001, self.GOVINFO_API_KEY, True)
161+
# def test_2001_congress(self):
162+
# """Validate the congress active in 2001"""
163+
# congress = v.Congress(2001, self.GOVINFO_API_KEY, True)
164164

165-
self.assertEqual(congress.number, 107)
166-
self.assertEqual(congress.start_year, 2001)
167-
self.assertEqual(congress.end_year, 2003)
168-
self.assertEqual(len(congress.members), 558)
169-
self.assertEqual(len(congress.bioguide.members), 552)
170-
self.assertEqual(len(congress.govinfo.members), 533)
165+
# self.assertEqual(congress.number, 107)
166+
# self.assertEqual(congress.start_year, 2001)
167+
# self.assertEqual(congress.end_year, 2003)
168+
# self.assertEqual(len(congress.members), 558)
169+
# self.assertEqual(len(congress.bioguide.members), 552)
170+
# self.assertEqual(len(congress.govinfo.members), 533)
171171

172-
self.assertIsNotNone(congress.bioguide)
173-
self.assertIsNotNone(congress.govinfo)
172+
# self.assertIsNotNone(congress.bioguide)
173+
# self.assertIsNotNone(congress.govinfo)
174174

175-
def test_dual_dataset(self):
176-
"""Validate requests for both Bioguide and GovInfo data"""
177-
congress = \
178-
v.Congress(115, self.GOVINFO_API_KEY, include_bioguide=True)
175+
# def test_dual_dataset(self):
176+
# """Validate requests for both Bioguide and GovInfo data"""
177+
# congress = \
178+
# v.Congress(115, self.GOVINFO_API_KEY, include_bioguide=True)
179179

180-
self.assertIsNotNone(congress.bioguide)
181-
self.assertIsNotNone(congress.govinfo)
180+
# self.assertIsNotNone(congress.bioguide)
181+
# self.assertIsNotNone(congress.govinfo)
182182

183183
def test_bioguide_query_object(self):
184184
"""Validate BioguideRetroQuery"""
@@ -187,11 +187,11 @@ def test_bioguide_query_object(self):
187187
self.assertEqual(query.last_name, 'wren')
188188
self.assertEqual(query.first_name, 'thomas')
189189

190-
def test_congress_bills(self):
191-
congress = v.Congress(105, self.GOVINFO_API_KEY)
192-
congress.load_bills()
193-
self.assertIsNotNone(congress.bills)
194-
self.assertEqual(len(congress.bills), 13126)
190+
# def test_congress_bills(self):
191+
# congress = v.Congress(105, self.GOVINFO_API_KEY)
192+
# congress.load_bills()
193+
# self.assertIsNotNone(congress.bills)
194+
# self.assertEqual(len(congress.bills), 13126)
195195

196196

197197
if __name__ == '__main__':

tests/test_unit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
random.seed(43)
1111

1212

13-
CURRENT_CONGRESS = 116
13+
CURRENT_CONGRESS = 117
1414
CURRENT_YEAR = datetime.datetime.now().year
1515
FIRST_VALID_YEAR = 1786
1616

vistos/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.0.3
1+
1.0.9

vistos/src/duo.py

Lines changed: 58 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def __str__(self):
9696
def load(self):
9797
"""Load both Bioguide and GovInfo data for the member"""
9898
self._load_bioguide()
99-
self._load_govinfo()
99+
# self._load_govinfo()
100100

101101
def update(self):
102102
"""Loads any datasets that have not been loaded"""
@@ -127,9 +127,6 @@ def _enable_govinfo(self, api_key):
127127
self._load_member_gi = \
128128
gpo.govinfo.create_member_cdir_func(api_key)
129129

130-
# def _enable_bills(self, api_key):
131-
# self._load_member_bills = None
132-
133130
@property
134131
def bioguide(self):
135132
"""returns Bioguide data as a `BioguideMemberRecord`"""
@@ -141,10 +138,11 @@ def bioguide(self):
141138
@property
142139
def govinfo(self):
143140
"""returns GovInfo data as a `dict`"""
144-
govinfo = None
145-
if hasattr(self, '_gi'):
146-
govinfo = self._gi
147-
return govinfo
141+
# govinfo = None
142+
# if hasattr(self, '_gi'):
143+
# govinfo = self._gi
144+
# return govinfo
145+
return None
148146

149147
@property
150148
def bills(self):
@@ -164,20 +162,20 @@ def bioguide(self, new_bioguide):
164162
else:
165163
raise gpo.InvalidBioguideError()
166164

167-
@govinfo.setter
168-
def govinfo(self, new_govinfo):
169-
try:
170-
_ = new_govinfo['members']
171-
_ = new_govinfo['members'][0]
172-
except (KeyError, IndexError, ValueError):
173-
raise gpo.InvalidGovInfoError()
165+
# @govinfo.setter
166+
# def govinfo(self, new_govinfo):
167+
# try:
168+
# _ = new_govinfo['members']
169+
# _ = new_govinfo['members'][0]
170+
# except (KeyError, IndexError, ValueError):
171+
# raise gpo.InvalidGovInfoError()
174172

175-
try:
176-
_ = new_govinfo['members'][0]['bioGuideId']
177-
except KeyError:
178-
self.complete_govinfo = False
173+
# try:
174+
# _ = new_govinfo['members'][0]['bioGuideId']
175+
# except KeyError:
176+
# self.complete_govinfo = False
179177

180-
self._gi = new_govinfo
178+
# self._gi = new_govinfo
181179

182180
@bills.setter
183181
def bills(self, member_bills):
@@ -386,7 +384,8 @@ def bioguide(self):
386384
def govinfo(self):
387385
"""returns GovInfo Congressional Directory data as a
388386
`GovInfoCongressRecord`"""
389-
return self._gi
387+
# return self._gi
388+
return None
390389

391390
@property
392391
def bills(self):
@@ -405,17 +404,17 @@ def bioguide(self, new_bioguide):
405404
else:
406405
raise gpo.InvalidBioguideError()
407406

408-
@govinfo.setter
409-
def govinfo(self, new_govinfo):
410-
valid_govinfo = (new_govinfo.number is not None
411-
and new_govinfo.start_year is not None
412-
and new_govinfo.end_year is not None
413-
and new_govinfo.members is not None)
407+
# @govinfo.setter
408+
# def govinfo(self, new_govinfo):
409+
# valid_govinfo = (new_govinfo.number is not None
410+
# and new_govinfo.start_year is not None
411+
# and new_govinfo.end_year is not None
412+
# and new_govinfo.members is not None)
414413

415-
if valid_govinfo:
416-
self._gi = new_govinfo
417-
else:
418-
raise gpo.InvalidGovInfoError()
414+
# if valid_govinfo:
415+
# self._gi = new_govinfo
416+
# else:
417+
# raise gpo.InvalidGovInfoError()
419418

420419
@property
421420
def members(self):
@@ -429,33 +428,33 @@ def members(self):
429428
member.bioguide = member_record
430429
member_list.append(member)
431430

432-
if self._gi and self._bg:
433-
for member_record in self._gi.members:
434-
try:
435-
_ = (member_record['members']
436-
and member_record['members'][0]
437-
and member_record['members'][0]['bioGuideId'])
438-
except (KeyError, IndexError):
439-
member = CongressMember(None, load_immediately=False)
440-
member.govinfo = member_record
441-
member_list.append(member)
442-
continue
443-
444-
bioguide_id = member_record['members'][0]['bioGuideId']
445-
for member in member_list:
446-
if member.bioguide_id != bioguide_id:
447-
continue
448-
449-
member.govinfo = member_record
450-
elif self._gi:
451-
for member_record in self._gi.members:
452-
try:
453-
bioguide_id = member_record['members'][0]['bioGuideId']
454-
except (KeyError, IndexError):
455-
bioguide_id = None
456-
457-
member = CongressMember(bioguide_id, load_immediately=False)
458-
member.govinfo = member_record
459-
member_list.append(member)
431+
# if self._gi and self._bg:
432+
# for member_record in self._gi.members:
433+
# try:
434+
# _ = (member_record['members']
435+
# and member_record['members'][0]
436+
# and member_record['members'][0]['bioGuideId'])
437+
# except (KeyError, IndexError):
438+
# member = CongressMember(None, load_immediately=False)
439+
# member.govinfo = member_record
440+
# member_list.append(member)
441+
# continue
442+
443+
# bioguide_id = member_record['members'][0]['bioGuideId']
444+
# for member in member_list:
445+
# if member.bioguide_id != bioguide_id:
446+
# continue
447+
448+
# member.govinfo = member_record
449+
# elif self._gi:
450+
# for member_record in self._gi.members:
451+
# try:
452+
# bioguide_id = member_record['members'][0]['bioGuideId']
453+
# except (KeyError, IndexError):
454+
# bioguide_id = None
455+
456+
# member = CongressMember(bioguide_id, load_immediately=False)
457+
# member.govinfo = member_record
458+
# member_list.append(member)
460459

461460
return member_list

0 commit comments

Comments
 (0)