diff --git a/app/scrapers/baden_wuerttemberg_landtag_scraper.rb b/app/scrapers/baden_wuerttemberg_landtag_scraper.rb index a78ab73..d191520 100644 --- a/app/scrapers/baden_wuerttemberg_landtag_scraper.rb +++ b/app/scrapers/baden_wuerttemberg_landtag_scraper.rb @@ -84,7 +84,11 @@ def self.extract_from_originators(originators_line) return nil if match_result.nil? doctype = extract_doctype(match_result[1]) names = match_result[2].gsub(/\s+(?:u.a.|u.u.)/, '').strip - originators = NamePartyExtractor.new(names, NamePartyExtractor::NAME_BRACKET_PARTY).extract + if doctype == Paper::DOCTYPE_MAJOR_INTERPELLATION and names.include? 'Fraktion' + originators = NamePartyExtractor.new(names, NamePartyExtractor::FRACTION).extract + else + originators = NamePartyExtractor.new(names, NamePartyExtractor::NAME_BRACKET_PARTY).extract + end ministries = [match_result[4].strip] answerers = nil diff --git a/test/fixtures/bw/detail_page_major.html b/test/fixtures/bw/detail_page_major.html index f97bb5e..dbc4580 100644 --- a/test/fixtures/bw/detail_page_major.html +++ b/test/fixtures/bw/detail_page_major.html @@ -1,45 +1,74 @@ - - - - - Parlamentsdokumentation - Vorgänge - - - - - - - - - - -
- -

Parlamentsdokumentation

- + + + +
+
+
+
+

Dokument

+ + + + + + + Drucksache 16/4581 09.08.2018 (26 S.) + + + + + PDF + + + (0.28 MB) + + + + + + +

Vorgänge

+ + +
+ + + + + +
+
Große Anfrage Fraktion GRÜNE 09.08.2018 und Antwort Landesregierung
+ + + + + + + Drucksache 16/4581 (26 S.) + + + + + PDF + + + (0.28 MB) + + +
+
+
+
+
+ +
+
+
-
-

15. Wahlperiode

-

Gefundene Vorgänge

- - - - - - - - - - - - - -
Schlagwort:Demografie
Vorgang:01608
Betreff:Demografische Entwicklung im ländlichen Raum
Kurzreferat: Entwicklung seit Erteilung der Empfehlungen der Demografie-Enquete auf Drs 13/4900; Maßnahmen und Programme zur Gewährleistung der Gleichwertigkeit der Lebensverhältnisse zwischen ländlichen und urbanen Räumen, insbes im Bereich der öffentlichen Daseinsvorsorge und interkommunalen Zusammenarbeit, beim ÖPNV und Individualverkehr, den Schulen und Hochschulen, kleinen und mittleren Unternehmen, der Energiewirtschaft, Landwirtschaft und beim Tourismus; Förderung der Attraktivität durch Programme zur Dorfentwicklung, kulturelle Angebote, Nahversorgung im Einzelhandel und Stärkung der politischen Beteiligungsmöglichkeiten
Behandlung: - - GrAnfr FDP/DVP 25.04.2012 und Antw LReg Drs 15/1608 (33 S.)
- - PlPr 15/47 11.10.2012 S. 2674-2682

-  
-
- - \ No newline at end of file + + + diff --git a/test/fixtures/bw/detail_page_unanswered.html b/test/fixtures/bw/detail_page_unanswered.html new file mode 100644 index 0000000..8274bb9 --- /dev/null +++ b/test/fixtures/bw/detail_page_unanswered.html @@ -0,0 +1,74 @@ + + + +
+
+
+
+

Dokument

+ + + + + + + Drucksache 16/5359 10.12.2018 + + + + + PDF + + + (0.18 MB) + + + + + + +

Vorgänge

+ + +
+ + + + + +
+
Kleine Anfrage Klaus Hoher (FDP/DVP) 10.12.2018
+ + + + + + + Drucksache 16/5359 + + + + + PDF + + + (0.18 MB) + + +
+
+
+
+
+ +
+
+
+
+ + + diff --git a/test/fixtures/st/detail_unanswered.html b/test/fixtures/st/detail_unanswered.html new file mode 100644 index 0000000..79535de --- /dev/null +++ b/test/fixtures/st/detail_unanswered.html @@ -0,0 +1,304 @@ + + + + +Dokumentation Landtag | Landtag Sachsen-Anhalt
+ + + + + + + + + + + +
Plenarsitzung

Parlamentsdokumentation


  • 7. Wahlperiode

    Gemeindefinanzen

    Riskante Spekulationsgeschäfte in Kommunen (derivative Finanzierungsinstrumente) IV, hier: eingestelltes Ermittlungsverfahren gegen den Verbandsgeschäftsführer des Abwasserverbandes Köthen

    Ergebnisse und Hintergründe o. g. Verfahren; Gründe für die Handlungsweise der Staatsanwaltschaft und für die Entscheidung
     
    + +
  • Politische Straftat

    Von der Polizei registrierte Gewaltstraftaten im Phänomenbereich "Politisch motivierte Kriminalität - rechts" im Monat März 2017

    Anzahl der im März 2017 von der Polizei registrierten Gewaltstraftaten nach dem polizeilichen Definitionssystem "Politisch motivierte Kriminalität - rechts"; Zahl der Gewaltdelikte im Bereich "Hasskriminalität" sowie "Sexuelle Orientierung"; Nachmeldungen seit Jahresbeginn; Art, Tatorte und Tatzeit der Delikte; Auflistung nach Polizeidirektionen und Polizeirevieren, entsprechend der verletzten Rechtsnorm, nach Angaben zum Sachverhalt (Tathergang u.a.), nach Themenfeldern im Phänomenbereich PMK-rechts (Rassismus, Antisemitismus u.a.), nach Geschädigten, Festnahmen, Untersuchungshaft; Pressemitteilungen der Polizei; ermittelte Tatverdächtige
    • Kleine Anfrage und Antwort Henriette Quade (DIE LINKE), Sebastian Striegel (BÜNDNIS 90/DIE GRÜNEN) 13.06.2017 Drucksache 7/1525 (KA 7/837) (5 S.)



     
    + +

Quelle: Parlamentsdokumentationsauskunft Sachsen-Anhalt (PADOKA); Stand 14.03.2018

Bei Fragen wenden Sie sich bitte an die   Parlamentsdokumentation des Landtags von Sachsen-Anhalt.

+ +
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/test/scraper/baden_wuerttemberg_landtag_scraper_test.rb b/test/scraper/baden_wuerttemberg_landtag_scraper_test.rb index 22e977e..a72004f 100644 --- a/test/scraper/baden_wuerttemberg_landtag_scraper_test.rb +++ b/test/scraper/baden_wuerttemberg_landtag_scraper_test.rb @@ -92,129 +92,53 @@ def setup assert_equal(expected, actual) end - test 'extract meta information from long detail link with newline' do - skip "No such case known yet in new Detail Pages" - text = "Kleine Anfrage Helmut Walter Räeck (CDU), Nikolaos Sakellariou (SPD), Dr. Friedrich Bullinger (FDP/DVP) 24.07.2014 und Antwort Ministerium für Ländlichen Raum und Verbraucherschutz " - actual = @scraper.extract_from_originators(text) - expected = { - full_reference: '15/5544', - doctype: Paper::DOCTYPE_MINOR_INTERPELLATION, - published_at: Date.parse('2014-07-24'), - originators: { people: ['Dr. Friedrich Bullinger', 'Helmut Walter Rüeck', 'Nikolaos Sakkelariou'], parties: ['FDP/DVP', 'CDU', 'SPD'] }, - answerers: { ministries: ['MLR'] } - } - assert_equal(expected, actual) - end - - test 'extract meta information from detail with duplicate date' do - skip "No such case known yet in new Detail Pages" - text = 'KlAnfr Katrin Schütz CDU 26.08.2014 26.08.2014 und Antw IM Drs 15/5659' - actual = @scraper.extract_from_originators(text) - expected = { - full_reference: '15/5659', - doctype: Paper::DOCTYPE_MINOR_INTERPELLATION, - published_at: Date.parse('2014-08-26'), - originators: { people: ['Katrin Schütz'], parties: ['CDU'] }, - answerers: { ministries: ['IM'] } - } - assert_equal(expected, actual) - end - - test 'extract meta information from detail with multiple ministries' do - skip "No such case known yet in new Detail Pages" - text = 'KlAnfr Rainer Hinderer SPD 01.01.2015 und Antw MVI, ABC und DEF Drs 01/1234' - actual = @scraper.extract_from_originators(text) - expected = { - full_reference: '01/1234', - doctype: Paper::DOCTYPE_MINOR_INTERPELLATION, - published_at: Date.parse('2015-01-01'), - originators: { people: ['Rainer Hinderer'], parties: ['SPD'] }, - answerers: { ministries: ['MVI', 'ABC', 'DEF'] } - } - assert_equal(expected, actual) - end - - test 'extract meta information from detail with missing ministry' do - skip "No such case known yet in new Detail Pages" - text = 'KlAnfr Rainer Hinderer SPD 01.01.2015 und Antw Drs 01/1234' - actual = @scraper.extract_from_originators(text) - expected = { - full_reference: '01/1234', - doctype: Paper::DOCTYPE_MINOR_INTERPELLATION, - published_at: Date.parse('2015-01-01'), - originators: { people: ['Rainer Hinderer'], parties: ['SPD'] }, - answerers: nil - } - assert_equal(expected, actual) - end - - test 'extract meta information from detail with wrong published_at position' do - skip "No such case known yet in new Detail Pages" - text = 'KlAnfr Dr. Friedrich Bullinger FDP/DVP und Antw IM 20.06.2014 Drs 15/5345' - actual = @scraper.extract_from_originators(text) - expected = { - full_reference: '15/5345', - doctype: Paper::DOCTYPE_MINOR_INTERPELLATION, - published_at: Date.parse('2014-06-20'), - originators: { people: ['Dr. Friedrich Bullinger'], parties: ['FDP/DVP'] }, - answerers: { ministries: ['IM'] } - } - assert_equal(expected, actual) - end - - test 'extract meta information from detail with wrong Klanf instead of Klanfr' do - skip "No such case known yet in new Detail Pages" - text = 'KlAnf Dr. Hans-Ulrich Rülke FDP/DVP 01.07.2013 und Antw MVI Drs 15/3704' - actual = @scraper.extract_from_originators(text) - expected = { - full_reference: '15/3704', - doctype: Paper::DOCTYPE_MINOR_INTERPELLATION, - published_at: Date.parse('2013-07-01'), - originators: { people: ['Dr. Hans-Ulrich Rülke'], parties: ['FDP/DVP'] }, - answerers: { ministries: ['MVI'] } - } - assert_equal(expected, actual) - end - test 'extract meta information from detail with multiple originator parties' do - skip "Fix Grosse Anfragen later" text = 'Große Anfrage Fraktion der CDU, Fraktion der SPD, Fraktion der FDP/DVP, Fraktion GRÜNE 13.02.2013 und Antwort Landesregierung ' actual = @scraper.extract_from_originators(text) expected = { - full_reference: '15/3038', doctype: Paper::DOCTYPE_MAJOR_INTERPELLATION, published_at: Date.parse('2013-02-13'), - originators: { people: [], parties: ['CDU','GRÜNE','SPD','FDP/DVP'] }, - answerers: { ministries: ['LReg'] } + originators: { people: [], parties: ['CDU','SPD','FDP/DVP','GRÜNE'] }, + answerers: { ministries: ['Landesregierung'] } } assert_equal(expected, actual) end - test 'extract meta information from detail for an unanswered paper' do - skip "Find such a case for new Detail Page" - text = 'KlAnfr Gabi Rolland SPD 09.11.2016 Drs 16/941' - actual = @scraper.extract_from_originators(text) + test 'extract meta information from unanswered detail originators' do + detail_page = Nokogiri::HTML(File.read(Rails.root.join('test/fixtures/bw/detail_page_unanswered.html'))) + org = @scraper.get_detail_originators(detail_page) + is_answer = @scraper.link_is_answer?(org) + assert_not is_answer, 'should not be an answer' + end + + test 'extract meta information from major detail originators' do + detail_page = Nokogiri::HTML(File.read(Rails.root.join('test/fixtures/bw/detail_page_major.html'))) + org = @scraper.get_detail_originators(detail_page) + actual = @scraper.extract_from_originators(org.text) expected = { - full_reference: '16/941', - doctype: Paper::DOCTYPE_MINOR_INTERPELLATION, - published_at: Date.parse('2016-11-09'), - originators: { people: ['Gabi Rolland'], parties: ['SPD'] }, - answerers: nil + doctype: Paper::DOCTYPE_MAJOR_INTERPELLATION, + published_at: Date.parse('2018-08-09'), + originators: { people: [], parties: ['GRÜNE'] }, + answerers: { ministries: ['Landesregierung'] } } assert_equal(expected, actual) end - test 'extract meta information from major detail link' do - skip "Fix Grosse Anfragen later" + test 'extract complete paper from major detail page' do detail_page = Nokogiri::HTML(File.read(Rails.root.join('test/fixtures/bw/detail_page_major.html'))) - link = @scraper.get_detail_link(detail_page) - actual = @scraper.extract_from_originators(link.text) + actual = @scraper.extract_detail_paper(detail_page) expected = { - full_reference: '15/1608', + full_reference: '16/4581', + legislative_term: '16', + reference: '4581', doctype: Paper::DOCTYPE_MAJOR_INTERPELLATION, - published_at: Date.parse('2012-04-25'), - originators: { people: [], parties: ['FDP/DVP'] }, - answerers: { ministries: ['LReg'] } + title: 'Nachhaltiger Tourismus in Baden-Württemberg', + url: 'https://www.landtag-bw.de/files/live/sites/LTBW/files/dokumente/WP16/Drucksachen/4000/16%5F4581%5FD.pdf', + published_at: Date.parse('2018-08-09'), + is_answer: true, + originators: { people: [], parties: ['GRÜNE'] }, + answerers: { ministries: ['Landesregierung'] }, + source_url: "https://parlis.landtag-bw.de/parlis/browse.tt.html?type=&action=qlink&q=WP=16%20AND%20DNRF=4581" } assert_equal(expected, actual) end