@@ -269,6 +269,8 @@ def test_linkage_config_load():
269269 "no_valid_records_error_message": "parent record removed as no valid child records",
270270 "missing_parent_id_error_code": null,
271271 "missing_parent_id_error_message": null,
272+ "empty_entity_error_code": null,
273+ "empty_entity_error_message": null,
272274 "children": {
273275 "ds_003": {
274276 "parent_entity": "ds_001",
@@ -280,6 +282,8 @@ def test_linkage_config_load():
280282 "no_valid_records_error_message": "parent record removed as no valid child records",
281283 "missing_parent_id_error_code": "DS003NoParent",
282284 "missing_parent_id_error_message": "record removed as no parent",
285+ "empty_entity_error_code": null,
286+ "empty_entity_error_message": null,
283287 "children": {}
284288 },
285289 "ds_101": {
@@ -292,6 +296,8 @@ def test_linkage_config_load():
292296 "no_valid_records_error_message": "{{ ds_001_id }} removed as no valid ds_101 records",
293297 "missing_parent_id_error_code": "DS101NoParent",
294298 "missing_parent_id_error_message": "record removed as no parent",
299+ "empty_entity_error_code": null,
300+ "empty_entity_error_message": null,
295301 "children": {
296302 "ds_201": {
297303 "parent_entity": "ds_101",
@@ -303,6 +309,8 @@ def test_linkage_config_load():
303309 "no_valid_records_error_message": "parent record removed as no valid child records",
304310 "missing_parent_id_error_code": "DS201NoParent",
305311 "missing_parent_id_error_message": "record removed as no parent",
312+ "empty_entity_error_code": null,
313+ "empty_entity_error_message": null,
306314 "children": {
307315 "ds_202": {
308316 "parent_entity": "ds_201",
@@ -314,6 +322,8 @@ def test_linkage_config_load():
314322 "no_valid_records_error_message": "parent record removed as no valid child records",
315323 "missing_parent_id_error_code": "MissingParentRecord",
316324 "missing_parent_id_error_message": "Records removed due to no valid parent record",
325+ "empty_entity_error_code": "EmptyEntity",
326+ "empty_entity_error_message": "no valid records remaining",
317327 "children": {}
318328 }
319329 }
@@ -341,6 +351,8 @@ def test_linkage_config_load():
341351 "no_valid_records_error_message": "{{ ds_001_id }} removed as no valid ds_101 records",
342352 "missing_parent_id_error_code": "DS101NoParent",
343353 "missing_parent_id_error_message": "record removed as no parent",
354+ "empty_entity_error_code": null,
355+ "empty_entity_error_message": null,
344356 "children": {
345357 "ds_201": {
346358 "parent_entity": "ds_101",
@@ -352,6 +364,8 @@ def test_linkage_config_load():
352364 "no_valid_records_error_message": "parent record removed as no valid child records",
353365 "missing_parent_id_error_code": "DS201NoParent",
354366 "missing_parent_id_error_message": "record removed as no parent",
367+ "empty_entity_error_code": null,
368+ "empty_entity_error_message": null,
355369 "children": {
356370 "ds_202": {
357371 "parent_entity": "ds_201",
@@ -363,10 +377,20 @@ def test_linkage_config_load():
363377 "no_valid_records_error_message": "parent record removed as no valid child records",
364378 "missing_parent_id_error_code": "MissingParentRecord",
365379 "missing_parent_id_error_message": "Records removed due to no valid parent record",
380+ "empty_entity_error_code": "EmptyEntity",
381+ "empty_entity_error_message": "no valid records remaining",
366382 "children": {}
367383 }
368384 }
369385 }
370386 }
371387 }""" )
372-
388+
389+
390+ def test_get_all_mandatory_nodes ():
391+ with NamedTemporaryFile ("w" ) as tmp :
392+ tmp .write (CONFIG_WITH_LINKAGE )
393+ tmp .flush ()
394+ hierarchy = EntityHierarchy .from_dischema (tmp .name )
395+
396+ assert len (hierarchy .get_all_mandatory_nodes ()) == 1
0 commit comments