caluire-axel: allow GETFAMILLE elements in any order (#55721)

This commit is contained in:
Frédéric Péters 2021-07-20 19:17:31 +02:00 committed by Thomas NOËL
parent f6aafa93c3
commit 46c6fbe4f6
3 changed files with 157 additions and 5 deletions

View File

@ -23,12 +23,12 @@
</xsd:redefine>
<xsd:complexType name="GETFAMILLEType">
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="CODE" />
<xsd:element ref="RESPONSABLE1" minOccurs="0" maxOccurs="1" />
<xsd:element ref="RESPONSABLE2" minOccurs="0" maxOccurs="1" />
<xsd:element ref="MEMBRE" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:element ref="RESPONSABLE1" />
<xsd:element ref="RESPONSABLE2" />
<xsd:element ref="MEMBRE" />
</xsd:choice>
</xsd:complexType>
<xsd:element name="CODE" type="xsd:integer"/>

View File

@ -0,0 +1,135 @@
<PORTAIL>
<GETFAMILLE>
<CODE>0</CODE>
<MEMBRE>
<IDENT>11111</IDENT>
<CIVILITE />
<NOM>CALUIRE TEST</NOM>
<PRENOM>Enfant 1 </PRENOM>
<NAISSANCE>10/10/2013</NAISSANCE>
<SEXE>M</SEXE>
<NOMJF />
<TELFIXE />
<TELPORTABLE />
<MAIL />
<PAI>N</PAI>
<GARDEALTERNEE>O</GARDEALTERNEE>
<ADRESSE>
<ADRESSE3 />
<ADRESSE4 />
<NORUE>30</NORUE>
<ADRESSE1>RUE PASTEUR</ADRESSE1>
<ADRESSE2 />
<CODEPOSTAL>69300</CODEPOSTAL>
<VILLE>CALUIRE ET CUIRE</VILLE>
<PAYS />
<NPAI />
</ADRESSE>
<FAMILLE>
<IDENTFAMILLE>16777</IDENTFAMILLE>
<PLACE>3</PLACE>
<SITUATION>S&#233;par&#233;</SITUATION>
<QUALITER1>M&#232;re</QUALITER1>
<QUALITER2>P&#232;re</QUALITER2>
</FAMILLE>
</MEMBRE>
<RESPONSABLE1>
<IDENT>50630</IDENT>
<CIVILITE>MME</CIVILITE>
<NOM>CALUIRE TEST 1</NOM>
<PRENOM>Maman</PRENOM>
<NAISSANCE>07/07/1975</NAISSANCE>
<SEXE>F</SEXE>
<NOMJF />
<TELFIXE>0235384722</TELFIXE>
<TELPORTABLE>0619290316</TELPORTABLE>
<MAIL>mamanbobo@caluire.fr</MAIL>
<CSP />
<EMPLOYEUR />
<VILLEEMP />
<PAI>N</PAI>
<GARDEALTERNEE>N</GARDEALTERNEE>
<ADRESSE>
<ADRESSE3 />
<ADRESSE4 />
<NORUE>30</NORUE>
<ADRESSE1>RUE PASTEUR</ADRESSE1>
<ADRESSE2 />
<CODEPOSTAL>69300</CODEPOSTAL>
<VILLE>CALUIRE ET CUIRE</VILLE>
<PAYS />
<NPAI />
</ADRESSE>
<FAMILLE>
<IDENTFAMILLE>16777</IDENTFAMILLE>
<PLACE>1</PLACE>
<SITUATION>S&#233;par&#233;</SITUATION>
</FAMILLE>
</RESPONSABLE1>
<RESPONSABLE2>
<IDENT>50631</IDENT>
<CIVILITE>M</CIVILITE>
<NOM>CALUIRE TEST 1</NOM>
<PRENOM>Papa </PRENOM>
<NAISSANCE>06/09/1875</NAISSANCE>
<SEXE>M</SEXE>
<NOMJF />
<TELFIXE>02 00 00 00 00</TELFIXE>
<TELPORTABLE>09 00 00 00 00</TELPORTABLE>
<MAIL>papaben@caluire.fr</MAIL>
<CSP />
<EMPLOYEUR />
<VILLEEMP />
<PAI>N</PAI>
<GARDEALTERNEE>N</GARDEALTERNEE>
<ADRESSE>
<ADRESSE3 />
<ADRESSE4 />
<NORUE>50</NORUE>
<ADRESSE1>RUE CURIE</ADRESSE1>
<ADRESSE2 />
<CODEPOSTAL>69300</CODEPOSTAL>
<VILLE>CALUIRE ET CUIRE</VILLE>
<PAYS />
<NPAI />
</ADRESSE>
<FAMILLE>
<IDENTFAMILLE>16777</IDENTFAMILLE>
<PLACE>2</PLACE>
<SITUATION>S&#233;par&#233;</SITUATION>
</FAMILLE>
</RESPONSABLE2>
<MEMBRE>
<IDENT>22222</IDENT>
<CIVILITE />
<NOM>CALUIRE TEST</NOM>
<PRENOM>Enfant 2 </PRENOM>
<NAISSANCE>12/12/2012</NAISSANCE>
<SEXE>F</SEXE>
<NOMJF />
<TELFIXE />
<TELPORTABLE />
<MAIL />
<PAI>N</PAI>
<GARDEALTERNEE>N</GARDEALTERNEE>
<ADRESSE>
<ADRESSE3 />
<ADRESSE4 />
<NORUE>30</NORUE>
<ADRESSE1>RUE PASTEUR</ADRESSE1>
<ADRESSE2 />
<CODEPOSTAL>69300</CODEPOSTAL>
<VILLE>CALUIRE ET CUIRE</VILLE>
<PAYS />
<NPAI />
</ADRESSE>
<FAMILLE>
<IDENTFAMILLE>16777</IDENTFAMILLE>
<PLACE>3</PLACE>
<SITUATION>S&#233;par&#233;</SITUATION>
<QUALITER1>M&#232;re</QUALITER1>
<QUALITER2>P&#232;re</QUALITER2>
</FAMILLE>
</MEMBRE>
</GETFAMILLE>
</PORTAIL>

View File

@ -499,6 +499,23 @@ def test_family_info_endpoint(app, resource):
resp = app.get('/caluire-axel/test/family_info?NameID=yyy')
assert resp.json['err'] == 0
# misordered XML (one MEMBER before RESPONSABLE1)
Link.objects.create(resource=resource, name_id='bar', family_id='YYY', person_id='24')
filepath = os.path.join(os.path.dirname(__file__), 'data/caluire_axel/family_info_misordered.xml')
with open(filepath) as xml:
content = xml.read()
with mock_data(content, 'GetFamilleIndividus'):
resp = app.get('/caluire-axel/test/family_info?NameID=bar')
assert resp.json['err'] == 0
assert set(resp.json['data'].keys()) == set(
['family_id', 'CODE', 'MEMBRE', 'RESPONSABLE1', 'RESPONSABLE2']
)
assert resp.json['data']['family_id'] == 'YYY'
assert resp.json['data']['MEMBRE'][0]['id'] == '11111'
assert resp.json['data']['MEMBRE'][0]['text'] == 'Enfant 1 CALUIRE TEST'
assert resp.json['data']['MEMBRE'][1]['id'] == '22222'
assert resp.json['data']['MEMBRE'][1]['text'] == 'Enfant 2 CALUIRE TEST'
def test_children_info_endpoint_axel_error(app, resource):
Link.objects.create(resource=resource, name_id='yyy', family_id='XXX', person_id='42')