Repository: openstates/openstates-scrapers

Issue:
MS failing since at least 2017-11-30
MS has been failing since 2017-11-30

Based on automated runs it appears that MS has not run successfully in 2 days (2017-11-30).


```
  00:01:52 INFO scrapelib: GET - http://billstatus.ls.state.ms.us/members/house/sykes.xml
00:01:53 INFO pupa: save person Kathy Sykes as person_214587cc-d65d-11e7-b344-0242ac110006.json
00:01:53 INFO pupa: save membership 214587cc-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "lower"} as membership_21458bdc-d65d-11e7-b344-0242ac110006.json
00:01:53 INFO pupa: save membership 214587cc-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "party", "name": "Democratic"} as membership_21458e2a-d65d-11e7-b344-0242ac110006.json
00:01:53 INFO scrapelib: GET - http://billstatus.ls.state.ms.us/members/house/williams-barnes.xml
00:01:54 INFO pupa: save person Sonya Williams-Barnes as person_21de71d0-d65d-11e7-b344-0242ac110006.json
00:01:54 INFO pupa: save membership 21de71d0-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "lower"} as membership_21de75cc-d65d-11e7-b344-0242ac110006.json
00:01:54 INFO pupa: save membership 21de71d0-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "party", "name": "Democratic"} as membership_21de7806-d65d-11e7-b344-0242ac110006.json
00:01:54 INFO scrapelib: GET - http://billstatus.ls.state.ms.us/members/house/currie.xml
00:01:55 INFO pupa: save person Becky Currie as person_2277855a-d65d-11e7-b344-0242ac110006.json
00:01:55 INFO pupa: save membership 2277855a-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "lower"} as membership_22778910-d65d-11e7-b344-0242ac110006.json
00:01:55 INFO pupa: save membership 2277855a-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "party", "name": "Republican"} as membership_22778b36-d65d-11e7-b344-0242ac110006.json
00:01:55 INFO scrapelib: GET - http://billstatus.ls.state.ms.us/members/house/horan.xml
00:01:56 INFO pupa: save person Kevin Horan as person_23101d92-d65d-11e7-b344-0242ac110006.json
00:01:56 INFO pupa: save membership 23101d92-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "lower"} as membership_231021ca-d65d-11e7-b344-0242ac110006.json
00:01:56 INFO pupa: save membership 23101d92-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "party", "name": "Democratic"} as membership_2310260c-d65d-11e7-b344-0242ac110006.json
00:01:56 INFO scrapelib: GET - http://billstatus.ls.state.ms.us/members/house/morgan.xml
00:01:57 INFO pupa: save person Ken Morgan as person_23a8c9c0-d65d-11e7-b344-0242ac110006.json
00:01:57 INFO pupa: save membership 23a8c9c0-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "lower"} as membership_23a8cea2-d65d-11e7-b344-0242ac110006.json
00:01:57 INFO pupa: save membership 23a8c9c0-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "party", "name": "Republican"} as membership_23a8d0e6-d65d-11e7-b344-0242ac110006.json
00:01:57 INFO scrapelib: GET - http://billstatus.ls.state.ms.us/members/house/thomas.xml
00:01:58 INFO pupa: save person Sara R. Thomas as person_2442078e-d65d-11e7-b344-0242ac110006.json
00:01:58 INFO pupa: save membership 2442078e-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "lower"} as membership_24420c7a-d65d-11e7-b344-0242ac110006.json
00:01:58 INFO pupa: save membership 2442078e-d65d-11e7-b344-0242ac110006 membership in ~{"classification": "party", "name": "Democratic"} as membership_24420f2c-d65d-11e7-b344-0242ac110006.json
00:01:58 INFO scrapelib: GET - http://billstatus.ls.state.ms.us/members/house/barnett.xml
no pupa_settings on path, using defaults
ms (scrape, import)
  committee: {}
  people: {}
  bills: {}
  File "/opt/openstates/venv-pupa//bin/pupa", line 11, in <module>
Traceback (most recent call last):
    load_entry_point('pupa', 'console_scripts', 'pupa')()
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/__main__.py", line 67, in main
    subcommands[args.subcommand].handle(args, other)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 260, in handle
    return self.do_handle(args, other, juris)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 305, in do_handle
    report['scrape'] = self.do_scrape(juris, args, scrapers)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 173, in do_scrape
    report[scraper_name] = scraper.do_scrape(**scrape_args)
  File "/opt/openstates/venv-pupa/src/pupa/pupa/scrape/base.py", line 111, in do_scrape
    for obj in self.scrape(**kwargs) or []:
  File "/opt/openstates/openstates/openstates/ms/people.py", line 20, in scrape
    yield from self.scrape_legs('lower')
  File "/opt/openstates/openstates/openstates/ms/people.py", line 39, in scrape_legs
    yield from self.scrape_details(chamber, leg, leg_link, role)
  File "/opt/openstates/openstates/openstates/ms/people.py", line 116, in scrape_details
    "A member with no identifiable party was found: {}".format(leg_name))
AssertionError: A member with no identifiable party was found: Shane Barnett
```

Visit http://bobsled.openstates.org for more info.



Discussion:

Resolving patch:
diff --git a/openstates/ms/people.py b/openstates/ms/people.py
--- a/openstates/ms/people.py
+++ b/openstates/ms/people.py
@@ -103,7 +103,10 @@ def scrape_details(self, chamber, leg_name, leg_link, role):
                 assert not party, ("Remove special-casing for this Democrat without a "
                                    "listed party: {}").format(leg_name)
                 party = 'Democratic'
-            elif leg_name in ('James W. Mathis', 'John Glen Corley', 'Missy McGee'):
+            elif leg_name in ('James W. Mathis',
+                              'John Glen Corley',
+                              'Missy McGee',
+                              'Shane Barnett'):
                 assert not party, ("Remove special-casing for this Republican without"
                                    " a listed party: {}").format(leg_name)
                 party = 'Republican'


Test patch: