Projet

Général

Profil

0002-toulouse-maelis-ignore-extra-indicator-in-functests-.patch

Nicolas Roche, 13 décembre 2022 15:33

Télécharger (3,43 ko)

Voir les différences:

Subject: [PATCH 2/3] toulouse-maelis: ignore extra indicator in functests
 (#72352)

 functests/toulouse_maelis/conftest.py | 30 +++++++++++++++++++--------
 1 file changed, 21 insertions(+), 9 deletions(-)
functests/toulouse_maelis/conftest.py
276 276
        json.dump(serialize_object(result), json_file, cls=DjangoJSONEncoder, indent=2)
277 277
        json_file.write('\n')
278 278
    cmd = 'diff %s %s' % (result_file_path, expected_file_path)
279 279
    output = subprocess.run(cmd, shell=True, check=False, stdout=None, stderr=None)
280 280
    assert output.returncode == 0, 'please, %s' % cmd
281 281
    return True
282 282

  
283 283

  
284
def remove_id_on_child(child):
284
def remove_extra_indicators(conn, indicators, referential_name):
285
    url = conn + '/read-%s-list' % referential_name
286
    resp = requests.get(url)
287
    resp.raise_for_status()
288
    legacy_id = [x['id'] for x in resp.json()['data']]
289
    for i, item in enumerate(indicators):
290
        if item['code'] not in legacy_id:
291
            del indicators[i]
292

  
293

  
294
def remove_id_on_child(conn, child):
285 295
    child['num'] = 'N/A'
286 296
    child['lastname'] = 'N/A'
287 297
    child['mother'] = 'N/A'  # dont care yet
288 298
    child['father'] = 'N/A'  # dont care yet
289 299
    for person in child['authorizedPersonList']:
290 300
        person['personInfo']['num'] = 'N/A'
301
    remove_extra_indicators(conn, child['indicatorList'], 'child-indicator')
291 302

  
292 303

  
293
def remove_id_on_rlg(rlg):
304
def remove_id_on_rlg(conn, rlg):
294 305
    if rlg:
295 306
        rlg['num'] = 'N/A'
296 307
        rlg['lastname'] = 'N/A'
308
        remove_extra_indicators(conn, rlg['indicatorList'], 'rl-indicator')
297 309

  
298 310

  
299
def remove_id_on_family(family):
311
def remove_id_on_family(conn, family):
300 312
    family['number'] = 'N/A'
301
    remove_id_on_rlg(family['RL1'])
302
    remove_id_on_rlg(family['RL2'])
313
    remove_id_on_rlg(conn, family['RL1'])
314
    remove_id_on_rlg(conn, family['RL2'])
303 315
    for child in family['childList']:
304
        remove_id_on_child(child)
316
        remove_id_on_child(conn, child)
305 317
    for person in family['emergencyPersonList']:
306 318
        person['numPerson'] = 'N/A'
307 319

  
308 320

  
309 321
def diff_child(conn, name_id, index, expected_file, key=None):
310 322
    data = read_family(conn, name_id)
311 323
    child = copy.deepcopy(data['childList'][index])
312
    remove_id_on_child(child)
324
    remove_id_on_child(conn, child)
313 325
    if not key:
314 326
        assert diff(child, expected_file)
315 327
    else:
316 328
        assert diff(child[key], expected_file)
317 329
    return data
318 330

  
319 331

  
320 332
def diff_rlg(conn, name_id, index, expected_file, key=None):
321 333
    data = read_family(conn, name_id)
322 334
    rlg = copy.deepcopy(data['RL%s' % index])
323
    remove_id_on_rlg(rlg)
335
    remove_id_on_rlg(conn, rlg)
324 336
    if not key:
325 337
        assert diff(rlg, expected_file)
326 338
    else:
327 339
        assert diff(rlg[key], expected_file)
328 340
    return data
329 341

  
330 342

  
331 343
def diff_family(conn, name_id, expected_file, key=None):
332 344
    data = read_family(conn, name_id)
333 345
    family = copy.deepcopy(data)
334
    remove_id_on_family(family)
346
    remove_id_on_family(conn, family)
335 347
    if not key:
336 348
        assert diff(family, expected_file)
337 349
    else:
338 350
        assert diff(family[key], expected_file)
339 351
    return data
340 352

  
341 353

  
342 354
@pytest.fixture(scope='session')
343
-