Skip to content
Snippets Groups Projects
Commit af6cdb84 authored by florian's avatar florian
Browse files

TST: Finish unit test

parent 16dcabcf
No related branches found
No related tags found
No related merge requests found
...@@ -148,7 +148,7 @@ def test_unqualified_parents_error(): ...@@ -148,7 +148,7 @@ def test_unqualified_parents_error():
assert isinstance(te.errors[0].errors[0], EntityDoesNotExistError) assert isinstance(te.errors[0].errors[0], EntityDoesNotExistError)
assert te.errors[0].errors[0].entity.name == parent.name assert te.errors[0].errors[0].entity.name == parent.name
@pytest.mark.xfail
def test_unqualified_properties_error(): def test_unqualified_properties_error():
"""Code 114; properties do not exist or have wrong data types or """Code 114; properties do not exist or have wrong data types or
values. values.
...@@ -171,14 +171,14 @@ def test_unqualified_properties_error(): ...@@ -171,14 +171,14 @@ def test_unqualified_properties_error():
upe = te.errors[0] upe = te.errors[0]
assert upe.entity.name == rec.name assert upe.entity.name == rec.name
assert len(upe.errors) == 2 assert len(upe.errors) == 2
assert {UnqualifiedPropertiesError, EntityError, for error_t in [UnqualifiedPropertiesError, EntityError,
EntityDoesNotExistError}.issubset(te.all_errors) EntityDoesNotExistError]:
assert upe.get_code == code assert any([isinstance(x, error_t) for x in te.all_errors])
assert upe.get_code() == code
# #################### Multiple errors #################### # #################### Multiple errors ####################
@pytest.mark.xfail
def test_parent_and_properties_errors(): def test_parent_and_properties_errors():
"""Record with UnqualifiedParentsError and UnqualifiedPropertiesError, """Record with UnqualifiedParentsError and UnqualifiedPropertiesError,
and corresponding parent and properties with their errors as and corresponding parent and properties with their errors as
...@@ -204,8 +204,33 @@ def test_parent_and_properties_errors(): ...@@ -204,8 +204,33 @@ def test_parent_and_properties_errors():
raise_errors(rec) raise_errors(rec)
# TODO: Now there should be two direct children; both have to be # TODO: Now there should be two direct children; both have to be
# displayed correctly. # displayed correctly.
te = e.value
# exactly two children:
assert len(te.errors) == 2
# both have to have the right codes and entities
found_parent = False
found_prop = False
for err in te.errors:
if err.get_code() == parent_code:
found_parent = True
assert err.errors[0].entity.name == parent.name
assert not prop1.name in [x.name for x in
err.all_entities]
assert not prop2.name in [x.name for x in
err.all_entities]
elif err.get_code() == prop_code:
found_prop = True
assert not parent.name in [x.name for x in
err.all_entities]
for sub_err in err.errors:
if sub_err.get_code() == entity_code:
assert sub_err.entity.name == prop1.name
elif sub_err.get_code() == no_entity_code:
assert sub_err.entity.name == prop2.name
assert found_parent
assert found_prop
@pytest.mark.xfail
def test_container_with_faulty_elements(): def test_container_with_faulty_elements():
"""Code 12; container with valid and invalid entities. All faulty """Code 12; container with valid and invalid entities. All faulty
entities have to be reflected correctly in the errors list of the entities have to be reflected correctly in the errors list of the
...@@ -235,7 +260,7 @@ def test_container_with_faulty_elements(): ...@@ -235,7 +260,7 @@ def test_container_with_faulty_elements():
# broken records with single and multiole errors # broken records with single and multiole errors
rec_name = _add_error_message_to_entity(db.Record(name="TestRecord2"), rec_name = _add_error_message_to_entity(db.Record(name="TestRecord2"),
code=name_code) code=name_code)
rec_auth = _add_error_message_to_entity(db.Record(name="TestRecord2"), rec_auth = _add_error_message_to_entity(db.Record(name="TestRecord3"),
code=auth_code) code=auth_code)
rec_par_prop = _add_error_message_to_entity( rec_par_prop = _add_error_message_to_entity(
db.Record(name="TestRecord"), prop_code) db.Record(name="TestRecord"), prop_code)
...@@ -245,8 +270,6 @@ def test_container_with_faulty_elements(): ...@@ -245,8 +270,6 @@ def test_container_with_faulty_elements():
cont.extend([rec_name, rec_auth, rec_par_prop]) cont.extend([rec_name, rec_auth, rec_par_prop])
with raises(TransactionError) as e: with raises(TransactionError) as e:
raise_errors(cont) raise_errors(cont)
# TODO: Check whether all errors and all broken entities are
# listed correctly. The healthy entities must not appear.
te = e.value te = e.value
# only container on first level: # only container on first level:
assert len(te.errors) == 1 assert len(te.errors) == 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment