From 7a1c3e71bb33689913031f5a680c0f1f8170492f Mon Sep 17 00:00:00 2001 From: 94275793668 Date: Wed, 6 Mar 2024 11:59:09 -0300 Subject: [PATCH] Fix tests to normalized strings --- tests/searchers_test.py | 276 +++++++++++++++++++++------------------- 1 file changed, 146 insertions(+), 130 deletions(-) diff --git a/tests/searchers_test.py b/tests/searchers_test.py index a407d0d..8f15086 100644 --- a/tests/searchers_test.py +++ b/tests/searchers_test.py @@ -5,107 +5,114 @@ import pandas as pd + @pytest.mark.parametrize( - 'raw_html, clean_text', + "raw_html, clean_text", [ - ('
Any text
', 'Any text'), - ('

Any text

', 'Any text'), - ('Any text
', 'Any text'), - ('Any text', 'Any text'), - ('', ''), - ('<>', ''), - ('', ''), - ]) + ("
Any text
", "Any text"), + ("

Any text

", "Any text"), + ("Any text
", "Any text"), + ("Any text", "Any text"), + ("", ""), + ("<>", ""), + ("", ""), + ], +) def test_clean_html(dou_searcher, raw_html, clean_text): assert dou_searcher._clean_html(raw_html) == clean_text + @pytest.mark.parametrize( - 'raw_html, start_name, match_name', + "raw_html, start_name, match_name", [ - ("PRIOR<>MATCHED NAME<>EVENTUALLY END NAME", - "PRIOR", - "MATCHED NAME") - , - ("JOSE" + ("PRIOR<>MATCHED NAME<>EVENTUALLY END NAME", "PRIOR", "MATCHED NAME"), + ( + "JOSE" "ANTONIO DE OLIVEIRACAMARGO", - "JOSE", - "ANTONIO DE OLIVEIRA") - , - ("" + "JOSE", + "ANTONIO DE OLIVEIRA", + ), + ( + "" "ANTONIO DE OLIVEIRACAMARGO", - "", - "ANTONIO DE OLIVEIRA") - , - ]) + "", + "ANTONIO DE OLIVEIRA", + ), + ], +) def test_get_prior_and_matched_name(dou_searcher, raw_html, start_name, match_name): - assert dou_searcher._get_prior_and_matched_name(raw_html) == (start_name, match_name) + assert dou_searcher._get_prior_and_matched_name(raw_html) == ( + start_name, + match_name, + ) + @pytest.mark.parametrize( - 'raw_text, normalized_text', + "raw_text, normalized_text", [ - ('Nitái Bêzêrrá', 'nitai bezerra'), - ('Nitái-Bêzêrrá', 'nitai bezerra'), - ('Normaliza çedilha', 'normaliza cedilha'), - ('ìÌÒòùÙúÚáÁÀeççÇÇ~ A', 'iioouuuuaaaecccc a'), - ('a %&* / aáá 3d_U', 'a aaa 3d u'), - ]) + ("Nitái Bêzêrrá", "nitai bezerra"), + ("Nitái-Bêzêrrá", "nitai-bezerra"), + ("Normaliza çedilha", "normaliza cedilha"), + ("ìÌÒòùÙúÚáÁÀeççÇÇ~ A", "iioouuuuaaaecccc~ a"), + ("a %&* / aáá 3d_U", "a %&* / aaa 3d_u"), + ], +) def test_normalize(dou_searcher, raw_text, normalized_text): assert dou_searcher._normalize(raw_text) == normalized_text + @pytest.mark.parametrize( - 'search_term, abstract', + "search_term, abstract", [ - ("ANTONIO DE OLIVEIRA", - "ANTONIO DE OLIVEIRA" - " FREITAS - Diretor Geral.EXTRATO DE COMPROMISSO PRONAS/PCD: " - "Termo de Compromisso que entre si celebram a União, por intermédio " - "do Ministério da Saúde,...") - , - ("ANTONIO DE OLIVEIRA", - "JOSÉ ANTONIO DE " - "OLIVEIRA FREITAS - Diretor Geral.EXTRATO DE COMPROMISSO " - "PRONAS/PCD: Termo de Compromisso que entre si celebram a União, " - "por intermédio do Ministério da Saúde,...") - , - ("MATCHED NAME", - "PRIOR<>MATCHED NAME<>EVENTUALLY END NAME") - , - ]) + ( + "ANTONIO DE OLIVEIRA", + "ANTONIO DE OLIVEIRA" + " FREITAS - Diretor Geral.EXTRATO DE COMPROMISSO PRONAS/PCD: " + "Termo de Compromisso que entre si celebram a União, por intermédio " + "do Ministério da Saúde,...", + ), + ( + "ANTONIO DE OLIVEIRA", + "JOSÉ ANTONIO DE " + "OLIVEIRA FREITAS - Diretor Geral.EXTRATO DE COMPROMISSO " + "PRONAS/PCD: Termo de Compromisso que entre si celebram a União, " + "por intermédio do Ministério da Saúde,...", + ), + ("MATCHED NAME", "PRIOR<>MATCHED NAME<>EVENTUALLY END NAME"), + ], +) def test_is_signature(dou_searcher, search_term, abstract): assert dou_searcher._is_signature(search_term, abstract) + @pytest.mark.parametrize( - 'search_term, abstract', + "search_term, abstract", [ - ("ANTONIO DE OLIVEIRA", - "ANTONIO DE " - "OLIVEIRA FREITAS - Diretor Geral.EXTRATO DE COMPROMISSO " - "PRONAS/PCD: Termo de Compromisso que entre si celebram a União, " - "por intermédio do Ministério da Saúde,...") - , - ("MATCHED NAME", - "PRIOR<>MATCHED NAME<>EVENTUALLY END NAME") - , - ("MATCHED NAME", - "PRIOR MATCHED<> NAME<>EVENTUALLY END NAME") - , - ("MATCHED NAME", - "PRIOR MATCHED<> NAME <>EVENTUALLY END NAME") - , - ("MATCHED NAME", - "PRIOR MATCHED<> ... NAME<>EVENTUALLY END NAME") - , - ("ANTONIO DE OLIVEIRA", - "Secretário-Executivo Adjunto do Ministério da Saúde; ANTONIO" - " ... DE OLIVEIRA FREITAS JUNIOR - Diretor " - "Geral.EXTRATO DE COMPROMISSO PRONAS/PCD: Termo de ,...") - , - ]) + ( + "ANTONIO DE OLIVEIRA", + "ANTONIO DE " + "OLIVEIRA FREITAS - Diretor Geral.EXTRATO DE COMPROMISSO " + "PRONAS/PCD: Termo de Compromisso que entre si celebram a União, " + "por intermédio do Ministério da Saúde,...", + ), + ("MATCHED NAME", "PRIOR<>MATCHED NAME<>EVENTUALLY END NAME"), + ("MATCHED NAME", "PRIOR MATCHED<> NAME<>EVENTUALLY END NAME"), + ("MATCHED NAME", "PRIOR MATCHED<> NAME <>EVENTUALLY END NAME"), + ("MATCHED NAME", "PRIOR MATCHED<> ... NAME<>EVENTUALLY END NAME"), + ( + "ANTONIO DE OLIVEIRA", + "Secretário-Executivo Adjunto do Ministério da Saúde; ANTONIO" + " ... DE OLIVEIRA FREITAS JUNIOR - Diretor " + "Geral.EXTRATO DE COMPROMISSO PRONAS/PCD: Termo de ,...", + ), + ], +) def test_really_matched(dou_searcher, search_term, abstract): assert dou_searcher._really_matched(search_term, abstract) + def test_match_department(dou_searcher): - department = ['Ministério da Defesa'] + department = ["Ministério da Defesa"] results = [ { "section": "Seção 3", @@ -113,11 +120,13 @@ def test_match_department(dou_searcher): "href": "https://www.in.gov.br/web/dou/-/extrato-de-compromisso-342504508", "abstract": "ALESSANDRO GLAUCO DOS ANJOS DE VASCONCELOS - Secretário-Executivo Adjunto...", "date": "02/09/2021", - "hierarchyList": ["Ministério da Defesa", - "Comando do Exército", - "Comando Militar do Nordeste", - "6ª Região Militar", - "28º Batalhão de Caçadores"], + "hierarchyList": [ + "Ministério da Defesa", + "Comando do Exército", + "Comando Militar do Nordeste", + "6ª Região Militar", + "28º Batalhão de Caçadores", + ], }, { "section": "Seção 3", @@ -126,17 +135,17 @@ def test_match_department(dou_searcher): "abstract": "ALESSANDRO GLAUCO DOS ANJOS DE VASCONCELOS - Secretário-Executivo Adjunto...", "date": "02/09/2021", "hierarchyList": ["Ministério dos Povos Indígenas"], - } - ] + }, + ] dou_searcher._match_department(results, department) - assert len(results) == 1 - + assert len(results) == 1 @pytest.mark.parametrize( - 'pre_term_list, casted_term_list', + "pre_term_list, casted_term_list", [ - ('''{ + ( + """{ "servidor":{ "0":"ANTONIO", "1":"JOSE", @@ -148,9 +157,11 @@ def test_match_department(dou_searcher): "2":"OIA" } } - ''', - ['ANTONIO', 'JOSE', 'SILVA']), - ('''{ + """, + ["ANTONIO", "JOSE", "SILVA"], + ), + ( + """{ "tanto_faz":{ "0":"NITAI", "1":"BEZERRA DA", @@ -162,24 +173,27 @@ def test_match_department(dou_searcher): "2":"E IGNORADO" } } - ''', - ['NITAI', 'BEZERRA DA', 'SILVA']), - ] + """, + ["NITAI", "BEZERRA DA", "SILVA"], + ), + ], ) def test_cast_term_list__str_param(dou_searcher, pre_term_list, casted_term_list): assert tuple(dou_searcher._cast_term_list(pre_term_list)) == tuple(casted_term_list) + def test_cast_term_list__list_param(dou_searcher): - pre_term_list = ['a', 'b', 'c'] + pre_term_list = ["a", "b", "c"] assert tuple(dou_searcher._cast_term_list(pre_term_list)) == tuple(pre_term_list) + def assert_grouped_result(grouped_result): - assert 'ATI' in grouped_result - assert 'SILVA' in grouped_result['ATI'] - assert len(grouped_result['ATI']['SILVA']) == 4 - assert 'EPPGG' in grouped_result - assert 'ANTONIO DE OLIVEIRA' in grouped_result['EPPGG'] - assert len(grouped_result['EPPGG']['ANTONIO DE OLIVEIRA']) == 3 + assert "ATI" in grouped_result + assert "SILVA" in grouped_result["ATI"] + assert len(grouped_result["ATI"]["SILVA"]) == 4 + assert "EPPGG" in grouped_result + assert "ANTONIO DE OLIVEIRA" in grouped_result["EPPGG"] + assert len(grouped_result["EPPGG"]["ANTONIO DE OLIVEIRA"]) == 3 # TODO incluir teste com search_results vazio @@ -187,14 +201,15 @@ def test_group_by_term_group(dou_searcher, search_results, term_n_group): grouped_result = dou_searcher._group_by_term_group(search_results, term_n_group) assert_grouped_result(grouped_result) -def test_group_results__sql_term_list_with_group(dou_searcher, - search_results, - term_n_group): + +def test_group_results__sql_term_list_with_group( + dou_searcher, search_results, term_n_group +): grouped_result = dou_searcher._group_results(search_results, term_n_group) assert_grouped_result(grouped_result) -def test_group_results__sql_term_list_without_group(dou_searcher, - search_results): + +def test_group_results__sql_term_list_without_group(dou_searcher, search_results): terms_str = """{ "nomes":{ "0":"ANTONIO DE OLIVEIRA", @@ -202,40 +217,41 @@ def test_group_results__sql_term_list_without_group(dou_searcher, }""" grouped_result = dou_searcher._group_results(search_results, terms_str) - assert 'ANTONIO DE OLIVEIRA' in grouped_result['single_group'] - assert 'SILVA' in grouped_result['single_group'] + assert "ANTONIO DE OLIVEIRA" in grouped_result["single_group"] + assert "SILVA" in grouped_result["single_group"] -def test_group_results__list_term_list(dou_searcher, - search_results): + +def test_group_results__list_term_list(dou_searcher, search_results): any_list_object = [] grouped_result = dou_searcher._group_results(search_results, any_list_object) - assert 'ANTONIO DE OLIVEIRA' in grouped_result['single_group'] - assert 'SILVA' in grouped_result['single_group'] + assert "ANTONIO DE OLIVEIRA" in grouped_result["single_group"] + assert "SILVA" in grouped_result["single_group"] def test_add_standard_highlight_formatting(dou_searcher): results = [ { - 'section': 'DOU - Seção 1', - 'title': 'PORTARIA GM/MMA Nº 404, DE 14 DE MARÇO DE 2023', - 'href': 'https://www.in.gov.br/web/dou/-/' - 'portaria-gm/mma-n-404-de-14-de-marco-de-2023-470057067', - 'abstract': - "As manifestações registradas na Plataforma Fala.BR versando " - "sobre a " - "Lei de Acesso à Informação têm ritoPORTARIA GM/MMA " - "Nº 404, DE 14 DE MARÇO DE 2023 Estabelece, no âmbito do " - "Ministério do Meio Ambiente e Mudança do Clima, os " - "procedimentos para o recebimento e o " - "tratamento de manifestações..." - , 'date': '15/03/2023' - }] + "section": "DOU - Seção 1", + "title": "PORTARIA GM/MMA Nº 404, DE 14 DE MARÇO DE 2023", + "href": "https://www.in.gov.br/web/dou/-/" + "portaria-gm/mma-n-404-de-14-de-marco-de-2023-470057067", + "abstract": "As manifestações registradas na Plataforma Fala.BR versando " + "sobre a " + "Lei de Acesso à Informação têm ritoPORTARIA GM/MMA " + "Nº 404, DE 14 DE MARÇO DE 2023 Estabelece, no âmbito do " + "Ministério do Meio Ambiente e Mudança do Clima, os " + "procedimentos para o recebimento e o " + "tratamento de manifestações...", + "date": "15/03/2023", + } + ] dou_searcher._add_standard_highlight_formatting(results) - assert results[0]['abstract'] == \ - ('As manifestações registradas na Plataforma Fala.BR versando sobre ' - 'a <%%>Lei de <%%>Acesso à Informação têm ritoPORTARIA ' - 'GM/MMA Nº 404, DE 14 DE MARÇO DE 2023 Estabelece, no âmbito do ' - 'Ministério do Meio Ambiente e Mudança do Clima, os procedimentos ' - 'para o recebimento e o tratamento de manifestações...') + assert results[0]["abstract"] == ( + "As manifestações registradas na Plataforma Fala.BR versando sobre " + "a <%%>Lei de <%%>Acesso à Informação têm ritoPORTARIA " + "GM/MMA Nº 404, DE 14 DE MARÇO DE 2023 Estabelece, no âmbito do " + "Ministério do Meio Ambiente e Mudança do Clima, os procedimentos " + "para o recebimento e o tratamento de manifestações..." + )