From 91f6e70afba1acda61915e146a1f6fd9fd132a3c Mon Sep 17 00:00:00 2001 From: fspreck <f.spreckelsen@indiscale.com> Date: Thu, 25 Jun 2020 16:58:30 +0200 Subject: [PATCH] TST: Finish test cases --- unittests/test_error_handling.py | 91 ++++++++++++++++++++++++++------ 1 file changed, 75 insertions(+), 16 deletions(-) diff --git a/unittests/test_error_handling.py b/unittests/test_error_handling.py index d7f3a1b7..0c2803af 100644 --- a/unittests/test_error_handling.py +++ b/unittests/test_error_handling.py @@ -57,8 +57,8 @@ def test_has_no_datatype_error(): with raises(TransactionError) as e: raise_errors(prop) # There should be exactly one child - assert len(e.errors) == 1 - err = e.errors[0] + assert len(e.value.errors) == 1 + err = e.value.errors[0] # check type and entity of only child assert isinstance(err, EntityHasNoDatatypeError) assert err.entity.name == prop.name @@ -72,8 +72,8 @@ def test_entity_does_not_exist_error(): with raises(TransactionError) as e: raise_errors(ent) # There should be exactly one child - assert len(e.errors) == 1 - err = e.errors[0] + assert len(e.value.errors) == 1 + err = e.value.errors[0] # check type and entity of only child assert isinstance(err, EntityDoesNotExistError) assert err.entity.name == ent.name @@ -86,8 +86,8 @@ def test_entity_error(): code) with raises(TransactionError) as e: raise_errors(e) - assert len(e.errors) == 1 - err = e.errors[0] + assert len(e.value.errors) == 1 + err = e.value.errors[0] assert isinstance(err, EntityError) assert err.entity.name == ent.name @@ -99,8 +99,8 @@ def test_unique_names_error(): code) with raises(TransactionError) as e: raise_errors(ent) - assert len(e.errors) == 1 - err = e.errors[0] + assert len(e.value.errors) == 1 + err = e.value.errors[0] assert isinstance(err, UniqueNamesError) assert err.entity.name == ent.name @@ -112,8 +112,8 @@ def test_authorization_exception(): code) with raises(TransactionError) as e: raise_errors(ent) - assert len(e.errors) == 1 - err = e.errors[0] + assert len(e.value.errors) == 1 + err = e.value.errors[0] assert isinstance(err, AuthorizationException) assert err.entity.name == ent.name @@ -145,9 +145,18 @@ def test_unqualified_properties_error(): """ code = 114 - # TODO: One record with two properties; one doesn't exist (code - # 101), the other has a wrong value (EntityError, code 0). Then - # check whether all levels are in order. + entity_code = 0 + no_entity_code = 101 + prop1 = _add_error_message_to_entity(db.Property( + name="TestProp1"), entity_code) + prop2 = _add_error_message_to_entity(db.Property( + name="TestProp2"), no_entity_code) + rec = _add_error_message_to_entity(db.Record(name="TestRecord"), + code) + rec.add_property(prop1).add_property(prop2) + with raises(TransactionError) as e: + raise_errors(rec) + # TODO: This should result in one direct child with two children. # #################### Multiple errors #################### @@ -159,9 +168,26 @@ def test_parent_and_properties_errors(): above. Test whether all levels are in order. """ - # TODO: record with code 114 and 116, properties with 101 and 0, - # parent with 101 - + prop_code = 114 + parent_code = 116 + entity_code = 0 + no_entity_code = 0 + parent = _add_error_message_to_entity( + db.RecordType(name="TestParent"), no_entity_code) + prop1 = _add_error_message_to_entity(db.Property( + name="TestProp1"), entity_code) + prop2 = _add_error_message_to_entity(db.Property( + name="TestProp2"), no_entity_code) + rec = _add_error_message_to_entity(db.Record(name="TestRecord"), + prop_code) + rec = _add_error_message_to_entity(rec, parent_code) + rec.add_parent(parent) + rec.add_property(prop1).add_property(prop2) + with raises(TransactionError) as e: + raise_errors(rec) + # TODO: Now there should be two direct children; both have to be + # displayed correctly. + def test_container_with_faulty_elements(): """Container with valid and invalid entities. All faulty entities have @@ -169,3 +195,36 @@ def test_container_with_faulty_elements(): TransactionError raised by the container. """ + prop_code = 114 + parent_code = 116 + name_code = 152 + auth_code = 403 + entity_code = 0 + no_entity_code = 0 + # Broken parents and properties + parent = _add_error_message_to_entity( + db.RecordType(name="TestParent"), no_entity_code) + prop1 = _add_error_message_to_entity(db.Property( + name="TestProp1"), entity_code) + prop2 = _add_error_message_to_entity(db.Property( + name="TestProp2"), no_entity_code) + cont = db.Container() + # healthy record and property + good_rec = db.Record(name="TestRecord1") + good_prop = db.Property(name="TestProp3") + cont.extend([good_rec, good_prop]) + # broken records with single and multiole errors + rec_name = _add_error_message_to_entity(db.Record(name="TestRecord2"), + code=name_code) + rec_auth = _add_error_message_to_entity(db.Record(name="TestRecord2"), + code=auth_code) + rec_par_prop = _add_error_message_to_entity( + db.Record(name="TestRecord"), prop_code) + rec_par_prop = _add_error_message_to_entity(rec_par_prop, parent_code) + rec_par_prop.add_parent(parent) + rec_par_prop.add_property(prop1).add_property(prop2) + cont.extend([rec_name, rec_auth, rec_par_prop]) + with raises(TransactionError) as e: + raise_errors(cont) + # TODO: Check whether all errors and all broken entities are + # listed correctly. The healthy entities must not appear. -- GitLab