scrib: always send numBac if present (#85548)
gitea/passerelle/pipeline/head This commit looks good
Details
gitea/passerelle/pipeline/head This commit looks good
Details
This commit is contained in:
parent
dd87030c50
commit
514c3f1995
|
@ -50,8 +50,7 @@ class SOAPScrib(AbstractSOAPConnector):
|
|||
post={'request_body': {'schema': {'application/json': DICT_SCHEMA}}},
|
||||
)
|
||||
def depot(self, request, post_data):
|
||||
# clean "bac" list: keep only bacCollecteXXX + numBacCollecteXXX if
|
||||
# bacCollecteXXX is True and numBacCollecteXXX is a positive integer
|
||||
# clean "bac" list: keep only bacCollecteXXX if bacCollecteXXX is True
|
||||
if not isinstance(post_data.get('demandeBacs', {}).get('bac'), list):
|
||||
raise APIError('missing demandeBacs/bac list', http_status=400)
|
||||
|
||||
|
@ -65,10 +64,11 @@ class SOAPScrib(AbstractSOAPConnector):
|
|||
for key in [k for k in bac if k.startswith('bac')]:
|
||||
if bac[key] not in (True, 'true', 'True', 1, '1'):
|
||||
continue
|
||||
num = 'numBac' + key[3:]
|
||||
if lax_int(bac.get(num)): # is a strict positive integer
|
||||
cleaned_bac[key] = 'true'
|
||||
cleaned_bac[num] = bac[num]
|
||||
cleaned_bac[key] = 'true'
|
||||
numkey = 'numBac' + key[3:]
|
||||
num = (bac.get(numkey, '') or '').strip()
|
||||
if num:
|
||||
cleaned_bac[numkey] = num
|
||||
if cleaned_bac:
|
||||
cleaned_bacs.append(cleaned_bac)
|
||||
demandeBacs['bac'] = cleaned_bacs
|
||||
|
|
|
@ -36,26 +36,28 @@ RSPS_ERR_TECH = """<?xml version="1.0" encoding="UTF-8"?>
|
|||
</ns2:depotResponse></S:Body></S:Envelope>"""
|
||||
|
||||
WCS_WSCALL = {
|
||||
# new request (no numBac)
|
||||
'demandeBacs/bac/0/bacCollecteDechetsMenagers': 'true',
|
||||
'demandeBacs/bac/0/bacCollecteSelective': 'false',
|
||||
'demandeBacs/bac/0/bacCollecteVerre': 'false',
|
||||
'demandeBacs/bac/0/numBacCollecteDechetsMenagers': '2',
|
||||
'demandeBacs/bac/0/numBacCollecteSelective': '0',
|
||||
'demandeBacs/bac/0/numBacCollecteVerre': '0',
|
||||
'demandeBacs/bac/0/numBacCollecteDechetsMenagers': '',
|
||||
'demandeBacs/bac/0/numBacCollecteSelective': None,
|
||||
# error
|
||||
'demandeBacs/bac/1': 'not-a-dict',
|
||||
# renewal (numBac)
|
||||
'demandeBacs/bac/2/bacCollecteDechetsMenagers': 'false',
|
||||
'demandeBacs/bac/2/bacCollecteSelective': 1,
|
||||
'demandeBacs/bac/2/bacCollecteVerre': 'false',
|
||||
'demandeBacs/bac/2/numBacCollecteDechetsMenagers': '2',
|
||||
'demandeBacs/bac/2/numBacCollecteSelective': '5',
|
||||
'demandeBacs/bac/2/numBacCollecteVerre': '3',
|
||||
'demandeBacs/bac/2/numBacCollecteSelective': '576X9812',
|
||||
# no request (nothing is True)
|
||||
'demandeBacs/bac/3/bacCollecteDechetsMenagers': 'false',
|
||||
'demandeBacs/bac/3/bacCollecteSelective': '',
|
||||
'demandeBacs/bac/3/bacCollecteVerre': 'blah',
|
||||
'demandeBacs/bac/3/bacCollecteAutre': 'true', # no numBacCollecteAutre
|
||||
'demandeBacs/bac/3/numBacCollecteDechetsMenagers': '2',
|
||||
'demandeBacs/bac/3/numBacCollecteSelective': '0',
|
||||
'demandeBacs/bac/3/numBacCollecteVerre': '0',
|
||||
'demandeBacs/bac/3/numBacCollecteDechetsMenagers': '',
|
||||
'demandeBacs/bac/3/numBacCollecteSelective': None,
|
||||
'demandeBacs/bac/3/numBacCollecteVerre': 0,
|
||||
# others parameters
|
||||
'demandeBacs/codeCivel': '1140206',
|
||||
'demandeBacs/codePostal': '44000',
|
||||
'demandeBacs/commune': 'TestVille',
|
||||
|
@ -105,13 +107,10 @@ def test_scrib(wsdl, connector, app):
|
|||
}
|
||||
# cleaned "bac" list, only two remains
|
||||
assert xml.count('<bac>') == 2
|
||||
assert (
|
||||
'<bac><bacCollecteDechetsMenagers>true</bacCollecteDechetsMenagers>'
|
||||
'<numBacCollecteDechetsMenagers>2</numBacCollecteDechetsMenagers></bac>' in xml
|
||||
)
|
||||
assert '<bac><bacCollecteDechetsMenagers>true</bacCollecteDechetsMenagers></bac>' in xml
|
||||
assert (
|
||||
'<bac><bacCollecteSelective>true</bacCollecteSelective>'
|
||||
'<numBacCollecteSelective>5</numBacCollecteSelective></bac>' in xml
|
||||
'<numBacCollecteSelective>576X9812</numBacCollecteSelective></bac>' in xml
|
||||
)
|
||||
assert '<nombrePersonnesFoyer>2</nombrePersonnesFoyer>' in xml
|
||||
assert '<numeroVoie>42</numeroVoie>' in xml
|
||||
|
|
Loading…
Reference in New Issue