Esempio n. 1
0
def test_get_custom_wms_params_true():
    Config._config = None
    Config.init('./tests/contrib/print_proxy/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('./pyramid_oereb/standard/pyramid_oereb.yml', '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'}
Esempio n. 2
0
def test_legend():
    renderer = Renderer(DummyRenderInfo())
    pdf_to_join = set()
    printable_extract = extract()
    renderer.convert_to_printable_extract(printable_extract, geometry(), pdf_to_join)
    first_plr = printable_extract.get('RealEstate_RestrictionOnLandownership')[0]
    assert isinstance(first_plr, dict)
def test_load_sorter():
    module_name = "pyramid_oereb.contrib.print_proxy.sub_themes.sorting"
    class_alphabetic_sort = "AlphabeticSort"
    class_list_sort = "ListSort"
    alphabetic_sort = Renderer._load_sorter(module_name, class_alphabetic_sort)
    assert alphabetic_sort == AlphabeticSort
    list_sort = Renderer._load_sorter(module_name, class_list_sort)
    assert list_sort == ListSort
Esempio n. 4
0
def test_config_wms_url_params():
    Config._config = None
    Config.init('./tests/contrib/print_proxy/resources/test_config.yml',
                'pyramid_oereb')
    renderer = Renderer(DummyRenderInfo())
    config = renderer.get_wms_url_params()
    # Restore normal config
    Config._config = None
    Config.init('./pyramid_oereb/standard/pyramid_oereb.yml', 'pyramid_oereb')
    # Do the check for this test. Value should match the one from the YAML configuration.
    assert config == {'TRANSPARENT': 'true', 'OTHERCUSTOM': 'myvalue'}
Esempio n. 5
0
def test_bad_config_wms_url_params():
    Config._config = None
    Config.init('./tests/contrib/print_proxy/resources/test_bad_config.yml',
                'pyramid_oereb')
    renderer = Renderer(DummyRenderInfo())
    config = renderer.get_wms_url_params()
    # Restore normal config
    Config._config = None
    Config.init('./pyramid_oereb/standard/pyramid_oereb.yml', 'pyramid_oereb')
    # Do the check for this test. Value should be empty.
    assert config == {}
Esempio n. 6
0
def test_mapfish_print_entire_extract():
    renderer = Renderer(DummyRenderInfo())
    pdf_to_join = set()
    printable_extract = extract()
    renderer.convert_to_printable_extract(printable_extract, geometry(),
                                          pdf_to_join)
    # Uncomment to print the result
    # f = open('/tmp/printable_extract.json', 'w')
    # f.write(json.dumps(printable_extract))
    # f.close()
    assert deepCompare(printable_extract, expected_printable_extract())
    # Do it twice, to test all keys in each reports
    assert deepCompare(expected_printable_extract(), printable_extract)
Esempio n. 7
0
def test_get_custom_wms_params_false():
    Config._config = None
    Config.init('./tests/contrib/print_proxy/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('./pyramid_oereb/standard/pyramid_oereb.yml', 'pyramid_oereb')

    assert config == {'OTHERCUSTOM': 'myvalue', 'TRANSPARENT': 'true'}
def test_mapfish_print_entire_extract():
    renderer = Renderer(DummyRenderInfo())
    pdf_to_join = set()
    printable_extract = extract()
    renderer.convert_to_printable_extract(printable_extract, geometry(),
                                          pdf_to_join)
    # Uncomment to print the result
    # f = open('/tmp/printable_extract.json', 'w')
    # f.write(json.dumps(printable_extract))
    # f.close()

    expected = expected_printable_extract()
    # FIXME Do the test only in python 2 because order of item are different
    # in some cases with python 3. The Error will not be possible anymore with
    # https://github.com/openoereb/pyramid_oereb/issues/651
    if sys.version_info.major == 2:
        assert deepCompare(printable_extract, expected)
        # Do it twice, to test all keys in each reports
        assert deepCompare(expected, printable_extract)
def test_split_restrictions_by_theme_code():
    test_data = [{
        "Theme_Code": "ContaminatedPublicTransportSites",
        "SubTheme": "SubTheme1"
    }, {
        "Theme_Code": "ContaminatedPublicTransportSites",
        "SubTheme": "SubTheme2"
    }, {
        "Theme_Code": "ContaminatedPublicTransportSites",
        "SubTheme": "SubTheme3"
    }, {
        "Theme_Code": "GroundwaterProtectionZones",
        "SubTheme": "SubTheme1a"
    }, {
        "Theme_Code": "GroundwaterProtectionZones",
        "SubTheme": "SubTheme2a"
    }]

    expected_result = {
        "ContaminatedPublicTransportSites": [{
            "Theme_Code": "ContaminatedPublicTransportSites",
            "SubTheme": "SubTheme1"
        }, {
            "Theme_Code": "ContaminatedPublicTransportSites",
            "SubTheme": "SubTheme2"
        }, {
            "Theme_Code": "ContaminatedPublicTransportSites",
            "SubTheme": "SubTheme3"
        }],
        "GroundwaterProtectionZones": [{
            "Theme_Code": "GroundwaterProtectionZones",
            "SubTheme": "SubTheme1a"
        }, {
            "Theme_Code": "GroundwaterProtectionZones",
            "SubTheme": "SubTheme2a"
        }]
    }

    splitted = Renderer._split_restrictions_by_theme_code(test_data)
    for theme in splitted:
        for index in range(len(splitted[theme])):
            assert splitted[theme][index]["Theme_Code"] == expected_result[
                theme][index]["Theme_Code"]
            assert splitted[theme][index]["SubTheme"] == expected_result[
                theme][index]["SubTheme"]
Esempio n. 10
0
def test_default_wms_url_param_config():
    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'}
Esempio n. 11
0
def test_mapfish_print_entire_extract():
    renderer = Renderer(DummyRenderInfo())
    pdf_to_join = set()
    printable_extract = extract()
    renderer.convert_to_printable_extract(printable_extract, geometry(), pdf_to_join)
    assert printable_extract == expected_printable_extract()
def test_archive_pdf():
    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():
    renderer = Renderer(DummyRenderInfo())
    test_legal_provisions = [{
        "Canton":
        "BL",
        "DocumentType":
        "LegalProvision",
        "Lawstatus_Code":
        "inForce",
        "Lawstatus_Text":
        "in Kraft",
        "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":
        "inForce",
        "Lawstatus_Text":
        "in Kraft",
        "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":
        "inForce",
        "Lawstatus_Text":
        "in Kraft",
        "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":
        "inForce",
        "Lawstatus_Text":
        "in Kraft",
        "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":
        "inForce",
        "Lawstatus_Text":
        "in Kraft",
        "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":
        "inForce",
        "Lawstatus_Text":
        "in Kraft",
        "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():
    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',
        'Canton':
        'GR',
        'Lawstatus_Code':
        'inForce',
        'Lawstatus_Text':
        'in Kraft',
        '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',
        'Canton':
        u'GR',
        'Lawstatus_Code':
        u'inForce',
        'Lawstatus_Text':
        u'in Kraft',
        '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',
        'Canton':
        u'GR',
        'Lawstatus_Code':
        u'inForce',
        'Lawstatus_Text':
        u'in Kraft',
        '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',
        'Canton':
        'GR',
        'Lawstatus_Code':
        'inForce',
        'Lawstatus_Text':
        'in Kraft',
        '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',
        'Canton':
        u'GR',
        'Lawstatus_Code':
        u'inForce',
        'Lawstatus_Text':
        u'in Kraft',
        '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ünden',
        'Abbreviation':
        u'KRG',
        'OfficialNumber':
        u'BR 801.100',
        'Canton':
        u'GR',
        'Lawstatus_Code':
        u'inForce',
        'Lawstatus_Text':
        u'in Kraft',
        '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',
        'Canton':
        u'GR',
        'Lawstatus_Code':
        u'inForce',
        'Lawstatus_Text':
        u'in Kraft',
        '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': 'http://www.admin.ch/ch/d/sr/c814_01.html'
        }],
        'Title':
        'Raumplanungsverordnung für den Kanton Graubünden',
        'Abbreviation':
        'KRVO',
        'OfficialNumber':
        'BR 801.110',
        'Canton':
        'GR',
        'Lawstatus_Code':
        'inForce',
        'Lawstatus_Text':
        'in Kraft',
        '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':
        'Law',
        'TextAtWeb': [{
            'URL': u'http://www.admin.ch/ch/d/sr/c814_680.html'
        }],
        'Title':
        'Bundesgesetz über die Raumplanung',
        'Abbreviation':
        'RPG',
        'OfficialNumber':
        'SR 700',
        'Canton':
        'GR',
        'Lawstatus_Code':
        'inForce',
        'Lawstatus_Text':
        'in Kraft',
        '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',
        'Canton':
        u'GR',
        'Lawstatus_Code':
        u'inForce',
        'Lawstatus_Text':
        u'in Kraft',
        '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'
    }]
    assert expected_result == renderer.sort_dict_list(test_law,
                                                      renderer.sort_laws)
def test_get_sorted_legend():
    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/\
                        ContaminatedPublicTransportSites/1/StaoTyp2',
        'Information': u'Belastet, untersuchungsbedürftig'
    }, {
        'TypeCode': u'StaoTyp3',
        'Geom_Type': u'LengthShare',
        'TypeCodelist': '',
        'LengthShare': 164,
        'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\
                        ContaminatedPublicTransportSites/1/StaoTyp3',
        'Information': u'Belastet, überwachungsbedürftig'
    }, {
        'TypeCode':
        u'StaoTyp1',
        'Geom_Type':
        u'NrOfPoints',
        'TypeCodelist':
        '',
        'NrOfPoints':
        2,
        'SymbolRef':
        u'http://localhost:6543/oereb/image/symbol/\
                        ContaminatedPublicTransportSites/1/StaoTyp1',
        'Information':
        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/\
                        ContaminatedPublicTransportSites/1/StaoTyp3',
        'Information': 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/\
                        ContaminatedPublicTransportSites/1/StaoTyp2',
        'Information': 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/\
                        ContaminatedPublicTransportSites/1/StaoTyp2',
        'Information': 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/\
                        ContaminatedPublicTransportSites/1/StaoTyp2',
        'Information': u'Belastet, untersuchungsbedürftig'
    }, {
        'TypeCode': u'StaoTyp3',
        'Geom_Type': u'LengthShare',
        'TypeCodelist': '',
        'LengthShare': 2000,
        'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\
                        ContaminatedPublicTransportSites/1/StaoTyp3',
        'Information': u'Belastet, untersuchungsbedürftig'
    }, {
        'TypeCode': u'StaoTyp3',
        'Geom_Type': u'LengthShare',
        'TypeCodelist': '',
        'LengthShare': 164,
        'SymbolRef': u'http://localhost:6543/oereb/image/symbol/\
                        ContaminatedPublicTransportSites/1/StaoTyp3',
        'Information': u'Belastet, überwachungsbedürftig'
    }, {
        'TypeCode':
        u'StaoTyp1',
        'Geom_Type':
        u'NrOfPoints',
        'TypeCodelist':
        '',
        'NrOfPoints':
        2,
        'SymbolRef':
        u'http://localhost:6543/oereb/image/symbol/\
                        ContaminatedPublicTransportSites/1/StaoTyp1',
        'Information':
        u'Belastet, keine schädlichen oder lästigen Einwirkungen zu erwarten'
    }]
    assert sorted_list == expected_result