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():
assert isinstance(te.errors[0].errors[0], EntityDoesNotExistError)
assert te.errors[0].errors[0].entity.name == parent.name
@pytest.mark.xfail
def test_unqualified_properties_error():
"""Code 114; properties do not exist or have wrong data types or
values.
......@@ -171,14 +171,14 @@ def test_unqualified_properties_error():
upe = te.errors[0]
assert upe.entity.name == rec.name
assert len(upe.errors) == 2
assert {UnqualifiedPropertiesError, EntityError,
EntityDoesNotExistError}.issubset(te.all_errors)
assert upe.get_code == code
for error_t in [UnqualifiedPropertiesError, EntityError,
EntityDoesNotExistError]:
assert any([isinstance(x, error_t) for x in te.all_errors])
assert upe.get_code() == code
# #################### Multiple errors ####################
@pytest.mark.xfail
def test_parent_and_properties_errors():
"""Record with UnqualifiedParentsError and UnqualifiedPropertiesError,
and corresponding parent and properties with their errors as
......@@ -204,8 +204,33 @@ def test_parent_and_properties_errors():
raise_errors(rec)
# TODO: Now there should be two direct children; both have to be
# 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():
"""Code 12; container with valid and invalid entities. All faulty
entities have to be reflected correctly in the errors list of the
......@@ -235,7 +260,7 @@ def test_container_with_faulty_elements():
# 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"),
rec_auth = _add_error_message_to_entity(db.Record(name="TestRecord3"),
code=auth_code)
rec_par_prop = _add_error_message_to_entity(
db.Record(name="TestRecord"), prop_code)
......@@ -245,8 +270,6 @@ def test_container_with_faulty_elements():
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.
te = e.value
# only container on first level:
assert len(te.errors) == 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment