Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test #292

Closed
wants to merge 5 commits into from
Closed

test #292

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .codacy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
engines:
pylintpython3:
enabled: true
python_version: 3
4 changes: 4 additions & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[FORMAT]

# Maximum number of characters on a single line.
max-line-length=110
3 changes: 2 additions & 1 deletion CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ Changelog
2.0.5
-----

Supported GEO-Link API versions: v1.0.0, v1.1.0, v1.1.1, v1.2.0, v1.2.1, v1.2.2 (default), v1.2.3
Supported GEO-Link API versions: v1.0.0, v1.1.0, v1.1.1, v1.2.0, v1.2.1, v1.2.2, v1.2.3, v1.2.4 (default)

- Fix html rendering of documents with abrogation date
- Dependency updates

2.0.4
-----
Expand Down
5 changes: 4 additions & 1 deletion geolink_formatter/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,16 @@ class SCHEMA(object):
V1_2_3 = '1.2.3'
"""str: geoLink schema version 1.2.3"""

V1_2_4 = '1.2.4'
"""str: geoLink schema version 1.2.3"""


class XML(object):

_date_format = '%Y-%m-%d'
"""str: Format of date values in XML."""

def __init__(self, host_url=None, version='1.2.2', dtd_validation=False, xsd_validation=True):
def __init__(self, host_url=None, version='1.2.4', dtd_validation=False, xsd_validation=True):
"""Create a new XML parser instance containing the geoLink XSD for validation.

Args:
Expand Down
166 changes: 166 additions & 0 deletions geolink_formatter/schema/v1.2.4.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'
xmlns:vc='http://www.w3.org/2007/XMLSchema-versioning'
vc:minVersion='1.1'>
<xs:element name="geolinks">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element name="document" type="geolink_document"></xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="prepublinks">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element name="document">
<xs:alternative test="@doctype = 'prepublication'" type="prepublink_prepublication_document"/>
<xs:alternative type="prepublink_other_document"/>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="document_base">
<xs:sequence>
<xs:element name="file" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="main" />
<xs:enumeration value="additional" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="description" type="xs:string" />
<xs:attribute name="href" type="xs:string" />
<xs:attribute name="title" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" />
<xs:attribute name="federal_level">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="A livello intercantonale" />
<xs:enumeration value="Bezirk" />
<xs:enumeration value="Bund" />
<xs:enumeration value="Canton" />
<xs:enumeration value="Cantone" />
<xs:enumeration value="Chantun" />
<xs:enumeration value="Commune" />
<xs:enumeration value="Comune" />
<xs:enumeration value="Confédération" />
<xs:enumeration value="Confederazione" />
<xs:enumeration value="Confederaziun" />
<xs:enumeration value="Fürstentum" />
<xs:enumeration value="Gemeinde" />
<xs:enumeration value="Intercantonal" />
<xs:enumeration value="Interchantunal" />
<xs:enumeration value="Interkantonal" />
<xs:enumeration value="Kanton" />
<xs:enumeration value="Vischnanca" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="language">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="de" />
<xs:enumeration value="fr" />
<xs:enumeration value="it" />
<xs:enumeration value="rm" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="authority" type="xs:string" />
<xs:attribute name="authority_url" type="xs:string" />
<xs:attribute name="cycle" type="xs:string" />
<xs:attribute name="title" type="xs:string" />
<xs:attribute name="number" type="xs:string" />
<xs:attribute name="abbreviation" type="xs:string" />
<xs:attribute name="instance" type="xs:string" />
<xs:attribute name="type" type="xs:string" />
<xs:attribute name="subtype" type="xs:string" />
<xs:attribute name="approval_date" type="xs:string" />
<xs:attribute name="publication_date" type="xs:string" />
<xs:attribute name="index" type="xs:integer" />
</xs:complexType>
<xs:complexType name="prepublink_prepublication_document">
<xs:complexContent>
<xs:extension base="document_base">
<xs:attribute name="municipality" type="xs:string" />
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="main" />
<xs:enumeration value="related" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="status" type="xs:string" />
<xs:attribute name="status_start_date" type="xs:string" />
<xs:attribute name="status_end_date" type="xs:string" />
<xs:attribute name="doctype">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="prepublication" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="prepublink_other_document">
<xs:complexContent>
<xs:extension base="document_base">
<xs:attribute name="municipality" type="xs:string" />
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="main" />
<xs:enumeration value="related" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="decree_date" type="xs:string" />
<xs:attribute name="enactment_date" type="xs:string" />
<xs:attribute name="abrogation_date" type="xs:string" />
<xs:attribute name="doctype">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="edict" />
<xs:enumeration value="decree" />
<xs:enumeration value="notice" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="geolink_document">
<xs:complexContent>
<xs:extension base="document_base">
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="main" />
<xs:enumeration value="related" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="municipality" type="xs:string" />
<xs:attribute name="decree_date" type="xs:string" />
<xs:attribute name="enactment_date" type="xs:string" />
<xs:attribute name="abrogation_date" type="xs:string" />
<xs:attribute name="doctype">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="edict" />
<xs:enumeration value="decree" />
<xs:enumeration value="notice" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
45 changes: 45 additions & 0 deletions tests/resources/geolink_v1.2.4.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<geolinks>
<document authority="Bauverwaltung Gemeinde" authority_url="http%3A%2F%2Fwww.zihlschlacht-sitterdorf.ch"
category="main" doctype="decree" enactment_date="2001-03-27"
federal_level="Gemeinde" id="1500" instance="DBU" subtype="Gestaltungsplan"
title="Tiefkühllager" type="Sondernutzungsplan" decree_date="2001-03-15" number="1A"
abbreviation="abbr" municipality="Testgemeinde">
<file category="main" href="/api/attachments/4735" title="2918-E-1.pdf" description="2918-E-1.pdf"></file>
<file category="additional" href="/api/attachments/4736" title="2918-P-1.pdf" description="Plan 1"></file>
<file category="additional" href="/api/attachments/4737" title="2918-P-2.pdf" description="Plan 2"></file>
<file category="additional" href="/api/attachments/4738" title="2918-P-3.pdf" description="Plan 3"></file>
<file category="additional" href="/api/attachments/4739" title="2918-S-1.pdf" description=""></file>

</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2011-12-21" doctype="edict" enactment_date="2017-04-01"
federal_level="Kanton" id="4782" title="Planungs- und Baugesetz">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1379?locale=de"
description="700.pdf"
title="700.pdf"></file>

</document>
<document authority="Bundeskanzlei" authority_url="https%3A%2F%2Fwww.bk.admin.ch" category="related"
doctype="edict" enactment_date="2016-01-01" federal_level="Bund" id="4776"
title="Bundesgesetz über die Raumplanung"
index="1">
<file category="main" href="http://www.lexfind.ch/dtah/136884/2" description="700.de.pdf" title="700.de.pdf"></file>

</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2012-09-18" doctype="edict" enactment_date="2016-11-05"
federal_level="Kanton" id="4783"
title="Verordnung des Regierungsrates zum Planungs- und Baugesetz und zur Interkantonalen Vereinbarung über die Harmonisierung der Baubegriffe"
index="2">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1319?locale=de"
description="700.1.pdf"
title="700.1.pdf"></file>

</document>
<document category="related" doctype="notice" id="4" title="Beispiel Hinweis Dokument" index="3">
<file category="main" href="/api/attachments/5101" description="example_notice.pdf" title="example_notice.pdf"></file>
</document>
</geolinks>
45 changes: 45 additions & 0 deletions tests/resources/geolink_v1.2.4_error_status.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<geolinks>
<document authority="Bauverwaltung Gemeinde" authority_url="http%3A%2F%2Fwww.zihlschlacht-sitterdorf.ch"
category="main" doctype="decree" enactment_date="2001-03-27"
federal_level="Gemeinde" id="1500" instance="DBU" subtype="Gestaltungsplan"
title="Tiefkühllager" type="Sondernutzungsplan" decree_date="2001-03-15" number="1A"
abbreviation="abbr" municipality="Testgemeinde" status="status_1">
<file category="main" href="/api/attachments/4735" title="2918-E-1.pdf" description="2918-E-1.pdf"></file>
<file category="additional" href="/api/attachments/4736" title="2918-P-1.pdf" description="Plan 1"></file>
<file category="additional" href="/api/attachments/4737" title="2918-P-2.pdf" description="Plan 2"></file>
<file category="additional" href="/api/attachments/4738" title="2918-P-3.pdf" description="Plan 3"></file>
<file category="additional" href="/api/attachments/4739" title="2918-S-1.pdf" description=""></file>

</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2011-12-21" doctype="edict" enactment_date="2017-04-01"
federal_level="Kanton" id="4782" title="Planungs- und Baugesetz">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1379?locale=de"
description="700.pdf"
title="700.pdf"></file>

</document>
<document authority="Bundeskanzlei" authority_url="https%3A%2F%2Fwww.bk.admin.ch" category="related"
doctype="edict" enactment_date="2016-01-01" federal_level="Bund" id="4776"
title="Bundesgesetz über die Raumplanung"
index="1">
<file category="main" href="http://www.lexfind.ch/dtah/136884/2" description="700.de.pdf" title="700.de.pdf"></file>

</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2012-09-18" doctype="edict" enactment_date="2016-11-05"
federal_level="Kanton" id="4783"
title="Verordnung des Regierungsrates zum Planungs- und Baugesetz und zur Interkantonalen Vereinbarung über die Harmonisierung der Baubegriffe"
index="2">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1319?locale=de"
description="700.1.pdf"
title="700.1.pdf"></file>

</document>
<document category="related" doctype="notice" id="4" title="Beispiel Hinweis Dokument" index="3">
<file category="main" href="/api/attachments/5101" description="example_notice.pdf" title="example_notice.pdf"></file>
</document>
</geolinks>
51 changes: 51 additions & 0 deletions tests/resources/prepublink_v1.2.4.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<prepublinks>
<document authority="Bauverwaltung Gemeinde" authority_url="http%3A%2F%2Fwww.zihlschlacht-sitterdorf.ch" doctype="prepublication" federal_level="Gemeinde" id="7395" municipality="Testgemeinde" category="main" instance="Gemeinde" status="RBG (1) beschlossen, Genehmigungsantrag ausstehend" status_start_date="2022-01-01" status_end_date="2023-01-01" title="Tiefkühllager" type="Sondernutzungsplan">
<file category="main" href="/api/attachments/4735" title="2918-E-1.pdf" description="2918-E-1.pdf"></file>
<file category="additional" href="/api/attachments/4736" title="2918-P-1.pdf" description="Plan 1"></file>
<file category="additional" href="/api/attachments/4737" title="2918-P-2.pdf" description="Plan 2"></file>
<file category="additional" href="/api/attachments/4738" title="2918-P-3.pdf" description="Plan 3"></file>
<file category="additional" href="/api/attachments/4739" title="2918-S-1.pdf" description=""></file>
</document>
<document authority="Bauverwaltung Gemeinde" authority_url="http%3A%2F%2Fwww.zihlschlacht-sitterdorf.ch"
category="main" doctype="decree" enactment_date="2001-03-27"
federal_level="Gemeinde" id="1500" instance="DBU" subtype="Gestaltungsplan"
title="Tiefkühllager" type="Sondernutzungsplan" decree_date="2001-03-15" number="1A"
abbreviation="abbr" municipality="Testgemeinde">
<file category="main" href="/api/attachments/4735" title="2918-E-1.pdf" description="2918-E-1.pdf"></file>
<file category="additional" href="/api/attachments/4736" title="2918-P-1.pdf" description="Plan 1"></file>
<file category="additional" href="/api/attachments/4737" title="2918-P-2.pdf" description="Plan 2"></file>
<file category="additional" href="/api/attachments/4738" title="2918-P-3.pdf" description="Plan 3"></file>
<file category="additional" href="/api/attachments/4739" title="2918-S-1.pdf" description=""></file>
</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2011-12-21" doctype="edict" enactment_date="2017-04-01"
federal_level="Kanton" id="4782" title="Planungs- und Baugesetz">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1379?locale=de"
description="700.pdf"
title="700.pdf"></file>

</document>
<document authority="Bundeskanzlei" authority_url="https%3A%2F%2Fwww.bk.admin.ch" category="related"
doctype="edict" enactment_date="2016-01-01" federal_level="Bund" id="4776"
title="Bundesgesetz über die Raumplanung"
index="1">
<file category="main" href="http://www.lexfind.ch/dtah/136884/2" description="700.de.pdf" title="700.de.pdf"></file>

</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2012-09-18" doctype="edict" enactment_date="2016-11-05"
federal_level="Kanton" id="4783"
title="Verordnung des Regierungsrates zum Planungs- und Baugesetz und zur Interkantonalen Vereinbarung über die Harmonisierung der Baubegriffe"
index="2">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1319?locale=de"
description="700.1.pdf"
title="700.1.pdf"></file>

</document>
<document category="related" doctype="notice" id="4" title="Beispiel Hinweis Dokument" index="3">
<file category="main" href="/api/attachments/5101" description="example_notice.pdf" title="example_notice.pdf"></file>
</document>
</prepublinks>
Loading
Loading