Repository: openstates/openstates-scrapers

Issue:
IA failing since at least 2019-04-28
IA has been failing since 2019-04-28

Based on automated runs it appears that IA has not run successfully in 2 days (2019-04-28).


```
  On the question "Shall the bill pass?" (S.F. 608), the vote was:
On the question "Shall the bill pass?" (S.F. 616), the vote was:
On the question "Shall amendment S-3223 to amendment S-3215 be adopted?" (S.F. 615), the vote was:
On the question "Shall amendment S-3224 to amendment S-3215 be adopted?" (S.F. 615), the vote was:
On the question "Shall amendment S-3221 to amendment S-3215 be adopted?" (S.F. 615), the vote was:
On the question "Shall the bill pass?" (S.F. 615), the vote was:
On the question "Shall amendment S-3220 to amendment S-3206 be adopted?" (S.F. 634), the vote was:
On the question "Shall amendment S-3206 be adopted?" (S.F. 634), the vote was:
On the question "Shall the bill pass?" (S.F. 634), the vote was:
On the question "Shall the bill pass?" (S.F. 86), the vote was:
On the question "Shall the bill pass?" (S.F. 599), the vote was:
On the question "Shall the bill pass?" (H.F. 707), the vote was:
On the question "Shall the bill pass?" (H.F. 689), the vote was:
On the question "Shall amendment S-3180 be adopted?" (H.F. 546), the vote was:
On the question "Shall the bill pass?" (H.F. 546), the vote was:
On the question "Shall the bill pass?" (S.F. 306), the vote was:
On the question "Shall the bill pass?" (S.F. 228), the vote was:
On the question "Shall the bill pass?" (H.F. 328), the vote was:
On the question "Shall the bill pass?" (H.F. 422), the vote was:
On the question "Shall the bill pass?" (H.F. 768), the vote was:
On the question "Shall the bill pass?" (H.F. 778), the vote was:
On the question "Shall the bill pass?" (H.F. 485), the vote was:
On the question "Shall the bill pass?" (H.F. 642), the vote was:
On the question "Shall the bill pass?" (S.F. 589), the vote was:
On the question "Shall amendment S-3230 be adopted?" (H.F. 531), the vote was:
On the question "Shall the bill pass?" (H.F. 531), the vote was:
On the question "Shall the bill pass?" (S.F. 502), the vote was:
On the question "Shall the bill pass?" (H.F. 596), the vote was:
On the question "Shall the bill pass?" (H.F. 694), the vote was:
On the question "Shall the bill pass?" (H.F. 692), the vote was:
On the question "Shall the bill pass?" (S.F. 93), the vote was:
On the question "Shall the bill pass?" (S.F. 139), the vote was:
On the question "Shall the bill pass?" (H.F. 499), the vote was:
On the question "Shall amendment S-3243 to amendment S-3237 be adopted?’ (S.F. 638), the vote was:
Traceback (most recent call last):
  File "/opt/**PGUSER**/venv-pupa//bin/pupa", line 11, in <module>
    load_entry_point('pupa', 'console_scripts', 'pupa')()
  File "/opt/**PGUSER**/venv-pupa/src/pupa/pupa/cli/__main__.py", line 68, in main
    subcommands[args.subcommand].handle(args, other)
  File "/opt/**PGUSER**/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 278, in handle
    return self.do_handle(args, other, juris)
  File "/opt/**PGUSER**/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 327, in do_handle
    report['scrape'] = self.do_scrape(juris, args, scrapers)
  File "/opt/**PGUSER**/venv-pupa/src/pupa/pupa/cli/commands/update.py", line 175, in do_scrape
    report[scraper_name] = scraper.do_scrape(**scrape_args)
  File "/opt/**PGUSER**/venv-pupa/src/pupa/pupa/scrape/base.py", line 114, in do_scrape
    for iterobj in obj:
  File "/opt/**PGUSER**/**PGUSER**/**PGUSER**/ia/votes.py", line 144, in scrape_journal
    re.VERBOSE | re.IGNORECASE).group(1)
AttributeError: 'NoneType' object has no attribute 'group'
```

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



Discussion:

Resolving patch:
diff --git a/openstates/ia/votes.py b/openstates/ia/votes.py
--- a/openstates/ia/votes.py
+++ b/openstates/ia/votes.py
@@ -130,7 +130,7 @@ def scrape_journal(self, url, chamber, session, date):
                     ^On\sthe\squestion\s  # Precedes any motion
                     "+  # Motion is preceded by a quote mark (or two)
                     (Shall\s.+?\??)  # The motion text begins with "Shall"
-                    \s*(?:\?"?|")\s+  # Motion is followed by a question mark and/or a quote mark
+                    \s*(?:\?"?|"|’)\s+  # Motion is followed by a question mark and/or a quote mark
                     (?:{})?  # If the vote regards a bill, its number is listed
                     {}  # Senate has trailing text
                     \s*$


Test patch: