Exemplo n.º 1
0
    expected = {}
    assert actual == expected


parse_details_page_notes_scenarios = [
    ((mock_data.details_page_notes_01, ''),
     'Ensure a malformed entry is not parsed'),
    ((mock_data.details_page_notes_02,
      mock_data.details_page_notes_02_expected),
     'Ensure details page notes parsed correctly'),
]


@pytest.mark.parametrize('input_,expected',
                         scenario_inputs(parse_details_page_notes_scenarios),
                         ids=scenario_ids(parse_details_page_notes_scenarios))
def test_parse_details_page_notes_01(input_, expected):
    """Ensure details page notes parsed correctly."""
    actual = apd.parse_details_page_notes(input_)
    assert actual == expected


def test_extract_traffic_fatalities_page_details_link_00(news_page):
    """Ensure page detail links are extracted from news page."""
    actual = apd.extract_traffic_fatalities_page_details_link(news_page)
    expected = [
        ('/news/traffic-fatality-2-3', 'Traffic Fatality #2', '2'),
        ('/news/traffic-fatality-1-4', 'Traffic Fatality #1', '1'),
        ('/news/traffic-fatality-72-1', 'Traffic Fatality #72', '72'),
        ('/news/traffic-fatality-73-2', 'Traffic Fatality #73', '73'),
        ('/news/traffic-fatality-71-2', 'Traffic Fatality #71', '71'),
Exemplo n.º 2
0
def test_parse_twitter_description_without_notes():
    """
    Test that the parser finds the right number of deceased people.
    """
    twitter_description = ("'Case:         19-1321936 Date:          May 12, 2019 "
                           "Time:         11:34 p.m. Location:   12100 N. IH-35 NB Service road "
                           "Deceased:  First Middle Last, Black male, D.O.B. August 30, 1966'")
    d = parsing.parse_twitter_description(twitter_description)
    assert not d.get("D.O.B.")
    assert d["DOB"] == datetime.date(1966, 8, 30)


@pytest.mark.parametrize('page,start,end',
                         scenario_inputs(mock_data.note_fields_scenarios),
                         ids=scenario_ids(mock_data.note_fields_scenarios))
def test_parse_notes(page, start, end):
    """Ensure Notes field are parsed correctly."""
    soup = parsing.to_soup(page)
    deceased_field_list = parsing.parse_deceased_field(soup)
    notes = parsing.parse_notes_field(soup, deceased_field_list[-1])
    assert notes.startswith(start)
    assert notes.endswith(end)


@pytest.mark.parametrize('page,start,end', (
    ('traffic-fatality-2-3', 'The preliminary investigation shows that the grey',
     'No charges are expected to be filed.'),
    ('traffic-fatality-4-6', 'The preliminary investigation shows that a black, Ford', 'scene at 01:48 a.m.'),
    ('traffic-fatality-15-4', 'The preliminary investigation indicated that Garrett',
     'seatbelts. No charges are expected to be filed.'),