def test_config_wms_url_params(config_path, DummyRenderInfo): Config._config = None Config.init('./tests/contrib.print_proxy.mapfish_print/resources/test_config.yml', 'pyramid_oereb') renderer = Renderer(DummyRenderInfo()) config = renderer.get_wms_url_params() # Restore normal config Config._config = None Config.init(config_path, 'pyramid_oereb') # Do the check for this test. Value should match the one from the YAML configuration. assert config == {'TRANSPARENT': 'true', 'OTHERCUSTOM': 'myvalue'}
def test_bad_config_wms_url_params(config_path, DummyRenderInfo): Config._config = None Config.init('./tests/contrib.print_proxy.mapfish_print/resources/test_bad_config.yml', 'pyramid_oereb') renderer = Renderer(DummyRenderInfo()) config = renderer.get_wms_url_params() # Restore normal config Config._config = None Config.init(config_path, 'pyramid_oereb') # Do the check for this test. Value should be empty. assert config == {}
def test_mapfish_print_entire_extract(extract, geometry, expected_printable_extract, DummyRenderInfo): renderer = Renderer(DummyRenderInfo()) renderer.convert_to_printable_extract(extract, geometry) # Uncomment to print the result # with open('./printable_extract.json', 'w') as f: # json.dump(extract, f, indent=2, ensure_ascii=False) assert extract == expected_printable_extract assert deepCompare(extract, expected_printable_extract) # Do it twice, to test all keys in each reports assert deepCompare(expected_printable_extract, extract)
def test_get_custom_wms_params_true(config_path, DummyRenderInfo): Config._config = None Config.init('./tests/contrib.print_proxy.mapfish_print/resources/test_custom_config.yml', 'pyramid_oereb') renderer = Renderer(DummyRenderInfo()) # Define different test cases params1 = { 'TRANSPARENT': ['true'], 'OTHERCUSTOM': ['myvalue'], 'epoch': ['2018-11-29T15:13:31'] } params2 = { 'OTHERCUSTOM': ['myvalue'], 'epoch': ['2018-11-29T15:13:31'] } params3 = { 'epoch': '2018-11-29T15:13:31' } params4 = { 'epoch': ['2018-11-29T15:13:31', '2020-11-29T17:13:50'] } config1 = renderer.get_custom_wms_params(params1) config2 = renderer.get_custom_wms_params(params2) config3 = renderer.get_custom_wms_params(params3) config4 = renderer.get_custom_wms_params(params4) # Restore normal config Config._config = None Config.init(config_path, 'pyramid_oereb') # Do the check for the different test cases. Value should match the ones from the YAML configuration. assert config1 == { 'TRANSPARENT': 'true', 'epoch': '2018-11-29T15:13:31' } assert config2 == { 'epoch': '2018-11-29T15:13:31' } assert config3 == { 'epoch': '2018-11-29T15:13:31' } assert config4 == { 'epoch': '2018-11-29T15:13:31,2020-11-29T17:13:50' }
def test_get_custom_wms_params_false(config_path, DummyRenderInfo): Config._config = None Config.init('./tests/contrib.print_proxy.mapfish_print/resources/test_config.yml', 'pyramid_oereb') renderer = Renderer(DummyRenderInfo()) params = { 'TRANSPARENT': ['true'], 'OTHERCUSTOM': ['myvalue'], 'epoch': ['2018-11-29T15:13:31'] } config = renderer.get_custom_wms_params(params) # Restore normal config Config._config = None Config.init(config_path, 'pyramid_oereb') assert config == { 'OTHERCUSTOM': 'myvalue', 'TRANSPARENT': 'true' }
def test_archive_pdf(DummyRenderInfo): renderer = Renderer(DummyRenderInfo()) extract = {'RealEstate_EGRID': 'CH113928077734'} path_and_filename = renderer.archive_pdf_file('/tmp', bytes(), extract) assert os.path.isfile(path_and_filename)
def test_group_legal_provisions(DummyRenderInfo): renderer = Renderer(DummyRenderInfo()) test_legal_provisions = [ { "Canton": "BL", "DocumentType": "LegalProvision", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "OfficialNumber": "3891.100", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [{"URL": "https://oereb-gr-preview.000.ch/api/attachments/197"}], "Title": "Baugesetz" }, { "Canton": "BL", "DocumentType": "LegalProvision", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "OfficialNumber": "3891.100", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [{"URL": "https://oereb-gr-preview.000.ch/api/attachments/198"}], "Title": "Baugesetz" }, { "Canton": "BL", "DocumentType": "LegalProvision", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "OfficialNumber": "07.447", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [{"URL": "https://oereb-gr-preview.000.ch/api/attachments/213"}], "Title": "Revision Ortsplanung" }, { "Canton": "BL", "DocumentType": "LegalProvision", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "OfficialNumber": "07.447", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [{"URL": "https://oereb-gr-preview.000.ch/api/attachments/214"}], "Title": "Revision Ortsplanung" } ] expected_results = [ { "Canton": "BL", "DocumentType": "LegalProvision", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "OfficialNumber": "3891.100", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [ {"URL": "https://oereb-gr-preview.000.ch/api/attachments/197"}, {"URL": "https://oereb-gr-preview.000.ch/api/attachments/198"}, ], "Title": "Baugesetz" }, { "Canton": "BL", "DocumentType": "LegalProvision", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "OfficialNumber": "07.447", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [ {"URL": "https://oereb-gr-preview.000.ch/api/attachments/213"}, {"URL": "https://oereb-gr-preview.000.ch/api/attachments/214"}, ], "Title": "Revision Ortsplanung" } ] assert expected_results == renderer.group_legal_provisions(test_legal_provisions)
def test_get_sorted_law(DummyRenderInfo): renderer = Renderer(DummyRenderInfo()) test_law = [ { 'DocumentType': 'Law', 'TextAtWeb': [{'URL': 'http://www.admin.ch/ch/d/sr/c814_01.html'}], 'Title': 'Raumplanungsverordnung für den Kanton Graubünden', 'Abbreviation': 'KRVO', 'OfficialNumber': 'BR 801.110', 'index': 5, 'Canton': 'GR', 'Lawstatus_Code': 'inKraft', 'Lawstatus_Text': 'Rechtskräftig', 'ResponsibleOffice_Name': u'Bundesamt für Verkehr BAV', 'ResponsibleOffice_OfficeAtWeb': 'https://www.gr-lex.gr.ch/frontend/versions/pdf_file_with_annex/2934?locale=de' }, { 'DocumentType': u'Law', 'TextAtWeb': [{'URL': u'http://www.admin.ch/ch/d/sr/c814_680.html'}], 'Title': u'Raumplanungsgesetz für den Kanton Graubünden', 'Abbreviation': u'KRG', 'index': 3, 'Canton': u'GR', 'Lawstatus_Code': u'inKraft', 'Lawstatus_Text': u'Rechtskräftig', 'ResponsibleOffice_Name': u'Bundesamt für Verkehr BAV', 'ResponsibleOffice_OfficeAtWeb': u'https://www.gr-lex.gr.ch/frontend/versions/pdf_file_with_annex/2936?locale=de' }, { 'DocumentType': u'Law', 'TextAtWeb': [{'URL': u'http://www.admin.ch/ch/d/sr/c814_680.html'}], 'Title': u'Raumplanungsgesetz für den Kanton Graubünden2', 'Abbreviation': u'KRG', 'OfficialNumber': u'BR 801.100', 'index': 1, 'Canton': u'GR', 'Lawstatus_Code': u'inKraft', 'Lawstatus_Text': u'Rechtskräftig', 'ResponsibleOffice_Name': u'Bundesamt für Verkehr BAV', 'ResponsibleOffice_OfficeAtWeb': u'https://www.gr-lex.gr.ch/frontend/versions/pdf_file_with_annex/2936?locale=de' }, { 'DocumentType': 'Law', 'TextAtWeb': [{'URL': u'http://www.admin.ch/ch/d/sr/c814_680.html'}], 'Title': 'Bundesgesetz über die Raumplanung', 'Abbreviation': 'RPG', 'OfficialNumber': 'SR 700', 'index': 4, 'Canton': 'GR', 'Lawstatus_Code': 'inKraft', 'Lawstatus_Text': 'Rechtskräftig', 'ResponsibleOffice_Name': u'Bundesamt für Verkehr BAV', 'ResponsibleOffice_OfficeAtWeb': 'http://www.lexfind.ch/dtah/167348/2' }, { 'DocumentType': u'Law', 'TextAtWeb': [{'URL': u'http://www.admin.ch/ch/d/sr/c814_680.html'}], 'Title': u'Raumplanungsgesetz für den Kanton Graubünden', 'Abbreviation': u'KRG', 'OfficialNumber': u'BR 801.100', 'index': 2, 'Canton': u'GR', 'Lawstatus_Code': u'inKraft', 'Lawstatus_Text': u'Rechtskräftig', 'ResponsibleOffice_Name': u'Bundesamt für Verkehr BAV', 'ResponsibleOffice_OfficeAtWeb': u'https://www.gr-lex.gr.ch/frontend/versions/pdf_file_with_annex/2936?locale=de' } ] expected_result = [ { 'DocumentType': u'Law', 'TextAtWeb': [{'URL': u'http://www.admin.ch/ch/d/sr/c814_680.html'}], 'Title': u'Raumplanungsgesetz für den Kanton Graubünden2', 'Abbreviation': u'KRG', 'OfficialNumber': u'BR 801.100', 'index': 1, 'Canton': u'GR', 'Lawstatus_Code': u'inKraft', 'Lawstatus_Text': u'Rechtskräftig', 'ResponsibleOffice_Name': u'Bundesamt für Verkehr BAV', 'ResponsibleOffice_OfficeAtWeb': u'https://www.gr-lex.gr.ch/frontend/versions/pdf_file_with_annex/2936?locale=de' }, { 'DocumentType': u'Law', 'TextAtWeb': [{'URL': u'http://www.admin.ch/ch/d/sr/c814_680.html'}], 'Title': u'Raumplanungsgesetz für den Kanton Graubünden', 'Abbreviation': u'KRG', 'OfficialNumber': u'BR 801.100', 'index': 2, 'Canton': u'GR', 'Lawstatus_Code': u'inKraft', 'Lawstatus_Text': u'Rechtskräftig', 'ResponsibleOffice_Name': u'Bundesamt für Verkehr BAV', 'ResponsibleOffice_OfficeAtWeb': u'https://www.gr-lex.gr.ch/frontend/versions/pdf_file_with_annex/2936?locale=de' }, { 'DocumentType': u'Law', 'TextAtWeb': [{'URL': u'http://www.admin.ch/ch/d/sr/c814_680.html'}], 'Title': u'Raumplanungsgesetz für den Kanton Graubünden', 'Abbreviation': u'KRG', 'index': 3, 'Canton': u'GR', 'Lawstatus_Code': u'inKraft', 'Lawstatus_Text': u'Rechtskräftig', 'ResponsibleOffice_Name': u'Bundesamt für Verkehr BAV', 'ResponsibleOffice_OfficeAtWeb': u'https://www.gr-lex.gr.ch/frontend/versions/pdf_file_with_annex/2936?locale=de' }, { 'DocumentType': 'Law', 'TextAtWeb': [{'URL': u'http://www.admin.ch/ch/d/sr/c814_680.html'}], 'Title': 'Bundesgesetz über die Raumplanung', 'Abbreviation': 'RPG', 'OfficialNumber': 'SR 700', 'index': 4, 'Canton': 'GR', 'Lawstatus_Code': 'inKraft', 'Lawstatus_Text': 'Rechtskräftig', 'ResponsibleOffice_Name': u'Bundesamt für Verkehr BAV', 'ResponsibleOffice_OfficeAtWeb': 'http://www.lexfind.ch/dtah/167348/2' }, { 'DocumentType': 'Law', 'TextAtWeb': [{'URL': 'http://www.admin.ch/ch/d/sr/c814_01.html'}], 'Title': 'Raumplanungsverordnung für den Kanton Graubünden', 'Abbreviation': 'KRVO', 'OfficialNumber': 'BR 801.110', 'index': 5, 'Canton': 'GR', 'Lawstatus_Code': 'inKraft', 'Lawstatus_Text': 'Rechtskräftig', 'ResponsibleOffice_Name': u'Bundesamt für Verkehr BAV', 'ResponsibleOffice_OfficeAtWeb': 'https://www.gr-lex.gr.ch/frontend/versions/pdf_file_with_annex/2934?locale=de' } ] assert expected_result == renderer.sort_dict_list(test_law, renderer.sort_hints_laws)
def test_get_sorted_hints(DummyRenderInfo): renderer = Renderer(DummyRenderInfo()) test_hints = [{ "Canton": "BL", "DocumentType": "Hint", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "OfficialNumber": "3891.100", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [{"URL": "https://oereb-gr-preview.000.ch/api/attachments/197"}], "Title": "Revision Ortsplanung" }, { "Canton": "BL", "DocumentType": "Hint", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "index": 1, "OfficialNumber": "3891.100", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [{"URL": "https://oereb-gr-preview.000.ch/api/attachments/198"}], }, { "Canton": "BL", "DocumentType": "Hint", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "index": 2, "OfficialNumber": "3891.100", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [{"URL": "https://oereb-gr-preview.000.ch/api/attachments/198"}], "Title": "Baugesetz" }] expected_result = [{ "Canton": "BL", "DocumentType": "Hint", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "index": 1, "OfficialNumber": "3891.100", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [{"URL": "https://oereb-gr-preview.000.ch/api/attachments/198"}], }, { "Canton": "BL", "DocumentType": "Hint", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "index": 2, "OfficialNumber": "3891.100", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [{"URL": "https://oereb-gr-preview.000.ch/api/attachments/198"}], "Title": "Baugesetz" }, { "Canton": "BL", "DocumentType": "Hint", "Lawstatus_Code": "inKraft", "Lawstatus_Text": "Rechtskräftig", "OfficialNumber": "3891.100", "ResponsibleOffice_Name": "Bundesamt für Verkehr BAV", "ResponsibleOffice_OfficeAtWeb": "http://www.bav.admin.ch/themen/verkehrspolitik/00709/index.html", "TextAtWeb": [{"URL": "https://oereb-gr-preview.000.ch/api/attachments/197"}], "Title": "Revision Ortsplanung" }] assert expected_result == renderer.sort_dict_list(test_hints, renderer.sort_hints_laws)
def test_get_sorted_legend(DummyRenderInfo): renderer = Renderer(DummyRenderInfo()) test_legend_list = [ { 'TypeCode': u'StaoTyp2', 'Geom_Type': u'AreaShare', 'TypeCodelist': '', 'AreaShare': 11432, 'PartInPercent': 32.6, 'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\ ch.BelasteteStandorteOeffentlicherVerkehr/1/StaoTyp2', 'LegendText': u'Belastet, untersuchungsbedürftig' }, { 'TypeCode': u'StaoTyp3', 'Geom_Type': u'LengthShare', 'TypeCodelist': '', 'LengthShare': 164, 'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\ ch.BelasteteStandorteOeffentlicherVerkehr/1/StaoTyp3', 'LegendText': u'Belastet, überwachungsbedürftig' }, { 'TypeCode': u'StaoTyp1', 'Geom_Type': u'NrOfPoints', 'TypeCodelist': '', 'NrOfPoints': 2, 'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\ ch.BelasteteStandorteOeffentlicherVerkehr/1/StaoTyp1', 'LegendText': u'Belastet, keine schädlichen oder lästigen Einwirkungen zu erwarten' }, { 'TypeCode': u'StaoTyp3', 'Geom_Type': u'LengthShare', 'TypeCodelist': '', 'LengthShare': 2000, 'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\ ch.BelasteteStandorteOeffentlicherVerkehr/1/StaoTyp3', 'LegendText': u'Belastet, untersuchungsbedürftig' }, { 'TypeCode': u'StaoTyp2', 'Geom_Type': u'AreaShare', 'TypeCodelist': '', 'AreaShare': 114, 'PartInPercent': 32.6, 'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\ ch.BelasteteStandorteOeffentlicherVerkehr/1/StaoTyp2', 'LegendText': u'Belastet, untersuchungsbedürftig' } ] sorted_list = renderer.sort_dict_list(test_legend_list, renderer.sort_legend_elem) expected_result = [ { 'TypeCode': u'StaoTyp2', 'Geom_Type': u'AreaShare', 'TypeCodelist': '', 'AreaShare': 11432, 'PartInPercent': 32.6, 'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\ ch.BelasteteStandorteOeffentlicherVerkehr/1/StaoTyp2', 'LegendText': u'Belastet, untersuchungsbedürftig' }, { 'TypeCode': u'StaoTyp2', 'Geom_Type': u'AreaShare', 'TypeCodelist': '', 'AreaShare': 114, 'PartInPercent': 32.6, 'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\ ch.BelasteteStandorteOeffentlicherVerkehr/1/StaoTyp2', 'LegendText': u'Belastet, untersuchungsbedürftig' }, { 'TypeCode': u'StaoTyp3', 'Geom_Type': u'LengthShare', 'TypeCodelist': '', 'LengthShare': 2000, 'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\ ch.BelasteteStandorteOeffentlicherVerkehr/1/StaoTyp3', 'LegendText': u'Belastet, untersuchungsbedürftig' }, { 'TypeCode': u'StaoTyp3', 'Geom_Type': u'LengthShare', 'TypeCodelist': '', 'LengthShare': 164, 'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\ ch.BelasteteStandorteOeffentlicherVerkehr/1/StaoTyp3', 'LegendText': u'Belastet, überwachungsbedürftig' }, { 'TypeCode': u'StaoTyp1', 'Geom_Type': u'NrOfPoints', 'TypeCodelist': '', 'NrOfPoints': 2, 'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\ ch.BelasteteStandorteOeffentlicherVerkehr/1/StaoTyp1', 'LegendText': u'Belastet, keine schädlichen oder lästigen Einwirkungen zu erwarten' } ] assert sorted_list == expected_result
def test_legend(pyramid_oereb_test_config, extract, geometry, DummyRenderInfo): renderer = Renderer(DummyRenderInfo) renderer.convert_to_printable_extract(extract, geometry) first_plr = extract.get('RealEstate_RestrictionOnLandownership')[0] assert isinstance(first_plr, dict)
def test_default_wms_url_param_config(DummyRenderInfo): renderer = Renderer(DummyRenderInfo()) config = renderer.get_wms_url_params() # Do the check for this test. Value should be the default setting. assert config == {'TRANSPARENT': 'true'}