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