diff --git a/tests/test_error_stuff.py b/tests/test_error_stuff.py
index 17fe003747a18d03c96040290d35bd5f8b2bc8ca..fb6ccf9d5f8d92b517e93bb33e64ab8434b14b9f 100644
--- a/tests/test_error_stuff.py
+++ b/tests/test_error_stuff.py
@@ -31,9 +31,12 @@ Created on 19.02.2015.
 
 """
 import caosdb as h
-from caosdb.exceptions import (EntityDoesNotExistError,
-                               UniqueNamesError, TransactionError, EntityError,
-                               UnqualifiedPropertiesError, EntityHasNoDatatypeError,
+from caosdb.exceptions import (ContainerError,
+                               EntityDoesNotExistError,
+                               EntityHasNoDatatypeError,
+                               UniqueNamesError, TransactionError,
+                               EntityError,
+                               UnqualifiedPropertiesError,
                                UnqualifiedParentsError)
 import pytest
 
@@ -72,9 +75,11 @@ def test_retrieval_exception_raised():
     with pytest.raises(TransactionError) as te:
         h.Property(name="Non-ExistentProperty").retrieve(unique=True,
                                                          raise_exception_on_error=True)
-    te = te.value
-    assert len(te.get_errors()) == 1
-    ee = te.get_errors()[0]
+    # retrieve returns a container, so treat that one separately
+    ce = te.value.get_errors()[0]
+    assert isinstance(ce, ContainerError)
+    assert len(ce.get_errors()) == 1
+    ee = ce.get_errors()[0]
     # Check for type incl. inheritance
     assert isinstance(ee, EntityDoesNotExistError)
     assert isinstance(ee, EntityError)
@@ -87,66 +92,40 @@ def test_retrieval_exception_raised():
 
 
 def test_insertion_no_exception_raised():
-    import caosdb as h
-    from nose.tools import assert_false, assert_true  # @UnresolvedImport
-
-    try:
-        p = h.Property(
-            name="NoTypeProperty").insert(
-            raise_exception_on_error=False)
-        assert_false(p.is_valid())
-        assert_true(p.id is None or p.id < 0)
-    finally:
-        try:
-            p.delete()
-        except BaseException:
-            pass
+    """Test whether insertion fails but no error is raised."""
+    p = h.Property(name="TestNoTypeProperty").insert(
+        raise_exception_on_error=False)
+    assert not p.is_valid()
+    assert (p.id is None or p.id < 0)
 
 
 def test_insertion_exception_raised():
-    import caosdb as h
-    from nose.tools import assert_true  # @UnresolvedImport
-
-    try:
-        p = h.Property(name="NoTypeProperty")
+    """Test insertion of a property with missing datatype."""
+    p = h.Property(name="TestNoTypeProperty")
+    with pytest.raises(TransactionError) as te:
         p.insert(raise_exception_on_error=True)
-        assert_true(False)
-    except EntityError as e:
-        print(e)
-    finally:
-        try:
-            p.delete()
-        except BaseException:
-            pass
+    assert te.value.has_error(EntityHasNoDatatypeError)
 
 
 def test_insertion_with_invalid_parents():
-    import caosdb as h
-    # @UnresolvedImport
-    from nose.tools import assert_false, assert_true, assert_is_not_none, assert_equal
-
-    try:
+    with pytest.raises(TransactionError) as te:
         p = h.Property(
-            name="NoTypeProperty",
+            name="TestNoTypeProperty",
             datatype="Text").add_parent(
             id=-1)
         p.insert(raise_exception_on_error=True)
-        assert_true(False)
-    except EntityError as e:
-        print(e)
-        assert_true(isinstance(e, UnqualifiedParentsError))
-        assert_is_not_none(e.get_entity())
-        assert_equal(e.get_entity().name, p.name)
-        assert_equal(e.get_entity().id, p.id)
-        assert_true(e.get_entity().has_errors())
-        assert_false(p.is_valid())
-        assert_false(e.get_entity().is_valid())
-        assert_is_not_none(e.get_entities())
-    finally:
-        try:
-            p.delete()
-        except BaseException:
-            pass
+    # TransactionError with ContainerError with
+    # UnqualifiedParentsError
+    upe = te.value.get_errors()[0].get_errors()[0]
+    print(upe)
+    assert isinstance(upe, UnqualifiedParentsError)
+    assert not upe.get_entity() is None
+    assert upe.get_entity().name == p.name
+    assert upe.get_entity().id == p.id
+    assert upe.get_entity().has_errors()
+    assert not p.is_valid()
+    assert not upe.get_entity().is_valid()
+    assert nt upe.get_entities() is not None
 
 
 def test_insertion_with_invalid_properties():