diff --git a/tests/test_misc.py b/tests/test_misc.py
index 326cd02e07de5313f84844d823490123b193bbd4..4e9d21d9f6f0542e773d1006430371eb96490445 100644
--- a/tests/test_misc.py
+++ b/tests/test_misc.py
@@ -60,6 +60,27 @@ def test_file_system_returns_ids(clear_database):
     assert search in str(body)
 
 
+def test_file_system_returns_correct_url_with_proxy(clear_database):
+    c = db.get_connection()
+    resp = c.retrieve(
+        entity_uri_segments=["FileSystem"],
+        headers={"X-Forwarded-Proto": "myscheme"},
+        reconnect=True)
+    body = resp.read()
+    print(body)
+    search = 'url="myscheme://'
+    assert search in str(body)
+
+    resp = c.retrieve(
+        entity_uri_segments=["FileSystem"],
+        headers={"Forwarded": "by=byid;for=forid;host=hostaddress;proto=myother"},
+        reconnect=True)
+    body = resp.read()
+    print(body)
+    search = 'url="myother://'
+    assert search in str(body)
+
+
 def test_sat_query_with_leading_slash(clear_database):
     upload_file = open("test.dat", "w")
     upload_file.write("hello world\n")
diff --git a/tests/test_tenpoints.py b/tests/test_tenpoints.py
index f9c3aabebb84c863607e47073d45a65d652c4b6a..e23aabed074c407ece6bfa34d9b74186f8aedf15 100644
--- a/tests/test_tenpoints.py
+++ b/tests/test_tenpoints.py
@@ -25,7 +25,6 @@
 
 @author: fitschen
 """
-from nose.tools import assert_equal, assert_is_not_none, assert_true  # @UnresolvedImport
 import caosdb as h
 import os
 from caosdb.exceptions import CaosDBException
@@ -52,23 +51,15 @@ Datensätzen
 Description oder einer Zahl'''
 
 
-def setup_module():
+def setup_function(function):
     try:
-        h.execute_query("FIND Complex*").delete()
-    except Exception as e:
-        print(e)
-    try:
-        h.execute_query("FIND ReferenceProperty").delete()
-    except Exception as e:
-        print(e)
-    try:
-        h.execute_query("FIND Simple*").delete()
+        h.execute_query("FIND ENTITY *").delete()
     except Exception as e:
         print(e)
 
 
-def teardown_module():
-    setup_module()
+def teardown_function(function):
+    setup_function(function)
 
 
 def test_tenpoints1_1():
@@ -77,94 +68,82 @@ def test_tenpoints1_1():
       enthalten (Gewicht, Beschreibung, Identifkationsnummern, etc.)
     '''
 
-    try:
-        c = h.Container()
-        c.append(
-            h.Property(
-                name="SimpleTextProperty",
-                description="simple text property (from test_tenpoints.py)",
-                datatype='text'))
-        c.append(
-            h.Property(
-                name="SimpleDoubleProperty",
-                description="simple double property (from test_tenpoints.py)",
-                datatype='double'))
-        c.append(
-            h.Property(
-                name="SimpleIntegerProperty",
-                description="simple integer property (from test_tenpoints.py)",
-                datatype='integer'))
-        c.append(
-            h.Property(
-                name="SimpleDatetimeProperty",
-                description="simple datetime property (from test_tenpoints.py)",
-                datatype='datetime'))
-
-        c.append(
-            h.RecordType(
-                name="SimpleRecordType",
-                description="simple recordType (from test_tenpoints.py)") .add_property(
-                name='SimpleTextProperty') .add_property(
-                name='SimpleDoubleProperty') .add_property(
-                    name='SimpleIntegerProperty') .add_property(
-                        name='SimpleDatetimeProperty'))
-
-        c.insert()
-    finally:
-        try:
-            c.delete()
-        except BaseException:
-            pass
+    c = h.Container()
+    c.append(
+        h.Property(
+            name="SimpleTextProperty",
+            description="simple text property (from test_tenpoints.py)",
+            datatype='text'))
+    c.append(
+        h.Property(
+            name="SimpleDoubleProperty",
+            description="simple double property (from test_tenpoints.py)",
+            datatype='double'))
+    c.append(
+        h.Property(
+            name="SimpleIntegerProperty",
+            description="simple integer property (from test_tenpoints.py)",
+            datatype='integer'))
+    c.append(
+        h.Property(
+            name="SimpleDatetimeProperty",
+            description="simple datetime property (from test_tenpoints.py)",
+            datatype='datetime'))
+
+    c.append(
+        h.RecordType(
+            name="SimpleRecordType",
+            description="simple recordType (from test_tenpoints.py)") .add_property(
+            name='SimpleTextProperty') .add_property(
+            name='SimpleDoubleProperty') .add_property(
+                name='SimpleIntegerProperty') .add_property(
+                    name='SimpleDatetimeProperty'))
+
+    c.insert()
 
 
 def test_tenpoints1_2():
     '''
     1.2 Einfügen von RecordTypes, die zusätzlich Dateien referenzieren
     '''
-    try:
-        c = h.Container()
-        c.append(
-            h.Property(
-                name="SimpleTextProperty",
-                description="simple text property (from test_tenpoints.py)",
-                datatype='text'))
-        c.append(
-            h.Property(
-                name="SimpleDoubleProperty",
-                description="simple double property (from test_tenpoints.py)",
-                datatype='double'))
-        c.append(
-            h.Property(
-                name="SimpleIntegerProperty",
-                description="simple integer property (from test_tenpoints.py)",
-                datatype='integer'))
-        c.append(
-            h.Property(
-                name="SimpleDatetimeProperty",
-                description="simple datetime property (from test_tenpoints.py)",
-                datatype='datetime'))
-        c.append(
-            h.Property(
-                name="SimpleFileProperty",
-                description="simple file property (from test_tenpoints.py)",
-                datatype='file'))
-
-        c.append(
-            h.RecordType(
-                name="SimpleRecordType",
-                description="simple recordType (from test_tenpoints.py)") .add_property(
-                name='SimpleTextProperty') .add_property(
-                name='SimpleDoubleProperty') .add_property(
-                    name='SimpleIntegerProperty') .add_property(
-                        name='SimpleDatetimeProperty') .add_property(
-                            name='SimpleFileProperty'))
-
-        c.insert()
-    finally:
-        try:
-            c.delete()
-        except BaseException:
-            pass
+    c = h.Container()
+    c.append(
+        h.Property(
+            name="SimpleTextProperty",
+            description="simple text property (from test_tenpoints.py)",
+            datatype='text'))
+    c.append(
+        h.Property(
+            name="SimpleDoubleProperty",
+            description="simple double property (from test_tenpoints.py)",
+            datatype='double'))
+    c.append(
+        h.Property(
+            name="SimpleIntegerProperty",
+            description="simple integer property (from test_tenpoints.py)",
+            datatype='integer'))
+    c.append(
+        h.Property(
+            name="SimpleDatetimeProperty",
+            description="simple datetime property (from test_tenpoints.py)",
+            datatype='datetime'))
+    c.append(
+        h.Property(
+            name="SimpleFileProperty",
+            description="simple file property (from test_tenpoints.py)",
+            datatype='file'))
+
+    c.append(
+        h.RecordType(
+            name="SimpleRecordType",
+            description="simple recordType (from test_tenpoints.py)") .add_property(
+            name='SimpleTextProperty') .add_property(
+            name='SimpleDoubleProperty') .add_property(
+                name='SimpleIntegerProperty') .add_property(
+                    name='SimpleDatetimeProperty') .add_property(
+                        name='SimpleFileProperty'))
+
+    c.insert()
 
 
 def test_tenpoints1_3():
@@ -173,61 +152,55 @@ def test_tenpoints1_3():
       andere RecordTypes enthalten
     '''
 
-    try:
-        c = h.Container()
-        c.append(
-            h.Property(
-                name="SimpleTextProperty",
-                description="simple text property (from test_tenpoints.py)",
-                datatype='text'))
-        c.append(
-            h.Property(
-                name="SimpleDoubleProperty",
-                description="simple double property (from test_tenpoints.py)",
-                datatype='double'))
-        c.append(
-            h.Property(
-                name="SimpleIntegerProperty",
-                description="simple integer property (from test_tenpoints.py)",
-                datatype='integer'))
-        c.append(
-            h.Property(
-                name="SimpleDatetimeProperty",
-                description="simple datetime property (from test_tenpoints.py)",
-                datatype='datetime'))
-        c.append(
-            h.Property(
-                name="SimpleFileProperty",
-                description="simple file property (from test_tenpoints.py)",
-                datatype='file'))
-
-        c.append(
-            h.RecordType(
-                name="SimpleRecordType",
-                description="simple recordType (from test_tenpoints.py)") .add_property(
-                name='SimpleTextProperty') .add_property(
-                name='SimpleDoubleProperty') .add_property(
-                    name='SimpleIntegerProperty') .add_property(
-                        name='SimpleDatetimeProperty') .add_property(
-                            name='SimpleFileProperty'))
-
-        c.append(
-            h.Property(
-                name="ReferenceProperty",
-                description='reference property (from test_tenpoints.py)',
-                datatype="SimpleRecordType"))
-        c.append(h.RecordType(name="ComlexRecordType", description="complex recordType with references (from test_tenpoints.py)")
-                 .add_property(name='ReferenceProperty')  # first method
-                 # second method, doesn't need the ReferenceProperty
-                 .add_property(name='SimpleRecordType')
-                 )
-
-        c.insert()
-    finally:
-        try:
-            c.delete()
-        except BaseException:
-            pass
+    c = h.Container()
+    c.append(
+        h.Property(
+            name="SimpleTextProperty",
+            description="simple text property (from test_tenpoints.py)",
+            datatype='text'))
+    c.append(
+        h.Property(
+            name="SimpleDoubleProperty",
+            description="simple double property (from test_tenpoints.py)",
+            datatype='double'))
+    c.append(
+        h.Property(
+            name="SimpleIntegerProperty",
+            description="simple integer property (from test_tenpoints.py)",
+            datatype='integer'))
+    c.append(
+        h.Property(
+            name="SimpleDatetimeProperty",
+            description="simple datetime property (from test_tenpoints.py)",
+            datatype='datetime'))
+    c.append(
+        h.Property(
+            name="SimpleFileProperty",
+            description="simple file property (from test_tenpoints.py)",
+            datatype='file'))
+
+    c.append(
+        h.RecordType(
+            name="SimpleRecordType",
+            description="simple recordType (from test_tenpoints.py)") .add_property(
+            name='SimpleTextProperty') .add_property(
+            name='SimpleDoubleProperty') .add_property(
+                name='SimpleIntegerProperty') .add_property(
+                    name='SimpleDatetimeProperty') .add_property(
+                        name='SimpleFileProperty'))
+
+    c.append(
+        h.Property(
+            name="ReferenceProperty",
+            description='reference property (from test_tenpoints.py)',
+            datatype="SimpleRecordType"))
+    c.append(h.RecordType(name="ComlexRecordType", description="complex recordType with references (from test_tenpoints.py)")
+             .add_property(name='ReferenceProperty')  # first method
+             # second method, doesn't need the ReferenceProperty
+             .add_property(name='SimpleRecordType')
+             )
+
+    c.insert()
 
 
 def test_tenpoints1_4():
@@ -245,98 +218,75 @@ def test_tenpoints1_5():
       RecordTypes / Properties
     '''
 
-    try:
-        c = h.Container()
-        c.append(
-            h.Property(
-                name="SimpleTextProperty",
-                description="simple text property (from test_tenpoints.py)",
-                datatype='text'))
-        c.append(
-            h.Property(
-                name="SimpleDoubleProperty",
-                description="simple double property (from test_tenpoints.py)",
-                datatype='double'))
-        c.append(
-            h.Property(
-                name="SimpleIntegerProperty",
-                description="simple integer property (from test_tenpoints.py)",
-                datatype='integer'))
-        c.append(
-            h.Property(
-                name="SimpleDatetimeProperty",
-                description="simple datetime property (from test_tenpoints.py)",
-                datatype='datetime'))
-        c.append(
-            h.Property(
-                name="SimpleFileProperty",
-                description="simple file property (from test_tenpoints.py)",
-                datatype='file'))
-        c.insert()
-
-        d = h.Container()
-        d.append(
-            h.RecordType(
-                name="SimpleRecordType",
-                description="simple recordType (from test_tenpoints.py)") .add_property(
-                name='SimpleTextProperty') .add_property(
-                name='SimpleDoubleProperty') .add_property(
-                    name='SimpleIntegerProperty') .add_property(
-                        name='SimpleDatetimeProperty') .add_property(
-                            name='SimpleFileProperty'))
-
-        d.append(
-            h.Property(
-                name="ReferenceProperty",
-                description='reference property (from test_tenpoints.py)',
-                datatype="SimpleRecordType"))
-        d.append(h.RecordType(name="ComplexRecordType", description="complex recordType with references (from test_tenpoints.py)")
-                 .add_property(name='ReferenceProperty')  # first method
-                 # second method, doesn't need the ReferenceProperty
-                 .add_property(name='SimpleRecordType')
-                 )
-
-        d.insert()
-
-        sr = (h.Record().add_parent(name="SimpleRecordType")
-              .add_property(name="SimpleTextProperty", value="Some Text")
-              .add_property(name="SimpleDoubleProperty", value=3.14)
-              .add_property(name="SimpleIntegerProperty", value=1337)
-              )
-
-        sr.insert()
-
-        cr1 = (h.Record().add_parent(name="ComplexRecordType")
-               .add_property(name="ReferenceProperty", value=sr))
-
-        cr1.insert()
-
-        cr2 = (h.Record().add_parent(name="ComplexRecordType")
-               .add_property(name="SimpleRecordType", value=sr))
-
-        cr2.insert()
-
-    finally:
-        try:
-            cr2.delete()
-        except BaseException:
-            pass
-        try:
-            cr1.delete()
-        except BaseException:
-            pass
-        try:
-            sr.delete()
-        except BaseException:
-            pass
-        try:
-            d.delete()
-        except BaseException:
-            pass
-        try:
-            c.delete()
-        except BaseException:
-            pass
+    c = h.Container()
+    c.append(
+        h.Property(
+            name="SimpleTextProperty",
+            description="simple text property (from test_tenpoints.py)",
+            datatype='text'))
+    c.append(
+        h.Property(
+            name="SimpleDoubleProperty",
+            description="simple double property (from test_tenpoints.py)",
+            datatype='double'))
+    c.append(
+        h.Property(
+            name="SimpleIntegerProperty",
+            description="simple integer property (from test_tenpoints.py)",
+            datatype='integer'))
+    c.append(
+        h.Property(
+            name="SimpleDatetimeProperty",
+            description="simple datetime property (from test_tenpoints.py)",
+            datatype='datetime'))
+    c.append(
+        h.Property(
+            name="SimpleFileProperty",
+            description="simple file property (from test_tenpoints.py)",
+            datatype='file'))
+    c.insert()
+
+    d = h.Container()
+    d.append(
+        h.RecordType(
+            name="SimpleRecordType",
+            description="simple recordType (from test_tenpoints.py)") .add_property(
+            name='SimpleTextProperty') .add_property(
+            name='SimpleDoubleProperty') .add_property(
+                name='SimpleIntegerProperty') .add_property(
+                    name='SimpleDatetimeProperty') .add_property(
+                        name='SimpleFileProperty'))
+
+    d.append(
+        h.Property(
+            name="ReferenceProperty",
+            description='reference property (from test_tenpoints.py)',
+            datatype="SimpleRecordType"))
+    d.append(h.RecordType(name="ComplexRecordType", description="complex recordType with references (from test_tenpoints.py)")
+             .add_property(name='ReferenceProperty')  # first method
+             # second method, doesn't need the ReferenceProperty
+             .add_property(name='SimpleRecordType')
+             )
+
+    d.insert()
+
+    sr = (h.Record().add_parent(name="SimpleRecordType")
+          .add_property(name="SimpleTextProperty", value="Some Text")
+          .add_property(name="SimpleDoubleProperty", value=3.14)
+          .add_property(name="SimpleIntegerProperty", value=1337)
+          )
+
+    sr.insert()
+
+    cr1 = (h.Record().add_parent(name="ComplexRecordType")
+           .add_property(name="ReferenceProperty", value=sr))
+
+    cr1.insert()
+
+    cr2 = (h.Record().add_parent(name="ComplexRecordType")
+           .add_property(name="SimpleRecordType", value=sr))
+
+    cr2.insert()
 
 
 def test_tenpoints2_1AND2_2():
@@ -346,331 +296,274 @@ def test_tenpoints2_1AND2_2():
       Datensätzen
     '''
 
-    try:
-        """data model."""
-        c = h.Container()
-        c.append(
-            h.Property(
-                name="SimpleTextProperty",
-                description="simple text property (from test_tenpoints.py)",
-                datatype='text'))
-        c.append(
-            h.Property(
-                name="SimpleDoubleProperty",
-                description="simple double property (from test_tenpoints.py)",
-                datatype='double',
-                unit="m"))
-        c.append(
-            h.Property(
-                name="SimpleIntegerProperty",
-                description="simple integer property (from test_tenpoints.py)",
-                datatype='integer'))
-        c.append(
-            h.Property(
-                name="SimpleDatetimeProperty",
-                description="simple datetime property (from test_tenpoints.py)",
-                datatype='datetime'))
-        c.append(
-            h.Property(
-                name="SimpleFileProperty",
-                description="simple file property (from test_tenpoints.py)",
-                datatype='file'))
-
-        c.append(
-            h.RecordType(
-                name="SimpleRecordType",
-                description="simple recordType (from test_tenpoints.py)") .add_property(
-                name='SimpleTextProperty',
+    """data model."""
+    c = h.Container()
+    c.append(
+        h.Property(
+            name="SimpleTextProperty",
+            description="simple text property (from test_tenpoints.py)",
+            datatype='text'))
+    c.append(
+        h.Property(
+            name="SimpleDoubleProperty",
+            description="simple double property (from test_tenpoints.py)",
+            datatype='double',
+            unit="m"))
+    c.append(
+        h.Property(
+            name="SimpleIntegerProperty",
+            description="simple integer property (from test_tenpoints.py)",
+            datatype='integer'))
+    c.append(
+        h.Property(
+            name="SimpleDatetimeProperty",
+            description="simple datetime property (from test_tenpoints.py)",
+            datatype='datetime'))
+    c.append(
+        h.Property(
+            name="SimpleFileProperty",
+            description="simple file property (from test_tenpoints.py)",
+            datatype='file'))
+
+    c.append(
+        h.RecordType(
+            name="SimpleRecordType",
+            description="simple recordType (from test_tenpoints.py)") .add_property(
+            name='SimpleTextProperty',
+            importance='obligatory') .add_property(
+            name='SimpleDoubleProperty',
+            importance='obligatory') .add_property(
+                name='SimpleIntegerProperty',
                 importance='obligatory') .add_property(
+                    name='SimpleDatetimeProperty',
+                    importance='obligatory') .add_property(
+                        name='SimpleFileProperty',
+            importance='obligatory'))
+
+    c.append(
+        h.Property(
+            name="ReferenceProperty",
+            description='reference property (from test_tenpoints.py)',
+            datatype="SimpleRecordType"))
+    c.append(h.RecordType(name="ComplexRecordType", description="complex recordType with references (from test_tenpoints.py)")
+             .add_property(name='ReferenceProperty')  # first method
+             # second method, doesn't need the ReferenceProperty
+             .add_property(name='SimpleRecordType')
+             )
+
+    c.insert()
+    print(c)
+
+    ''' data'''
+    d = h.Container()
+
+    ''' create testfile '''
+    f = open("test.dat", "w")
+    f.write("hello world\n")
+    f.close()
+
+    ''' prepare file record '''
+    d.append(
+        h.File(
+            id=-1,
+            path='testfiles/testfile',
+            file="test.dat",
+            name="SimpleFileRecord"))
+
+    ''' prepare simple record with file property'''
+    d.append(
+        h.Record(
+            id=-2,
+            name="SimpleRecord") .add_parent(
+            name='SimpleRecordType') .add_property(
+            name='SimpleTextProperty',
+            value='some text') .add_property(
                 name='SimpleDoubleProperty',
-                importance='obligatory') .add_property(
+                value=3.14) .add_property(
                     name='SimpleIntegerProperty',
-                    importance='obligatory') .add_property(
+                    value=1337) .add_property(
                         name='SimpleDatetimeProperty',
-                        importance='obligatory') .add_property(
+                        value='2015-12-24 18:15:00') .add_property(
                             name='SimpleFileProperty',
-                importance='obligatory'))
-
-        c.append(
-            h.Property(
-                name="ReferenceProperty",
-                description='reference property (from test_tenpoints.py)',
-                datatype="SimpleRecordType"))
-        c.append(h.RecordType(name="ComplexRecordType", description="complex recordType with references (from test_tenpoints.py)")
-                 .add_property(name='ReferenceProperty')  # first method
-                 # second method, doesn't need the ReferenceProperty
-                 .add_property(name='SimpleRecordType')
-                 )
-
-        c.insert()
-        print(c)
-
-        ''' data'''
-        d = h.Container()
-
-        ''' create testfile '''
-        f = open("test.dat", "w")
-        f.write("hello world\n")
-        f.close()
-
-        ''' prepare file record '''
-        d.append(
-            h.File(
-                id=-1,
-                path='testfiles/testfile',
-                file="test.dat",
-                name="SimpleFileRecord"))
-
-        ''' prepare simple record with file property'''
-        d.append(
-            h.Record(
-                id=-2,
-                name="SimpleRecord") .add_parent(
-                name='SimpleRecordType') .add_property(
-                name='SimpleTextProperty',
-                value='some text') .add_property(
-                    name='SimpleDoubleProperty',
-                    value=3.14) .add_property(
-                        name='SimpleIntegerProperty',
-                        value=1337) .add_property(
-                            name='SimpleDatetimeProperty',
-                            value='2015-12-24 18:15:00') .add_property(
-                                name='SimpleFileProperty',
-                value=-1))
-
-        d.append(h.Record()
-                 .add_parent(name="ComplexRecordType")
-                 .add_property(name="ReferenceProperty", value=-2)
-                 )
-
-        d.insert()
-
-        e = d.get_entity_by_name("SimpleRecord")
-        assert_is_not_none(e)
-        assert_true(e.is_valid())
-        fp = e.get_property("SimpleFileProperty")
-        assert_is_not_none(fp)
-        assert_is_not_none(fp.value)
-
-        fr = d.get_entity_by_name("SimpleFileRecord")
-        assert_is_not_none(fr)
-        assert_true(fr.is_valid())
-        assert_is_not_none(fr.id)
-
-        assert_equal(int(fp.value), fr.id)
-        print(d)
-    finally:
-        try:
-            d.delete()
-        except BaseException:
-            pass
-        try:
-            c.delete()
-        except BaseException:
-            pass
-        try:
-            os.remove("test.dat")
-        except BaseException:
-            pass
-
-    try:
-        """insert file via dropOffBox."""
-        dob = h.DropOffBox().sync()
-        if os.path.isdir(dob.path):
-            f = open("test.dat", "w")
-            f.write("hello world\n")
-            f.close()
-            import shutil
-            shutil.move("test.dat", dob.path)
-            fo = h.File(path='testfiles/testfile2', pickup="test.dat").insert()
-    finally:
-        try:
-            fo.delete()
-        except BaseException:
-            pass
+            value=-1))
 
+    d.append(h.Record()
+             .add_parent(name="ComplexRecordType")
+             .add_property(name="ReferenceProperty", value=-2)
+             )
 
-def test_tenpoints2_3():
-    '''2.3 Verwendung von Einheiten'''
+    d.insert()
 
-    try:
-        """insert simple property with unit."""
-        p1 = h.Property(name='unittestproperty', datatype='double', unit='m')
-        p1.insert()
-
-        '''subtyping with unit inheritance'''
-        p2 = h.Property(name='SubTypeOfUnitTestProperty').add_parent(id=p1.id)
-        p2.insert()
-        assert_equal('m', p2.unit)
-
-        '''implement property'''
-        rt = h.RecordType(
-            name='SimpleRecordType',
-            description='simple recordType (from test_tenpoints.py)').add_property(
-            id=p2.id)
-        rt.insert()
-        print(rt)
-        rtid = rt.id
-        rt = h.RecordType(id=rtid).retrieve()
-        print(rt)
-        assert_equal(p2.id, rt.get_properties()[0].id)
-
-        assert_equal('m', rt.get_properties()[0].unit)
-    finally:
-        try:
-            rt.delete()
-        except BaseException:
-            pass
-        try:
-            p2.delete()
-        except BaseException:
-            pass
-        try:
-            p1.delete()
-        except BaseException:
-            pass
+    e = d.get_entity_by_name("SimpleRecord")
+    assert e is not None
+    assert e.is_valid()
+    fp = e.get_property("SimpleFileProperty")
+    assert fp is not None
+    assert fp.value is not None
 
+    fr = d.get_entity_by_name("SimpleFileRecord")
+    assert fr is not None
+    assert fr.is_valid()
+    assert fr.id is not None
 
-def test_tenpoints2_4():
-    '''2.4 Nachtägliches Annotieren von Datensätzen, z.B. hinzufügen einer
-         Description oder einer Zahl'''
+    assert int(fp.value) == fr.id
+    print(d)
 
-    try:
-        c = h.Container()
-        c.append(
-            h.Property(
-                name="SimpleTextProperty",
-                description="simple text property (from test_tenpoints.py)",
-                datatype='text'))
-        c.append(
-            h.Property(
-                name="SimpleDoubleProperty",
-                description="simple double property (from test_tenpoints.py)",
-                datatype='double'))
-        c.append(
-            h.Property(
-                name="SimpleIntegerProperty",
-                description="simple integer property (from test_tenpoints.py)",
-                datatype='integer'))
-        c.append(
-            h.Property(
-                name="SimpleDatetimeProperty",
-                description="simple datetime property (from test_tenpoints.py)",
-                datatype='datetime'))
-        c.append(
-            h.Property(
-                name="SimpleFileProperty",
-                description="simple file property (from test_tenpoints.py)",
-                datatype='file'))
-        c.append(
-            h.Property(
-                name="CommentProperty",
-                description="comment property",
-                datatype='text'))
-        c.insert()
-
-        d = h.Container()
-
-        d.append(
-            h.RecordType(
-                name="SimpleRecordType",
-                description="simple recordType (from test_tenpoints.py)") .add_property(
-                name='SimpleTextProperty',
-                importance='obligatory') .add_property(
-                name='SimpleDoubleProperty',
-                importance='obligatory') .add_property(
-                    name='SimpleIntegerProperty',
-                    importance='obligatory') .add_property(
-                        name='SimpleDatetimeProperty') .add_property(
-                            name='SimpleFileProperty'))
-
-        d.append(
-            h.Property(
-                name="ReferenceProperty",
-                description='reference property (from test_tenpoints.py)',
-                datatype="SimpleRecordType"))
-        d.append(h.RecordType(name="ComplexRecordType", description="complex recordType with references (from test_tenpoints.py)")
-                 .add_property(name='ReferenceProperty')  # first method
-                 # second method, doesn't need the ReferenceProperty
-                 .add_property(name='SimpleRecordType')
-                 )
-
-        d.insert()
-
-        ''' create testfile '''
+    """insert file via dropOffBox."""
+    dob = h.DropOffBox().sync()
+    if os.path.isdir(dob.path):
         f = open("test.dat", "w")
         f.write("hello world\n")
         f.close()
+        import shutil
+        shutil.move("test.dat", dob.path)
+        fo = h.File(path='testfiles/testfile2', pickup="test.dat").insert()
 
-        ''' prepare file record '''
-        e = h.Container()
-        e.append(h.File(id=-1, path='testfiles/testfile', file="test.dat"))
 
-        sr = (h.Record().add_parent(name="SimpleRecordType")
-              .add_property(name="SimpleTextProperty", value="Some Text")
-              .add_property(name="SimpleDoubleProperty", value=3.14)
-              .add_property(name="SimpleIntegerProperty", value=1337)
-              .add_property(name='SimpleFileProperty', value=-1)
-              )
+def test_tenpoints2_3():
+    '''2.3 Verwendung von Einheiten'''
 
-        e.append(sr).insert()
+    """insert simple property with unit."""
+    p1 = h.Property(name='unittestproperty', datatype='double', unit='m')
+    p1.insert()
 
-        cr1 = (
-            h.Record(
-                name="My special unique record name").add_parent(
-                name="ComplexRecordType") .add_property(
-                name="ReferenceProperty",
-                value=sr))
+    '''subtyping with unit inheritance'''
+    p2 = h.Property(name='SubTypeOfUnitTestProperty').add_parent(id=p1.id)
+    p2.insert()
+    assert 'm' == p2.unit
 
-        cr1.insert()
+    '''implement property'''
+    rt = h.RecordType(
+        name='SimpleRecordType',
+        description='simple recordType (from test_tenpoints.py)').add_property(
+        id=p2.id)
+    rt.insert()
+    print(rt)
+    rtid = rt.id
+    rt = h.RecordType(id=rtid).retrieve()
+    print(rt)
+    assert p2.id == rt.get_properties()[0].id
 
-        cr2 = (h.Record().add_parent(name="ComplexRecordType")
-               .add_property(name="SimpleRecordType", value=sr))
+    assert 'm' == rt.get_properties()[0].unit
 
-        recid = cr2.insert().id
 
-        '''annotate file'''
-        h.File(
-            path='testfiles/testfile').retrieve().add_property(
-            c.get_entity_by_name("CommentProperty"),
-            value="This is a really nice file.").update()
+def test_tenpoints2_4():
+    '''2.4 Nachtägliches Annotieren von Datensätzen, z.B. hinzufügen einer
+         Description oder einer Zahl'''
 
-        '''annotate records'''
-        h.Record(
-            name="My special unique record name").retrieve().add_property(
-            c.get_entity_by_name("CommentProperty"),
-            value="This is a really nice record.").update()
+    c = h.Container()
+    c.append(
+        h.Property(
+            name="SimpleTextProperty",
+            description="simple text property (from test_tenpoints.py)",
+            datatype='text'))
+    c.append(
+        h.Property(
+            name="SimpleDoubleProperty",
+            description="simple double property (from test_tenpoints.py)",
+            datatype='double'))
+    c.append(
+        h.Property(
+            name="SimpleIntegerProperty",
+            description="simple integer property (from test_tenpoints.py)",
+            datatype='integer'))
+    c.append(
+        h.Property(
+            name="SimpleDatetimeProperty",
+            description="simple datetime property (from test_tenpoints.py)",
+            datatype='datetime'))
+    c.append(
+        h.Property(
+            name="SimpleFileProperty",
+            description="simple file property (from test_tenpoints.py)",
+            datatype='file'))
+    c.append(
+        h.Property(
+            name="CommentProperty",
+            description="comment property",
+            datatype='text'))
+    c.insert()
+
+    d = h.Container()
+
+    d.append(
+        h.RecordType(
+            name="SimpleRecordType",
+            description="simple recordType (from test_tenpoints.py)") .add_property(
+            name='SimpleTextProperty',
+            importance='obligatory') .add_property(
+            name='SimpleDoubleProperty',
+            importance='obligatory') .add_property(
+                name='SimpleIntegerProperty',
+                importance='obligatory') .add_property(
+                    name='SimpleDatetimeProperty') .add_property(
+                        name='SimpleFileProperty'))
+
+    d.append(
+        h.Property(
+            name="ReferenceProperty",
+            description='reference property (from test_tenpoints.py)',
+            datatype="SimpleRecordType"))
+    d.append(h.RecordType(name="ComplexRecordType", description="complex recordType with references (from test_tenpoints.py)")
+             .add_property(name='ReferenceProperty')  # first method
+             # second method, doesn't need the ReferenceProperty
+             .add_property(name='SimpleRecordType')
+             )
+
+    d.insert()
+
+    ''' create testfile '''
+    f = open("test.dat", "w")
+    f.write("hello world\n")
+    f.close()
+
+    ''' prepare file record '''
+    e = h.Container()
+    e.append(h.File(id=-1, path='testfiles/testfile', file="test.dat"))
+
+    sr = (h.Record().add_parent(name="SimpleRecordType")
+          .add_property(name="SimpleTextProperty", value="Some Text")
+          .add_property(name="SimpleDoubleProperty", value=3.14)
+          .add_property(name="SimpleIntegerProperty", value=1337)
+          .add_property(name='SimpleFileProperty', value=-1)
+          )
+
+    e.append(sr).insert()
+
+    cr1 = (
         h.Record(
-            id=recid).retrieve().add_property(
-            c.get_entity_by_name("CommentProperty"),
-            value="I don't like this record.").update()
-        h.execute_query(
-            "FIND RECORD SimpleRecordType WITH SimpleIntegerProperty=1337 AND SimpleTextProperty='Some Text'",
-            unique=True).add_property(
-            c.get_entity_by_name("CommentProperty"),
-            value="I looove this record!!!!!11.").update()
-
-    finally:
-        try:
-            cr2.delete()
-        except BaseException:
-            pass
-        try:
-            cr1.delete()
-        except BaseException:
-            pass
-        try:
-            e.delete()
-        except BaseException:
-            pass
-        try:
-            d.delete()
-        except BaseException:
-            pass
-        try:
-            c.delete()
-        except BaseException:
-            pass
+            name="My special unique record name").add_parent(
+            name="ComplexRecordType") .add_property(
+            name="ReferenceProperty",
+            value=sr))
+
+    cr1.insert()
+
+    cr2 = (h.Record().add_parent(name="ComplexRecordType")
+           .add_property(name="SimpleRecordType", value=sr))
+
+    recid = cr2.insert().id
+
+    '''annotate file'''
+    h.File(
+        path='testfiles/testfile').retrieve().add_property(
+        c.get_entity_by_name("CommentProperty"),
+        value="This is a really nice file.").update()
+
+    '''annotate records'''
+    h.Record(
+        name="My special unique record name").retrieve().add_property(
+        c.get_entity_by_name("CommentProperty"),
+        value="This is a really nice record.").update()
+    h.Record(
+        id=recid).retrieve().add_property(
+        c.get_entity_by_name("CommentProperty"),
+        value="I don't like this record.").update()
+    h.execute_query(
+        "FIND RECORD SimpleRecordType WITH SimpleIntegerProperty=1337 AND SimpleTextProperty='Some Text'",
+        unique=True).add_property(
+        c.get_entity_by_name("CommentProperty"),
+        value="I looove this record!!!!!11.").update()
 
 
 def test_existence():
@@ -693,10 +586,3 @@ def test_existence():
         print("SimpleTextProperty does exist!")
 
     p.delete()
-
-
-def test_cleanup():
-    try:
-        h.execute_query("FIND Simple*").delete()
-    except BaseException:
-        pass