diff --git a/tests/test_misc.py b/tests/test_misc.py index 477ef4427fc68fba5cd370f9f421abf3e133b7d6..c890796bd294ccc4c2df0c8a4f4ba7d1fefd5470 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -1,10 +1,11 @@ # encoding: utf-8 # -# ** header v3.0 # This file is a part of the CaosDB Project. # # Copyright (C) 2018 Research Group Biomedical Physics, # Max-Planck-Institute for Dynamics and Self-Organization Göttingen +# Copyright (C) 2021 Timm Fitschen <t.fitschen@indiscale.com> +# Copyright (C) 2019-2021 IndiScale GmbH <indiscale@indiscale.com> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -18,18 +19,11 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. -# -# ** end header -# -# Copyright (c) 2019 IndiScale GmbH + """Created on 23.07.2015. @author: tf """ -from nose.tools import (assert_equal, assert_is_not_none, # @UnresolvedImport - assert_not_equal, assert_true, nottest, - with_setup) - import caosdb as db from caosdb import (Container, Info, Property, Record, RecordType, execute_query) @@ -42,9 +36,9 @@ def setup(): db.execute_query("FIND Test*").delete() except Exception as e: print(e) + assert len(db.execute_query("FIND Entity with id>99")) == 0 -@with_setup(setup=setup, teardown=setup) def test_file_system_returns_ids(): upload_file = open("test.dat", "w") upload_file.write("hello world\n") @@ -65,7 +59,7 @@ def test_file_system_returns_ids(): print(type(body)) search = "id=\"" + str(file_.id) + "\"" print(search) - assert_true(search in str(body)) + assert search in str(body) def test_sat_query_with_leading_slash(): @@ -77,63 +71,36 @@ def test_sat_query_with_leading_slash(): path="testfiles/test.dat", file="test.dat") file_.insert() - assert_equal( - file_.id, - db.execute_query( - "FIND FILE WHICH IS STORED testfiles/test.dat", - unique=True).id) - assert_equal( - file_.id, - db.execute_query( - "FIND FILE WHICH IS STORED /testfiles/test.dat", - unique=True).id) - assert_equal( - file_.id, - db.execute_query( - "FIND FILE WHICH IS STORED testfiles/test.*", - unique=True).id) - assert_equal( - file_.id, - db.execute_query( - "FIND FILE WHICH IS STORED /testfiles/test.*", - unique=True).id) - assert_equal( - file_.id, - db.execute_query( - "FIND FILE WHICH IS STORED testfiles/*", - unique=True).id) - assert_equal( - file_.id, - db.execute_query( - "FIND FILE WHICH IS STORED /testfiles/*", - unique=True).id) - assert_equal( - file_.id, - db.execute_query( - "FIND FILE WHICH IS STORED */test.dat", - unique=True).id) - assert_equal( - file_.id, - db.execute_query( - "FIND FILE WHICH IS STORED /*/test.dat", - unique=True).id) - assert_equal( - file_.id, - db.execute_query( - "FIND FILE WHICH IS STORED **/test.dat", - unique=True).id) - assert_equal( - file_.id, - db.execute_query( - "FIND FILE WHICH IS STORED /**/test.dat", - unique=True).id) + assert file_.id == db.execute_query( + "FIND FILE WHICH IS STORED testfiles/test.dat", + unique=True).id + assert file_.id == db.execute_query( + "FIND FILE WHICH IS STORED /testfiles/test.dat", + unique=True).id + assert file_.id == db.execute_query( + "FIND FILE WHICH IS STORED testfiles/test.*", unique=True).id + assert file_.id == db.execute_query( + "FIND FILE WHICH IS STORED /testfiles/test.*", + unique=True).id + assert file_.id == db.execute_query( + "FIND FILE WHICH IS STORED testfiles/*", unique=True).id + assert file_.id == db.execute_query( + "FIND FILE WHICH IS STORED /testfiles/*", unique=True).id + assert file_.id == db.execute_query( + "FIND FILE WHICH IS STORED */test.dat", unique=True).id + assert file_.id == db.execute_query( + "FIND FILE WHICH IS STORED /*/test.dat", unique=True).id + assert file_.id == db.execute_query( + "FIND FILE WHICH IS STORED **/test.dat", unique=True).id + assert file_.id == db.execute_query( + "FIND FILE WHICH IS STORED /**/test.dat", unique=True).id def test_name_with_slash(): rt1 = db.RecordType("Test/Name").insert() - assert_true(rt1.is_valid()) + assert rt1.is_valid() is True rt2 = db.RecordType("Test/Name").retrieve() - assert_equal(rt1.id, rt2.id) + assert rt1.id == rt2.id def test_nonsense_flag(): @@ -158,7 +125,6 @@ def test_error_no_such_role(): "There is no such role 'ASDF'.") -@with_setup(setup, setup) def test_parent_duplicate_1(): db.RecordType(name="TestRT1").insert() db.Property(name="TestProperty", datatype=db.TEXT).insert() @@ -167,16 +133,14 @@ def test_parent_duplicate_1(): name="TestRT1").add_parent( name="TestRT1").add_property( name="TestProperty") - assert_equal(len(rt2.get_parents()), 2) + assert len(rt2.get_parents()) == 2 rt2.insert() - assert_equal(len(rt2.get_parents()), 1) - assert_equal(len(rt2.get_warnings()), 1) - assert_equal( - rt2.get_warnings()[0].description, - "This entity had parent duplicates. That is meaningless and only one parent had been inserted.") + assert len(rt2.get_parents()) == 1 + assert len(rt2.get_warnings()) == 1 + assert rt2.get_warnings()[ + 0].description == "This entity had parent duplicates. That is meaningless and only one parent had been inserted." -@with_setup(setup, setup) def test_parent_duplicate_2(): db.RecordType(name="TestRT1").insert() rt2 = db.RecordType( @@ -199,338 +163,245 @@ def test_server_error(): con._http_request( method="GET", path="Entity?debug=throwNullPointerException") - assert_true("SRID = " in cm.value.msg) + assert "SRID = " in cm.value.msg def test_annotation(): - try: - p2 = Property(name="AnnotationTestUser", datatype="TEXT").insert() - assert_true(p2.is_valid()) - - p_comment = Property( - name="AnnotationTestComment", - datatype="TEXT").insert() - assert_true(p_comment.is_valid()) - - p_datetime = Property( - name="AnnotationTestDatetime", - datatype="Datetime").insert() - assert_true(p_datetime.is_valid()) - - p_entity = Property( - name="AnnotationTestEntity", - datatype="REFERENCE").insert() - assert_true(p_entity.is_valid()) - - Property(name="REFERENCE").retrieve() - - rt = RecordType( - name="AnnotationTestAnnotation").add_property( - name="AnnotationTestDatetime", + p2 = Property(name="TestUser", datatype="TEXT").insert() + assert p2.is_valid() is True + + p_comment = Property( + name="TestComment", + datatype="TEXT").insert() + assert p_comment.is_valid() is True + + p_datetime = Property( + name="TestDatetime", + datatype="Datetime").insert() + assert p_datetime.is_valid() is True + + p_entity = Property( + name="TestEntity", + datatype="REFERENCE").insert() + assert p_entity.is_valid() is True + + Property(name="REFERENCE").retrieve() + + rt = RecordType( + name="TestAnnotation").add_property( + name="TestDatetime", + importance="OBLIGATORY").add_property( + name="TestComment", + importance="OBLIGATORY").add_property( + name="TestUser", importance="OBLIGATORY").add_property( - name="AnnotationTestComment", - importance="OBLIGATORY").add_property( - name="AnnotationTestUser", - importance="OBLIGATORY").add_property( - name="AnnotationTestEntity", - importance="OBLIGATORY").insert() - - assert_true(rt.is_valid()) + name="TestEntity", + importance="OBLIGATORY").insert() - rt2 = RecordType(name="AnnotationTestSimpleRecordType").insert() - assert_true(rt2.is_valid()) + assert rt.is_valid() is True - rec = Record( - name="AnnotationTestSpecialAnnotion").add_parent(rt).add_property( - name="AnnotationTestDatetime", - value="NOW").add_property( - name="AnnotationTestUser", - value=db.get_config().get( - "Connection", - "username")).add_property( - name="AnnotationTestEntity", - value=rt2).add_property( - name="AnnotationTestComment", - value="Veeeery nice!").insert() + rt2 = RecordType(name="TestSimpleRecordType").insert() + assert rt2.is_valid() is True - assert_true(rec.is_valid()) + rec = Record( + name="TestSpecialAnnotion").add_parent(rt).add_property( + name="TestDatetime", + value="NOW").add_property( + name="TestUser", + value=db.get_config().get( + "Connection", + "username")).add_property( + name="TestEntity", + value=rt2).add_property( + name="TestComment", + value="Veeeery nice!").insert() - ann = execute_query( - "FIND AnnotationTestAnnotation WHICH REFERENCES AnnotationTestSimpleRecordType AS AN AnnotationTestEntity", - unique=True) - assert_true(ann.is_valid()) - assert_equal(rec.id, ann.id) + assert rec.is_valid() is True - finally: - rt = execute_query("FIND AnnotationTest*").delete() + ann = execute_query( + "FIND TestAnnotation WHICH REFERENCES TestSimpleRecordType AS AN TestEntity", + unique=True) + assert ann.is_valid() is True + assert rec.id == ann.id def test_info(): i = Info() - assert_is_not_none(i.messages["Flags"]) - assert_is_not_none(i.messages["Counts"]) - assert_is_not_none(i.messages["TransactionBenchmark"]) - assert_not_equal('-1', i.messages["Counts"]["files"]) - assert_not_equal('-1', i.messages["Counts"]["records"]) - assert_not_equal('-1', i.messages["Counts"]["properties"]) - assert_not_equal('-1', i.messages["Counts"]["recordTypes"]) - assert_equal('true', i.messages["Counts"]["debug"]) + assert (i.messages["Flags"]) is not None + assert (i.messages["Counts"]) is not None + assert (i.messages["TransactionBenchmark"]) is not None + assert '-1' != i.messages["Counts"]["files"] + assert '-1' != i.messages["Counts"]["records"] + assert '-1' != i.messages["Counts"]["properties"] + assert '-1' != i.messages["Counts"]["recordTypes"] + assert 'true' == i.messages["Counts"]["debug"] # Not necessarily 0, all the temporary directories go here as well. - # assert_equal('0', i.messages["Counts"]["tmpfiles"]) + # assert 0 == i.messages["Counts"]["tmpfiles"] def test_long_description(): - try: + longstr = 'desc_' + while len(longstr) < 10000: + longstr += "a" - longstr = 'desc_' - while len(longstr) < 10000: - longstr += "a" + rt = RecordType( + name="TestSimpleRecordTypeWithLongDesc", + description=longstr).insert() + assert rt.is_valid() is True + assert rt.description == longstr - rt = RecordType( - name="SimpleRecordTypeWithLongDesc", - description=longstr).insert() - assert_true(rt.is_valid()) - assert_equal(rt.description, longstr) - - rt2 = RecordType(name="SimpleRecordTypeWithLongDesc").retrieve() - assert_true(rt2.is_valid()) - assert_equal(rt2.description, longstr) - finally: - try: - rt.delete() - except BaseException: - pass + rt2 = RecordType(name="TestSimpleRecordTypeWithLongDesc").retrieve() + assert rt2.is_valid() is True + assert rt2.description == longstr def test_auto_importance_for_properties(): - try: - p = Property(name="SimpleTestProperty1", datatype=db.TEXT).insert() - assert_true(p.is_valid()) + p = Property(name="TestProperty1", datatype=db.TEXT).insert() + assert p.is_valid() is True - p2 = Property( - name="SimpleTestProperty2", - datatype=db.TEXT).add_property(p).insert() - assert_true(p2.is_valid()) - - finally: - try: - p2.delete() - except BaseException: - pass - try: - p.delete() - except BaseException: - pass + p2 = Property( + name="TestProperty2", + datatype=db.TEXT).add_property(p).insert() + assert p2.is_valid() is True def test_overrides_with_deletion_in_worst_case_order(): - try: - try: - db.execute_query("FIND Simple*").delete() - except BaseException: - pass - - p = Property( - name="SimpleTestProperty1", - description="desc1", - datatype=db.TEXT).insert() - assert_true(p.is_valid()) - - rt1 = RecordType( - name="SimpleRT1").add_property( - id=p.id, - name="nameOverride1", - description="descOverride1").insert() - assert_true(rt1.is_valid()) - - assert_equal(p.id, rt1.get_property("nameOverride1").id) - assert_equal( - "descOverride1", - rt1.get_property("nameOverride1").description) - - # is persistent? - rt1c = RecordType(name="SimpleRT1").retrieve() - assert_true(rt1c.is_valid()) - - assert_equal(p.id, rt1c.get_property("nameOverride1").id) - assert_equal( - "descOverride1", - rt1c.get_property("nameOverride1").description) - - db.Container().extend([p, rt1]).delete() - - finally: - try: - rt1.delete() - except BaseException: - pass - try: - p.delete() - except BaseException: - pass + p = Property( + name="TestProperty1", + description="desc1", + datatype=db.TEXT).insert() + assert p.is_valid() is True + + rt1 = RecordType( + name="TestRT1").add_property( + id=p.id, + name="nameOverride1", + description="descOverride1").insert() + assert rt1.is_valid() is True + + assert p.id == rt1.get_property("nameOverride1").id + assert "descOverride1" == rt1.get_property("nameOverride1").description + + # is persistent? + rt1c = RecordType(name="TestRT1").retrieve() + assert rt1c.is_valid() is True + + assert p.id == rt1c.get_property("nameOverride1").id + assert "descOverride1" == rt1c.get_property("nameOverride1").description + + db.Container().extend([p, rt1]).delete() def test_overrides_with_duplicates(): - try: - try: - db.execute_query("FIND Simple*").delete() - except BaseException: - pass - - p = Property( - name="SimpleTestProperty1", - description="desc1", - datatype=db.TEXT).insert() - assert_true(p.is_valid()) - - rt1 = RecordType( - name="SimpleRT1").add_property( - id=p.id, - name="nameOverride1", - description="descOverride1").add_property( - id=p.id, - name="nameOverride2", - description="descOverride2").insert() - assert_true(rt1.is_valid()) - - assert_equal(p.id, rt1.get_property("nameOverride1").id) - assert_equal(p.id, rt1.get_property("nameOverride2").id) - assert_equal( - "descOverride1", - rt1.get_property("nameOverride1").description) - assert_equal( - "descOverride2", - rt1.get_property("nameOverride2").description) - - # is persistent? - rt1c = RecordType(name="SimpleRT1").retrieve() - assert_true(rt1c.is_valid()) - - assert_equal(p.id, rt1c.get_property("nameOverride1").id) - assert_equal(p.id, rt1c.get_property("nameOverride2").id) - assert_equal( - "descOverride1", - rt1c.get_property("nameOverride1").description) - assert_equal( - "descOverride2", - rt1c.get_property("nameOverride2").description) - - finally: - try: - rt1.delete() - except BaseException: - pass - try: - p.delete() - except BaseException: - pass + p = Property( + name="TestProperty1", + description="desc1", + datatype=db.TEXT).insert() + assert p.is_valid() is True + + rt1 = RecordType( + name="TestRT1").add_property( + id=p.id, + name="nameOverride1", + description="descOverride1").add_property( + id=p.id, + name="nameOverride2", + description="descOverride2").insert() + assert rt1.is_valid() is True + + assert p.id == rt1.get_property("nameOverride1").id + assert p.id == rt1.get_property("nameOverride2").id + assert "descOverride1" == rt1.get_property("nameOverride1").description + assert "descOverride2" == rt1.get_property("nameOverride2").description + + # is persistent? + rt1c = RecordType(name="TestRT1").retrieve() + assert rt1c.is_valid() is True + + assert p.id == rt1c.get_property("nameOverride1").id + assert p.id == rt1c.get_property("nameOverride2").id + assert "descOverride1" == rt1c.get_property("nameOverride1").description + assert "descOverride2" == rt1c.get_property("nameOverride2").description def test_overrides_in_subdomains(): - try: - try: - db.execute_query("FIND Simple*").delete() - except BaseException: - pass - - def insert_model(): - p1 = Property( - name="SimpleTestProperty1", - description="desc1", - datatype=db.TEXT).insert() - assert_true(p1.is_valid()) - - p2 = Property( - name="SimpleTestProperty2", - description="desc2", - datatype=db.TEXT).insert() - assert_true(p2.is_valid()) - - p3 = Property( - name="SimpleTestProperty3", - description="desc3", - datatype=db.TEXT).insert() - assert_true(p3.is_valid()) - - pov1 = Property( - id=p1.id, - name="SimpleTestPropertyov1", - description="desc1ov1") - pov2 = Property( - id=p2.id, - name="SimpleTestPropertyov2", - description="desc1ov2") - pov3 = Property( - id=p3.id, - name="SimpleTestPropertyov3", - description="desc1ov3") - - pov21 = Property( - id=p1.id, - name="SimpleTestPropertyov21", - description="desc1ov21") - pov22 = Property( - id=p2.id, - name="SimpleTestPropertyov22", - description="desc1ov22") - - pov31 = Property( - id=p1.id, - name="SimpleTestPropertyov31", - description="desc1ov31") - pov32 = Property( - id=p2.id, - name="SimpleTestPropertyov32", - description="desc1ov32") - pov33 = Property( - id=p3.id, - name="SimpleTestPropertyov33", - description="desc1ov33") - - pov321 = Property( - id=p1.id, - name="SimpleTestPropertyov321", - description="desc1ov321") - pov322 = Property( - id=p2.id, - name="SimpleTestPropertyov322", - description="desc1ov322") - pov323 = Property( - id=p3.id, - name="SimpleTestPropertyov323", - description="desc1ov323") - - pov32.add_property(pov321).add_property( - pov322).add_property(pov323) - pov3.add_property(pov31).add_property(pov32).add_property(pov33) - pov2.add_property(pov21).add_property(pov22) - - rt1 = RecordType(name="SimpleRT1").add_property( - pov1).add_property(pov2).add_property(pov3).insert() - assert_true(rt1.is_valid()) - - insert_model() - - finally: - try: - db.execute_query("FIND SimpleRT1").delete() - except BaseException: - pass - try: - db.execute_query("FIND SimpleTestProperty3").delete() - except BaseException: - pass - try: - db.execute_query("FIND SimpleTestProperty2").delete() - except BaseException: - pass - try: - db.execute_query("FIND SimpleTestProperty1").delete() - except BaseException: - pass - - -@nottest + p1 = Property( + name="TestProperty1", + description="desc1", + datatype=db.TEXT).insert() + assert p1.is_valid() is True + + p2 = Property( + name="TestProperty2", + description="desc2", + datatype=db.TEXT).insert() + assert p2.is_valid() is True + + p3 = Property( + name="TestProperty3", + description="desc3", + datatype=db.TEXT).insert() + assert p3.is_valid() is True + + pov1 = Property( + id=p1.id, + name="TestPropertyov1", + description="desc1ov1") + pov2 = Property( + id=p2.id, + name="TestPropertyov2", + description="desc1ov2") + pov3 = Property( + id=p3.id, + name="TestPropertyov3", + description="desc1ov3") + + pov21 = Property( + id=p1.id, + name="TestPropertyov21", + description="desc1ov21") + pov22 = Property( + id=p2.id, + name="TestPropertyov22", + description="desc1ov22") + + pov31 = Property( + id=p1.id, + name="TestPropertyov31", + description="desc1ov31") + pov32 = Property( + id=p2.id, + name="TestPropertyov32", + description="desc1ov32") + pov33 = Property( + id=p3.id, + name="TestPropertyov33", + description="desc1ov33") + + pov321 = Property( + id=p1.id, + name="TestPropertyov321", + description="desc1ov321") + pov322 = Property( + id=p2.id, + name="TestPropertyov322", + description="desc1ov322") + pov323 = Property( + id=p3.id, + name="TestPropertyov323", + description="desc1ov323") + + pov32.add_property(pov321).add_property( + pov322).add_property(pov323) + pov3.add_property(pov31).add_property(pov32).add_property(pov33) + pov2.add_property(pov21).add_property(pov22) + + rt1 = RecordType(name="TestRT1").add_property( + pov1).add_property(pov2).add_property(pov3).insert() + assert rt1.is_valid() is True + + +@mark.skip() def test_cache_performance(): import time as t @@ -584,10 +455,23 @@ def test_cache_performance(): n += 10 -@mark.xfail(reason="Waits for MR https://gitlab.indiscale.com/caosdb/src/caosdb-pylib/-/merge_requests/15") def test_role_after_retrieve(): rt = db.RecordType("TestRT").insert() entity = db.Entity(id=rt.id) assert entity.role is None entity.retrieve() assert entity.role == rt.role + + +def test_retrieve_wrong_role(): + rt = db.RecordType("TestRT").insert() + entity = db.Record(id=rt.id) + assert entity.role == "Record" + with raises(ValueError) as cm: + entity.retrieve() + assert cm.value.args[0] == ("The resulting entity had a different role " + "(RecordType) than the local one (Record). " + "This probably means, that the entity was " + "intialized with a wrong class by this client " + "or it has changed in the past and this " + "client did't know about it yet.") diff --git a/tests/test_permissions.py b/tests/test_permissions.py index 1953b388a7d87629f9695332c83b2484c7c3cb4b..a77b77434373f4b0527489a3764669778cb1907e 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -29,14 +29,12 @@ from __future__ import absolute_import import caosdb as db -from nose.tools import (assert_true, - assert_equal, +from nose.tools import (assert_equal, assert_raises, assert_false, assert_is_none, - assert_is_not_none, - nottest) -from pytest import raises + assert_is_not_none) +from pytest import raises, mark from .test_misc import test_info @@ -66,7 +64,7 @@ def teardown_module(): pass -@nottest +@mark.skip def switch_to_test_user(): db.configure_connection(username=test_user, password=test_pw, password_method="plain") @@ -106,7 +104,7 @@ def grant_permission(entity, permission, username=test_user, priority=False, return ret -@nottest # No need to test manually, is called by setup() +@mark.skip def insert_test_user(): try: db.administration._delete_user(name=test_user) @@ -167,13 +165,13 @@ def test_basic_acl_stuff(): datatype=db.TEXT).insert( flags={ "ACL": None}) - assert_true(p.is_valid()) + assert p.is_valid() assert_is_not_none(p.acl) p.retrieve(flags={"ACL": None}) - assert_true(p.is_valid()) + assert p.is_valid() assert_is_not_none(p.acl) - assert_true(isinstance(p.acl, db.ACL)) + assert isinstance(p.acl, db.ACL) assert_false(p.acl.is_empty()) user_acl = p.acl.get_acl_for_user( @@ -181,16 +179,16 @@ def test_basic_acl_stuff(): print(user_acl) assert_is_not_none(user_acl) - assert_true(isinstance(user_acl, db.ACL)) + assert isinstance(user_acl, db.ACL) assert_false(user_acl.is_empty()) user_permissions = p.acl.get_permissions_for_user( db.get_config().get("Connection", "username")) assert_is_not_none(user_permissions) - assert_true(isinstance(user_permissions, set)) - assert_true(len(user_permissions) > 0) + assert isinstance(user_permissions, set) + assert len(user_permissions) > 0 - assert_true("DELETE" in user_permissions) + assert "DELETE" in user_permissions other_role_permissions = p.acl.get_permissions_for_role("other_role") assert_false("DELETE" in other_role_permissions) @@ -269,14 +267,13 @@ def test_query(): def test_update_acl(): p = db.Property(name="TestProperty", datatype=db.TEXT).insert() - assert_true(p.is_valid()) + assert p.is_valid() assert_is_none(p.acl) p.retrieve_acl() assert_is_not_none(p.acl) - assert_true( - "USE:AS_DATA_TYPE" in p.acl.get_permissions_for_user( - db.get_config().get("Connection", "username"))) + assert "USE:AS_DATA_TYPE" in p.acl.get_permissions_for_user( + db.get_config().get("Connection", "username")) p.acl.deny( username=db.get_config().get("Connection", "username"), permission="USE:AS_DATA_TYPE") @@ -286,7 +283,7 @@ def test_update_acl(): '''Success''' p.update(flags={"ACL": None}) - assert_true(p.is_valid()) + assert p.is_valid() assert_is_not_none(p.acl) assert_false( "USE:AS_DATA_TYPE" in p.acl.get_permissions_for_user( @@ -297,18 +294,16 @@ def test_update_acl(): unique=True, flags={ "ACL": None}) - assert_true(p2.is_valid()) + assert p2.is_valid() assert_is_not_none(p2.acl) - assert_true( - "USE:AS_PROPERTY" in p2.acl.get_permissions_for_user( - db.get_config().get("Connection", "username"))) + assert "USE:AS_PROPERTY" in p2.acl.get_permissions_for_user( + db.get_config().get("Connection", "username")) assert_false( "USE:AS_DATA_TYPE" in p2.acl.get_permissions_for_user( db.get_config().get("Connection", "username"))) - assert_true( - "EDIT:ACL" in p2.acl.get_permissions_for_user( - db.get_config().get("Connection", "username"))) + assert "EDIT:ACL" in p2.acl.get_permissions_for_user( + db.get_config().get("Connection", "username")) p2.acl.deny( username=db.get_config().get("Connection", "username"), permission="EDIT:ACL") @@ -324,11 +319,10 @@ def test_update_acl(): unique=True, flags={ "ACL": None}) - assert_true(p3.is_valid()) + assert p3.is_valid() assert_is_not_none(p3.acl) - assert_true( - "USE:AS_PROPERTY" in p3.acl.get_permissions_for_user( - db.get_config().get("Connection", "username"))) + assert "USE:AS_PROPERTY" in p3.acl.get_permissions_for_user( + db.get_config().get("Connection", "username")) assert_false( "USE:AS_DATA_TYPE" in p3.acl.get_permissions_for_user( db.get_config().get("Connection", "username"))) @@ -370,7 +364,7 @@ def test_update_acl(): def test_update_name(): p = db.Property(name="TestProperty", datatype=db.TEXT).insert() - assert_true(p.is_valid()) + assert p.is_valid() grant_permission(p, "RETRIEVE:*") grant_permission(p, "UPDATE:*") @@ -381,7 +375,7 @@ def test_update_name(): p.update() p2 = db.execute_query("FIND Test*", unique=True) - assert_true(p.is_valid()) + assert p.is_valid() assert_equal(p2.name, "TestPropertyNew") '''Failure''' @@ -405,7 +399,7 @@ def test_update_desc(): name="TestProperty", description="Description", datatype=db.TEXT).insert() - assert_true(p.is_valid()) + assert p.is_valid() grant_permission(p, "RETRIEVE:*") grant_permission(p, "UPDATE:DESCRIPTION") @@ -417,7 +411,7 @@ def test_update_desc(): p.update() p2 = db.execute_query("FIND Test*", unique=True) - assert_true(p.is_valid()) + assert p.is_valid() assert_equal(p2.description, "DescriptionNew") deny_permission(p, "UPDATE:DESCRIPTION") @@ -435,7 +429,7 @@ def test_update_desc(): def test_update_data_type(): p = db.Property(name="TestProperty", datatype=db.TEXT).insert() - assert_true(p.is_valid()) + assert p.is_valid() grant_permission(p, "RETRIEVE:ENTITY") grant_permission(p, "UPDATE:DATA_TYPE") @@ -446,7 +440,7 @@ def test_update_data_type(): p.update() p2 = db.execute_query("FIND Test*", unique=True) - assert_true(p.is_valid()) + assert p.is_valid() assert_equal(p2.datatype, db.INTEGER) deny_permission(p, "UPDATE:DATA_TYPE") @@ -464,22 +458,24 @@ def test_update_data_type(): def test_update_role(): p = db.Property(name="TestProperty", datatype=db.TEXT).insert() - assert_true(p.is_valid()) + assert p.is_valid() grant_permission(p, "RETRIEVE:ENTITY") grant_permission(p, "UPDATE:ROLE") '''Success''' - rt = db.RecordType(name="TestProperty").retrieve() + rt = db.Entity(name="TestProperty").retrieve() + rt.role = "RecordType" rt.update() rt2 = db.execute_query("FIND TestProperty", unique=True) - assert_true(isinstance(rt2, db.RecordType)) + assert isinstance(rt2, db.RecordType) deny_permission(p, "UPDATE:ROLE") '''Failure''' - rec = db.Record(name="TestProperty").retrieve() + rec = db.Entity(name="TestProperty").retrieve() + rec.role = "Record" with raises(db.TransactionError) as te: rec.update() assert te.value.has_error(db.AuthorizationError) @@ -498,7 +494,7 @@ def test_update_move_file(): name="TestFile", path="/permissiontestfiles/test.dat", file="test.dat").insert() - assert_true(f.is_valid()) + assert f.is_valid() grant_permission(f, "RETRIEVE:ENTITY") grant_permission(f, "UPDATE:FILE:MOVE") @@ -549,7 +545,7 @@ def test_update_add_file(): f2.path = "/permissiontestfiles/newtest.dat" f2.file = upload_file f2.update() - assert_true(f2.is_valid()) + assert f2.is_valid() f2 = db.execute_query("FIND TestFile", unique=True) assert_equal(f2.path, "/permissiontestfiles/newtest.dat") @@ -568,7 +564,7 @@ def test_update_change_file(): name="TestFile", file=upload_file, path="permissiontestfiles/test.dat").insert() - assert_true(f.is_valid()) + assert f.is_valid() grant_permission(f, "RETRIEVE:ENTITY") grant_permission(f, "RETRIEVE:FILE") @@ -607,11 +603,11 @@ def test_update_change_file(): def test_update_add_property(): p = db.Property(name="TestProperty", datatype=db.TEXT).insert() - assert_true(p.is_valid()) + assert p.is_valid() p2 = db.Property(name="TestProperty2", datatype=db.TEXT).insert() - assert_true(p2.is_valid()) + assert p2.is_valid() rt = db.RecordType(name="TestRecordType").insert() - assert_true(rt.is_valid()) + assert rt.is_valid() rt = db.execute_query("FIND TestRecordType", unique=True) assert_equal(len(rt.get_properties()), 0) @@ -656,14 +652,14 @@ def test_update_add_property(): def test_update_remove_property(): p = db.Property(name="TestProperty", datatype=db.TEXT).insert() - assert_true(p.is_valid()) + assert p.is_valid() p2 = db.Property(name="TestProperty2", datatype=db.TEXT).insert() - assert_true(p2.is_valid()) + assert p2.is_valid() rt = db.RecordType( name="TestRecordType").add_property( name="TestProperty").add_property( name="TestProperty2").insert() - assert_true(rt.is_valid()) + assert rt.is_valid() rt = db.execute_query("FIND TestRecordType", unique=True) assert_equal(len(rt.get_properties()), 2) @@ -701,11 +697,11 @@ def test_update_remove_property(): def test_update_add_parent(): rt = db.RecordType(name="TestRecordType").insert() - assert_true(rt.is_valid()) + assert rt.is_valid() par1 = db.RecordType(name="TestRecordTypePar1").insert() - assert_true(par1.is_valid()) + assert par1.is_valid() par2 = db.RecordType(name="TestRecordTypePar2").insert() - assert_true(par2.is_valid()) + assert par2.is_valid() rt = db.execute_query("FIND TestRecordType", unique=True) assert_equal(len(rt.get_parents()), 0) @@ -750,12 +746,12 @@ def test_update_add_parent(): def test_update_remove_parent(): par1 = db.RecordType(name="TestRecordTypePar1").insert() - assert_true(par1.is_valid()) + assert par1.is_valid() par2 = db.RecordType(name="TestRecordTypePar2").insert() - assert_true(par2.is_valid()) + assert par2.is_valid() rt = db.RecordType(name="TestRecordType").add_parent( par1).add_parent(par2).insert() - assert_true(rt.is_valid()) + assert rt.is_valid() rt = db.execute_query("FIND TestRecordType", unique=True) assert_equal(len(rt.get_parents()), 2) @@ -1020,7 +1016,7 @@ def test_permissions_there(): entity2 = db.Property(id=entity.id).retrieve() assert_is_not_none(entity2.permissions) - assert_true(entity2.is_permitted("RETRIEVE:ACL")) + assert entity2.is_permitted("RETRIEVE:ACL") def test_grant_nonsense_permission(): @@ -1033,9 +1029,9 @@ def test_grant_nonsense_permission(): def test_global_acl_there(): assert_is_not_none(db.get_global_acl()) - assert_true(isinstance(db.get_global_acl(), db.ACL)) + assert isinstance(db.get_global_acl(), db.ACL) assert_is_not_none(db.get_known_permissions()) - assert_true(isinstance(db.get_known_permissions(), db.Permissions)) + assert isinstance(db.get_known_permissions(), db.Permissions) print(db.get_known_permissions()) print(db.get_global_acl()) diff --git a/tests/test_properties.py b/tests/test_properties.py index e3d349f8a7a1bae5eb40c16b5fa499b0d3952312..ffedcdbd2bd38a7ee993307f52514da9116daf24 100644 --- a/tests/test_properties.py +++ b/tests/test_properties.py @@ -40,15 +40,20 @@ def teardown(): setup_module() -@pytest.mark.xfail(reason="See caosdb-pylib issue #31 and #66") def test_add_properties_with_wrong_role(): p = db.Property(name="TestProperty1", datatype=db.TEXT).insert() rt = db.RecordType(name="TestRT1").add_property("TestProperty1").insert() - wrong_role = db.Record(name="TestRT1").retrieve() + no_role = db.Entity(name="TestRT1").retrieve() + no_role.role = None + wrong_role = db.Entity(name="TestRT1").retrieve() + wrong_role.role = "Record" right_role = db.RecordType(name="TestRT1").retrieve() - rec = db.Record(name="fail").add_property(wrong_role) - rec2 = db.Record(name="ok").add_property(right_role) + + with pytest.raises(ValueError): + rec = db.Record().add_parent("TestRT1").add_property(wrong_role) + rec2 = db.Record().add_parent("TestRT1").add_property(right_role) + rec3 = db.Record().add_parent("TestRT1").add_property(no_role) assert wrong_role.get_property("TestProperty1") is not None assert str(wrong_role.get_property("TestProperty1")) == str( @@ -57,7 +62,13 @@ def test_add_properties_with_wrong_role(): xml = rec2.to_xml() assert not xml.xpath("/Record/Property/Property") - xml = rec.to_xml() - # TODO this fails because the Record is treated differently than the - # RecordType. + xml = rec3.to_xml() assert not xml.xpath("/Record/Property/Property") + + rec2.insert() + rec3.insert() + + for e in [rec2, rec3]: + assert e.id is not None + assert e.get_property("TestRT1") is not None + assert e.get_property("TestRT1").value is None diff --git a/tests/test_tickets.py b/tests/test_tickets.py index cdaee95f647cec1574563b08922a7d9be08bad07..bcffcd31a05b1fcce33af415f9e27bcc11579b6b 100644 --- a/tests/test_tickets.py +++ b/tests/test_tickets.py @@ -28,15 +28,12 @@ import caosdb as db from caosdb.exceptions import (CaosDBException, TransactionError, UniqueNamesError) -from nose.tools import (assert_equal, assert_false, assert_is_none, - assert_is_not_none, assert_raises, assert_true, - nottest) import pytest from tests import test_misc def setup(): - d = db.execute_query("FIND ENTITY WITH ID > 99") + d = db.execute_query("FIND Test*") if len(d) > 0: d.delete() @@ -130,78 +127,51 @@ def test_ticket_103a(): def test_ticket_103c(): # strict flag + rt1 = db.RecordType(name="TestStrict2") - try: - rt1 = db.RecordType(name="TestStrict2") - - rt1.insert(unique=True) - assert_true(rt1.is_valid()) - - finally: - try: - rt1.delete() - except BaseException: - pass + rt1.insert(unique=True) + assert rt1.is_valid() def test_ticket_103b(): # unique flag + rt1 = db.RecordType(name="TestNameDuplicatesEntity") + rt2 = db.RecordType(name="TestNameDuplicatesEntity") - try: - rt1 = db.RecordType(name="TestNameDuplicatesEntity") - rt2 = db.RecordType(name="TestNameDuplicatesEntity") - - rt1.insert( - unique=True, strict=False) - assert rt1.is_valid() - with pytest.raises(TransactionError) as te: - rt2.insert(unique=True) - assert te.value.has_error(UniqueNamesError) - - assert not rt2.is_valid() + rt1.insert( + unique=True, strict=False) + assert rt1.is_valid() + with pytest.raises(TransactionError) as te: + rt2.insert(unique=True) + assert te.value.has_error(UniqueNamesError) - finally: - try: - rt1.delete() - except BaseException: - pass - try: - rt2.delete() - except BaseException: - pass + assert not rt2.is_valid() def test_ticket_101(): """RecordType and Property constructor work differently?""" rec = db.Record("some_name") - assert_is_not_none(rec.name) - assert_equal("some_name", rec.name) - assert_is_none(rec.id) + assert rec.name is not None + assert "some_name" == rec.name + assert rec.id is None rt = db.RecordType("some_name") - assert_is_not_none(rt.name) - assert_equal("some_name", rt.name) - assert_is_none(rt.id) + assert rt.name is not None + assert "some_name" == rt.name + assert rt.id is None p = db.Property("some_name") - assert_is_not_none(p.name) - assert_equal("some_name", p.name) - assert_is_none(p.id) + assert p.name is not None + assert "some_name" == p.name + assert p.id is None f = db.File("some_name") - assert_is_not_none(f.name) - assert_equal("some_name", f.name) - assert_is_none(f.id) + assert f.name is not None + assert "some_name" == f.name + assert f.id is None def test_ticket_100(): - - try: - rt = db.RecordType(name="a_b").insert() - db.RecordType(name="a_b").retrieve() - finally: - try: - rt.delete() - except BaseException: - pass + db.RecordType(name="Testa_b").insert() + db.RecordType(name="Testa_b").retrieve() def test_ticket_114(): @@ -236,10 +206,10 @@ def test_ticket_114(): def test_ticket_120(): p = db.Property( - name="SimpleDoubleProperty", datatype="DOUBLE").insert() - rt1 = db.RecordType(name="SimpleRT1").insert() - rt2 = db.RecordType(name="SimpleRT2").add_parent(rt1).insert() - rt3 = db.RecordType(name="SimpleRT3").add_parent(rt2).insert() + name="TestDoubleProperty", datatype="DOUBLE").insert() + rt1 = db.RecordType(name="TestRT1").insert() + rt2 = db.RecordType(name="TestRT2").add_parent(rt1).insert() + rt3 = db.RecordType(name="TestRT3").add_parent(rt2).insert() r1 = db.Record().add_parent(rt1).add_property( id=p.id, value=3.14).insert() r2 = db.Record().add_parent(rt2).add_property( @@ -247,37 +217,37 @@ def test_ticket_120(): r3 = db.Record().add_parent(rt3).add_property( id=rt2.id, value=r2).insert() - cp = db.Query("FIND PROPERTY SimpleDoubleProperty").execute( + cp = db.Query("FIND PROPERTY TestDoubleProperty").execute( unique=True) assert p.id == cp.id - crt123 = db.Query("FIND RECORDTYPE SimpleRT1").execute(unique=False) + crt123 = db.Query("FIND RECORDTYPE TestRT1").execute(unique=False) assert crt123.get_entity_by_id(rt1.id).is_valid() assert crt123.get_entity_by_id(rt2.id).is_valid() assert crt123.get_entity_by_id(rt3.id).is_valid() - cr1 = db.Query("FIND RECORD . SimpleDoubleProperty='3.14'").execute( + cr1 = db.Query("FIND RECORD . TestDoubleProperty='3.14'").execute( unique=True) assert r1.id == cr1.id - cr23 = db.Query("FIND RECORD . SimpleRT1").execute(unique=False) + cr23 = db.Query("FIND RECORD . TestRT1").execute(unique=False) assert cr23.get_entity_by_id(r2.id).is_valid() assert cr23.get_entity_by_id(r3.id).is_valid() - cr3 = db.Query("FIND RECORD . SimpleRT2").execute(unique=True) + cr3 = db.Query("FIND RECORD . TestRT2").execute(unique=True) assert r3.id == cr3.id - cr2 = db.Query("FIND RECORD . SimpleRT1->" + str(r1.id)).execute( + cr2 = db.Query("FIND RECORD . TestRT1->" + str(r1.id)).execute( unique=True) assert r2.id == cr2.id - cr3 = db.Query("FIND RECORD . SimpleRT1->" + str(r2.id)).execute( + cr3 = db.Query("FIND RECORD . TestRT1->" + str(r2.id)).execute( unique=True) assert r3.id == cr3.id cr3 = db.Query( - "FIND RECORD WHICH HAS A PROPERTY blabla=4 OR SimpleRT1->SimpleRT2" - " WHICH HAS A PROPERTY SimpleRT1->" + + "FIND RECORD WHICH HAS A PROPERTY blabla=4 OR TestRT1->TestRT2" + " WHICH HAS A PROPERTY TestRT1->" + str( r1.id) + "").execute( @@ -285,25 +255,25 @@ def test_ticket_120(): assert r3.id == cr3.id cr3 = db.Query( - "FIND SimpleRT1 . SimpleRT1.SimpleRT1.SimpleDoubleProperty='3.14'" + "FIND TestRT1 . TestRT1.TestRT1.TestDoubleProperty='3.14'" ).execute(unique=True) assert r3.id == cr3.id cr3 = db.Query( - "FIND RECORD SimpleRT1 . " - "SimpleRT1.SimpleRT1.SimpleDoubleProperty='3.14'" + "FIND RECORD TestRT1 . " + "TestRT1.TestRT1.TestDoubleProperty='3.14'" ).execute(unique=True) assert r3.id == cr3.id cr3 = db.Query( - "FIND RECORD . SimpleRT1.SimpleRT1.SimpleDoubleProperty='3.14'" + "FIND RECORD . TestRT1.TestRT1.TestDoubleProperty='3.14'" ).execute(unique=True) assert r3.id == cr3.id def test_ticket_120a(): - p = db.Property(name="TestSimpleDoubleProperty", datatype="DOUBLE") + p = db.Property(name="TestDoubleProperty", datatype="DOUBLE") rt1 = db.RecordType(name="TestRT1").add_property(p) rt2 = db.RecordType(name="TestRT2").add_property(rt1, inheritance='None') rt3 = db.RecordType(name="TestRT3").add_property(rt2, inheritance='None') @@ -323,33 +293,31 @@ def test_ticket_117(): # insert record type rt1 = db.RecordType(name="TestRT1").insert() - assert_true(rt1.is_valid()) + assert rt1.is_valid() id_rt1 = rt1.id # retrieve it r = db.RecordType(id=id_rt1).retrieve() - assert_true(r.is_valid()) - assert_equal(id_rt1, r.id) + assert r.is_valid() + assert id_rt1 == r.id # create property p.insert() - assert_true(p.is_valid()) + assert p.is_valid() # add property to record type r.add_property(id=p.id, name='TestwaveVelocity', importance="obligatory") r.name = 'TestRT1update' r.update() - assert_is_not_none(r.name) - assert_equal('TestRT1update', r.name) - assert_true(r.is_valid()) - assert_is_not_none(r.get_properties()) - assert_is_not_none(r.get_properties().get_by_name('TestwaveVelocity')) - assert_is_not_none( - r.get_properties().get_by_name('TestwaveVelocity').datatype) - assert_equal( - str("DOUBLE").lower(), - r.get_properties().get_by_name('TestwaveVelocity').datatype.lower()) + assert r.name is not None + assert 'TestRT1update' == r.name + assert r.is_valid() + assert r.get_properties() is not None + assert r.get_properties().get_by_name('TestwaveVelocity') is not None + assert r.get_properties().get_by_name('TestwaveVelocity').datatype is not None + assert str("DOUBLE").lower() == r.get_properties( + ).get_by_name('TestwaveVelocity').datatype.lower() def test_ticket_106(): @@ -375,7 +343,7 @@ def test_ticket_91(): import os path = "ticket_91_test_file.py" try: - assert_false(os.path.isfile(path)) + assert not os.path.isfile(path) upload_file = open(path, "w") upload_file.write('print("hello world!")\n') upload_file.close() @@ -386,7 +354,7 @@ def test_ticket_91(): path="pythontestfiles/python_test_file.py", file=path) f.insert() - assert_true(f.is_valid()) + assert f.is_valid() finally: try: os.remove(path) @@ -412,11 +380,11 @@ def test_ticket_86(): path="pythontestfiles/python_test_file.py", file=path) f.insert() - assert_true(f.is_valid()) + assert f.is_valid() f2 = db.File(name=path) f2.retrieve() - assert_true(f2.is_valid()) + assert f2.is_valid() finally: os.remove(path) f.delete() @@ -425,39 +393,39 @@ def test_ticket_86(): def test_ticket_83(): rt1 = db.RecordType(name="TestRT1").insert() rt2 = db.RecordType(name="TestRT2").insert() - assert_true(rt1.is_valid()) - assert_true(rt2.is_valid()) + assert rt1.is_valid() + assert rt2.is_valid() crt1 = db.RecordType(id=rt1.id).retrieve() crt2 = db.RecordType(id=rt2.id).retrieve() - assert_true(crt1.is_valid()) - assert_true(crt2.is_valid()) + assert crt1.is_valid() + assert crt2.is_valid() c = db.Container().extend([crt1, crt2]).retrieve() - assert_equal(2, len(c)) + assert 2 == len(c) def test_ticket_139(): rt1 = db.RecordType(name="TestRT1").insert() - assert_true(rt1.is_valid()) - assert_equal("TestRT1", rt1.name) - assert_equal(1, len(db.execute_query("FIND TestRT1"))) + assert rt1.is_valid() + assert "TestRT1" == rt1.name + assert 1 == len(db.execute_query("FIND TestRT1")) rt1.delete() - assert_false(rt1.is_valid()) - assert_equal(0, len(db.execute_query("FIND TestRT1"))) + assert not rt1.is_valid() + assert 0 == len(db.execute_query("FIND TestRT1")) rt1.insert() - assert_true(rt1.is_valid()) - assert_equal("TestRT1", rt1.name) - assert_equal(1, len(db.execute_query("FIND TestRT1"))) + assert rt1.is_valid() + assert "TestRT1" == rt1.name + assert 1 == len(db.execute_query("FIND TestRT1")) rt1.delete() - assert_false(rt1.is_valid()) - assert_equal(0, len(db.execute_query("FIND TestRT1"))) + assert not rt1.is_valid() + assert 0 == len(db.execute_query("FIND TestRT1")) - assert_equal("TestRT1", rt1.name) + assert "TestRT1" == rt1.name def test_ticket_138(): @@ -467,19 +435,19 @@ def test_ticket_138(): rt_person_x.add_property(rt_person) rt_person_x.insert() - assert_equal(1, len(rt_person_x.get_properties())) + assert 1 == len(rt_person_x.get_properties()) rt_person_x.delete() - assert_equal(1, len(rt_person_x.get_properties())) + assert 1 == len(rt_person_x.get_properties()) rt_person_x.insert() - assert_equal(1, len(rt_person_x.get_properties())) + assert 1 == len(rt_person_x.get_properties()) rt_person_x.delete() - assert_equal(1, len(rt_person_x.get_properties())) + assert 1 == len(rt_person_x.get_properties()) rt_person_x.insert() - assert_equal(1, len(rt_person_x.get_properties())) + assert 1 == len(rt_person_x.get_properties()) finally: if len(db.execute_query("FIND Person_x")) > 0: @@ -490,15 +458,15 @@ def test_ticket_138(): def test_ticket_137(): # insert RecordType rt1 = db.RecordType("TestRT1").insert() - assert_true(rt1.is_valid()) + assert rt1.is_valid() crt1 = db.execute_query("FIND TestRT1", unique=True) - assert_true(crt1.is_valid()) - assert_equal(rt1.id, crt1.id) + assert crt1.is_valid() + assert rt1.id == crt1.id crt1.delete() - assert_false(crt1.is_valid()) - assert_equal(0, len(db.execute_query("FIND TestRT1"))) + assert not crt1.is_valid() + assert 0 == len(db.execute_query("FIND TestRT1")) try: rt1.insert() @@ -507,24 +475,7 @@ def test_ticket_137(): print(e) -def test_ticket_132(): - # insert RecordType - rt1 = db.RecordType("TestRT1").insert() - assert_true(rt1.is_valid()) - - # get as Property by id - crt1 = db.execute_query("FIND TestRT1", unique=True) - p1 = db.Property(id=crt1.id).retrieve() - assert_true(p1.is_valid()) - assert_true(isinstance(p1, db.Property)) - - # get as Property by name - p2 = db.Property("TestRT1").retrieve() - assert_true(p2.is_valid()) - assert_true(isinstance(p2, db.Property)) - - -@nottest +@pytest.mark.skip def test_ticket_39(): import os @@ -575,32 +526,24 @@ def test_ticket_123a(): try: p = db.Property( - name="SimpleDoubleProperty", datatype="Double").insert() - assert_true(p.is_valid()) - - assert_equal(p.id, - db.execute_query( - "FIND SimpleDoubleProperty", unique=True).id) - assert_equal(p.id, - db.execute_query("FIND SimpleDouble*", unique=True).id) - assert_equal(p.id, - db.execute_query("FIND SimpleD*Property", - unique=True).id) - assert_equal(p.id, - db.execute_query("FIND *leDoubleProperty", - unique=True).id) - assert_equal(p.id, - db.execute_query( - "FIND SimpleDoubleProperty*", unique=True).id) - assert_equal(p.id, - db.execute_query( - "FIND SimpleDouble*Property", unique=True).id) - assert_equal(p.id, - db.execute_query( - "FIND *Simpl*eDoublePr*operty", unique=True).id) - assert_equal(p.id, - db.execute_query("FIND *Simp*oubl*oper*", - unique=True).id) + name="TestDoubleProperty", datatype="Double").insert() + assert p.is_valid() + + assert p.id == db.execute_query( + "FIND TestDoubleProperty", unique=True).id + assert p.id == db.execute_query("FIND TestDouble*", unique=True).id + assert p.id == db.execute_query( + "FIND TestD*Property", unique=True).id + assert p.id == db.execute_query( + "FIND *stDoubleProperty", unique=True).id + assert p.id == db.execute_query( + "FIND TestDoubleProperty*", unique=True).id + assert p.id == db.execute_query( + "FIND TestDouble*Property", unique=True).id + assert p.id == db.execute_query( + "FIND *Te*tDoublePr*operty", unique=True).id + assert p.id == db.execute_query( + "FIND *T*oubl*oper*", unique=True).id finally: p.delete() @@ -609,34 +552,25 @@ def test_ticket_123(): try: p = db.Property( - name="SimpleDoubleProperty", datatype="Double").insert() - assert_true(p.is_valid()) - - assert_equal(p.id, - db.execute_query( - "FIND <<SimpleDoubleProperty>>", unique=True).id) - assert_equal(p.id, - db.execute_query("FIND <<SimpleDouble>>", - unique=True).id) - assert_equal(p.id, - db.execute_query( - "FIND <<SimpleD.*Property>>", unique=True).id) - assert_equal(p.id, - db.execute_query( - "FIND <<leDoubleProperty>>", unique=True).id) - assert_equal(p.id, - db.execute_query( - "FIND <<SimpleDoubleProperty>>", unique=True).id) - assert_equal(p.id, - db.execute_query( - "FIND <<SimpleDoubleProperty>>", unique=True).id) - assert_equal(p.id, - db.execute_query( - "FIND <<SimpleDoubleProperty>>", unique=True).id) - assert_equal(p.id, - db.execute_query( - "FIND <<Simp[asdfgjkle]eDoubl.*oper>>", - unique=True).id) + name="TestDoubleProperty", datatype="Double").insert() + assert p.is_valid() + + assert p.id == db.execute_query( + "FIND <<TestDoubleProperty>>", unique=True).id + assert p.id == db.execute_query( + "FIND <<TestDouble>>", unique=True).id + assert p.id == db.execute_query( + "FIND <<TestD.*Property>>", unique=True).id + assert p.id == db.execute_query( + "FIND <<stDoubleProperty>>", unique=True).id + assert p.id == db.execute_query( + "FIND <<TestDoubleProperty>>", unique=True).id + assert p.id == db.execute_query( + "FIND <<TestDoubleProperty>>", unique=True).id + assert p.id == db.execute_query( + "FIND <<TestDoubleProperty>>", unique=True).id + assert p.id == db.execute_query( + "FIND <<Te[asdfgjkle]tDoubl.*oper>>", unique=True).id finally: p.delete() @@ -645,57 +579,51 @@ def test_ticket_143(): try: p = db.Property( - name="SimpleDoubleProperty", datatype="DOUBLE").insert() - assert_true(p.is_valid()) - rt = db.RecordType(name="SimpleRecordType").add_property(p).insert() - assert_true(rt.is_valid()) + name="TestDoubleProperty", datatype="DOUBLE").insert() + assert p.is_valid() + rt = db.RecordType(name="TestRecordType").add_property(p).insert() + assert rt.is_valid() r1 = db.Record().add_parent(rt).add_property(p, value="1.0").insert() - assert_true(r1.is_valid()) + assert r1.is_valid() r2 = db.Record().add_parent(rt).add_property(p, value="2.0").insert() - assert_true(r2.is_valid()) + assert r2.is_valid() - s = db.execute_query("FIND SimpleRecordType") - assert_equal(3, len(s)) - assert_true(s.is_valid()) + s = db.execute_query("FIND TestRecordType") + assert 3 == len(s) + assert s.is_valid() - s = db.execute_query("FIND RECORD SimpleRecordType") - assert_equal(2, len(s)) - assert_true(s.is_valid()) + s = db.execute_query("FIND RECORD TestRecordType") + assert 2 == len(s) + assert s.is_valid() - s = db.execute_query("FIND SimpleRecordType WITH SimpleDoubleProperty") - assert_equal(3, len(s)) - assert_true(s.is_valid()) + s = db.execute_query("FIND TestRecordType WITH TestDoubleProperty") + assert 3 == len(s) + assert s.is_valid() s = db.execute_query( - "FIND RECORD SimpleRecordType WITH SimpleDoubleProperty") - assert_equal(2, len(s)) - assert_true(s.is_valid()) + "FIND RECORD TestRecordType WITH TestDoubleProperty") + assert 2 == len(s) + assert s.is_valid() s = db.execute_query( - "FIND SimpleRecordType WITH SimpleDoubleProperty>0") - assert_equal(2, len(s)) - assert_true(s.is_valid()) + "FIND TestRecordType WITH TestDoubleProperty>0") + assert 2 == len(s) + assert s.is_valid() s = db.execute_query( - "FIND SimpleRecordType WITH THE GREATEST SimpleDoubleProperty>0") - assert_equal(1, len(s)) - assert_true(s.is_valid()) - - assert_equal( - r2.id, - db.execute_query( - "FIND SimpleRecordType WITH THE GREATEST SimpleDoubleProperty>0", - unique=True).id) - assert_equal( - r2.id, - db.execute_query( - "FIND SimpleRecordType WITH THE GREATEST SimpleDoubleProperty", - unique=True).id) - assert_equal( - r1.id, - db.execute_query( - "FIND SimpleRecordType WITH THE SMALLEST SimpleDoubleProperty", - unique=True).id) + "FIND TestRecordType WITH THE GREATEST TestDoubleProperty>0") + assert 1 == len(s) + assert s.is_valid() + + assert r2.id == db.execute_query( + "FIND TestRecordType WITH THE GREATEST TestDoubleProperty>0", + unique=True).id + assert r2.id == db.execute_query( + "FIND TestRecordType WITH THE GREATEST TestDoubleProperty", + unique=True).id + assert r1.id == db.execute_query( + "FIND TestRecordType WITH THE SMALLEST TestDoubleProperty", + unique=True).id finally: try: r2.delete() @@ -727,16 +655,16 @@ def test_ticket_147(): # structure obs = db.Property( name="ticket147_ObstacleRadius", datatype="DOUBLE").insert() - assert_true(obs.is_valid()) + assert obs.is_valid() tstep = db.Property( name="ticket147_TimeStep", datatype="DOUBLE").insert() - assert_true(tstep.is_valid()) + assert tstep.is_valid() bmsim = db.RecordType(name="ticket147_BarkleyModelSimulation" ).add_property(tstep).insert() - assert_true(bmsim.is_valid()) + assert bmsim.is_valid() frm = db.RecordType(name="ticket147_FrequencyMeasurement" ).add_property(obs).add_property(bmsim).insert() - assert_true(frm.is_valid()) + assert frm.is_valid() # data c = db.Container() @@ -746,10 +674,10 @@ def test_ticket_147(): r4 = db.Record().add_parent(bmsim).add_property(tstep, value="0.002") r5 = db.Record().add_parent(bmsim).add_property(tstep, value="0.003") c.extend([r1, r2, r3, r4, r5]).insert() - assert_true(c.is_valid()) + assert c.is_valid() for e in c: - assert_true(e.is_valid()) + assert e.is_valid() c2 = db.Container() r21 = db.Record().add_parent(frm).add_property( @@ -768,110 +696,114 @@ def test_ticket_147(): obs, value="3.0").add_property( id=bmsim.id, value=r5) c2.extend([r21, r22, r23, r24, r25]).insert() - assert_true(c2.is_valid()) + assert c2.is_valid() ''' s = db.execute_query("FIND ticket147*") - assert_true(s.is_valid()) - assert_equal(14, len(s)) + assert s.is_valid() + assert 14 == len(s) s = db.execute_query("FIND ticket147_Bar*") - assert_true(s.is_valid()) - assert_equal(6, len(s)) + assert s.is_valid() + assert 6 == len(s) s = db.execute_query("FIND RECORD ticket147_Bar*") - assert_true(s.is_valid()) - assert_equal(5, len(s)) + assert s.is_valid() + assert 5 == len(s) s = db.execute_query("FIND ticket147_Fre*") - assert_true(s.is_valid()) - assert_equal(6, len(s)) + assert s.is_valid() + assert 6 == len(s) s = db.execute_query("FIND RECORD ticket147_Fre*") - assert_true(s.is_valid()) - assert_equal(5, len(s)) + assert s.is_valid() + assert 5 == len(s) - s = db.execute_query("FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius=2.0") - assert_true(s.is_valid()) - assert_equal(2, len(s)) + s = db.execute_query( + "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius=2.0") + assert s.is_valid() + assert 2 == len(s) - s = db.execute_query("FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius='2.0'") - assert_true(s.is_valid()) - assert_equal(2, len(s)) + s = db.execute_query( + "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius='2.0'") + assert s.is_valid() + assert 2 == len(s) - s = db.execute_query("FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_BarkleyModelSimulation") - assert_true(s.is_valid()) - assert_equal(6, len(s)) + s = db.execute_query( + "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_BarkleyModelSimulation") + assert s.is_valid() + assert 6 == len(s) - s = db.execute_query("FIND Record ticket147_Fre* WHICH HAS A PROPERTY ticket147_BarkleyModelSimulation") - assert_true(s.is_valid()) - assert_equal(5, len(s))''' + s = db.execute_query( + "FIND Record ticket147_Fre* WHICH HAS A PROPERTY ticket147_BarkleyModelSimulation") + assert s.is_valid() + assert 5 == len(s)''' s = db.execute_query( "FIND Record ticket147_Fre* WHICH HAS A PROPERTY ticket147_BarkleyModelSimulation WHICH HAS A ticket147_TimeStep" ) - assert_true(s.is_valid()) - assert_equal(5, len(s)) + assert s.is_valid() + assert 5 == len(s) s = db.execute_query( "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius='2.0' AND A PROPERTY ( ticket147_BarkleyModelSimulation )" ) - assert_true(s.is_valid()) - assert_equal(2, len(s)) + assert s.is_valid() + assert 2 == len(s) s = db.execute_query( "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius='2.0' AND A PROPERTY ( ticket147_BarkleyModelSimulation WHICH HAS A ticket147_TimeStep)" ) - assert_true(s.is_valid()) - assert_equal(2, len(s)) + assert s.is_valid() + assert 2 == len(s) s = db.execute_query( "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius='2.0' AND A PROPERTY ( ticket147_BarkleyModelSimulation WHICH HAS A ticket147_TimeStep<='0.0021')" ) - assert_true(s.is_valid()) - assert_equal(2, len(s)) - assert_equal(r22.id, s[0].id) - assert_equal(r23.id, s[1].id) + assert s.is_valid() + assert 2 == len(s) + assert r22.id == s[0].id + assert r23.id == s[1].id s = db.execute_query( "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius='2.0' AND A PROPERTY ( ticket147_BarkleyModelSimulation WHICH HAS A ticket147_TimeStep='0.002')" ) - assert_true(s.is_valid()) - assert_equal(1, len(s)) - assert_equal(r23.id, s[0].id) + assert s.is_valid() + assert 1 == len(s) + assert r23.id == s[0].id s = db.execute_query( "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius>='2.0' AND A PROPERTY ( ticket147_BarkleyModelSimulation WHICH HAS A ticket147_TimeStep>='0.002')" ) - assert_true(s.is_valid()) - assert_equal(3, len(s)) + assert s.is_valid() + assert 3 == len(s) s = db.execute_query( "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius='2.0' AND A PROPERTY ( ticket147_BarkleyModelSimulation WHICH HAS A ticket147_TimeStep='0.001')" ) - assert_true(s.is_valid()) - assert_equal(1, len(s)) - assert_equal(r22.id, s[0].id) + assert s.is_valid() + assert 1 == len(s) + assert r22.id == s[0].id s = db.execute_query( "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius='2.0' AND A PROPERTY ( ticket147_BarkleyModelSimulation WHICH HAS ticket147_TimeStep='0.001')" ) - assert_true(s.is_valid()) - assert_equal(1, len(s)) - assert_equal(r22.id, s[0].id) + assert s.is_valid() + assert 1 == len(s) + assert r22.id == s[0].id s = db.execute_query( "FIND ticket147_Fre* WHICH HAS A PROPERTY ticket147_ObstacleRadius='2.0' AND A PROPERTY ( ticket147_BarkleyModelSimulation WHICH HAS THE SMALLEST ticket147_TimeStep)" ) - assert_true(s.is_valid()) - assert_equal(1, len(s)) - assert_equal(r22.id, s[0].id) + assert s.is_valid() + assert 1 == len(s) + assert r22.id == s[0].id s = db.execute_query( "FIND ticket147_Fre* WHICH HAS THE SMALLEST ticket147_ObstacleRadius AND A PROPERTY ( ticket147_BarkleyModelSimulation WHICH HAS THE SMALLEST ticket147_TimeStep)" ) - assert_true(s.is_valid()) - assert_equal(1, len(s)) - assert_equal(r21.id, s[0].id) + assert s.is_valid() + assert 1 == len(s) + assert r21.id == s[0].id # typo: SMALLES with pytest.raises(TransactionError): @@ -910,14 +842,14 @@ def test_ticket_89(): try: nt_user = db.Property(name="NT_user", datatype="TEXT").insert() - assert_true(nt_user.is_valid()) + assert nt_user.is_valid() nt_data = db.RecordType(name="NT_testfile", id=-100) # nt_data = <File id="-100" name="NT_testfile" # path="testfiles/NT_test.txt"/> nt_data.insert() - assert_true(nt_data.is_valid()) - assert_equal(0, len(nt_data.get_properties())) + assert nt_data.is_valid() + assert 0 == len(nt_data.get_properties()) # nt_data = # <File id="318" cuid="c0c28bad-fb30-4e74-94ad-10934363e755" name="NT_testfile" path="testfiles/NT_test.txt" checksum="cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e" size="0"> # <Warning code="106" description="Entity has no description."/> @@ -925,8 +857,8 @@ def test_ticket_89(): nt_data.add_property(nt_user, value="user1") nt_data.update() - assert_true(nt_data.is_valid()) - assert_equal(1, len(nt_data.get_properties())) + assert nt_data.is_valid() + assert 1 == len(nt_data.get_properties()) # nt_data = # <File id="318" cuid="c0c28bad-fb30-4e74-94ad-10934363e755" name="NT_testfile" path="testfiles/NT_test.txt" checksum="cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e" size="0"> @@ -936,8 +868,8 @@ def test_ticket_89(): nt_data.add_property(nt_user, value="user2") nt_data.update() - assert_true(nt_data.is_valid()) - assert_equal(2, len(nt_data.get_properties())) + assert nt_data.is_valid() + assert 2 == len(nt_data.get_properties()) # nt_data = # <File id="318" cuid="c0c28bad-fb30-4e74-94ad-10934363e755" name="NT_testfile" path="testfiles/NT_test.txt" checksum="cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e" size="0"> @@ -948,8 +880,8 @@ def test_ticket_89(): # </File> nt_data.retrieve() - assert_true(nt_data.is_valid()) - assert_equal(2, len(nt_data.get_properties())) + assert nt_data.is_valid() + assert 2 == len(nt_data.get_properties()) # response: # <Entities> # <File id="318" name="NT_testfile" path="testfiles/NT_test.txt" checksum="CF83E1357EEFB8BDF1542850D66D8007D620E4050B5715DC83F4A921D36CE9CE47D0D13C5D85F2B0FF8318D2877EEC2F63B931BD47417A81A538327AF927DA3E" size="0"> @@ -982,16 +914,16 @@ def test_ticket_89(): def test_ticket_173(): try: - assert_equal(0, db.execute_query("COUNT SimpleTextProperty")) + assert 0 == db.execute_query("COUNT TestTextProperty") p = db.Property( - name="SimpleTextProperty", + name="TestTextProperty", description="simple text property (from test_tickets.py:test_ticket173)", datatype='text') p.insert() - assert_true(p.is_valid()) - assert_equal(1, db.execute_query("COUNT SimpleTextProperty")) + assert p.is_valid() + assert 1 == db.execute_query("COUNT TestTextProperty") finally: try: p.delete() @@ -1000,98 +932,71 @@ def test_ticket_173(): def test_ticket_166(): - try: - # structure - obs = db.Property( - name="ticket166_ObstacleRadius", datatype="DOUBLE").insert() - assert_true(obs.is_valid()) - tstep = db.Property( - name="ticket166_TimeStep", datatype="DOUBLE").insert() - assert_true(tstep.is_valid()) - bmsim = db.RecordType(name="ticket166_BarkleyModelSimulation" - ).add_property(tstep).insert() - assert_true(bmsim.is_valid()) - frm = db.RecordType(name="ticket166_FrequencyMeasurement" - ).add_property(obs).add_property(bmsim).insert() - assert_true(frm.is_valid()) - - # data - c = db.Container() - r1 = db.Record().add_parent(bmsim).add_property(tstep, value="0.001") - r2 = db.Record().add_parent(bmsim).add_property(tstep, value="0.001") - r3 = db.Record().add_parent(bmsim).add_property(tstep, value="0.002") - r4 = db.Record().add_parent(bmsim).add_property(tstep, value="0.002") - r5 = db.Record().add_parent(bmsim).add_property(tstep, value="0.003") - c.extend([r1, r2, r3, r4, r5]).insert() - assert_true(c.is_valid()) - - for e in c: - assert_true(e.is_valid()) - - c2 = db.Container() - r21 = db.Record().add_parent(frm).add_property( - obs, value="1.0").add_property( - id=bmsim.id, value=r1) - r22 = db.Record().add_parent(frm).add_property( - obs, value="2.0").add_property( - id=bmsim.id, value=r2) - r23 = db.Record().add_parent(frm).add_property( - obs, value="2.0").add_property( - id=bmsim.id, value=r3) - r24 = db.Record().add_parent(frm).add_property( - obs, value="3.0").add_property( - id=bmsim.id, value=r4) - r25 = db.Record().add_parent(frm).add_property( - obs, value="3.0").add_property( - id=bmsim.id, value=r5) - c2.extend([r21, r22, r23, r24, r25]).insert() - assert_true(c2.is_valid()) - - # retrieve all 10 - q = db.Query("FIND RECORD ticket166*") - assert_equal(10, len(q.execute())) - - # retrieve first 5 - q.putFlag("P", "0L5") - ret = q.execute() - assert_equal(5, len(ret)) - - for e in ret: - assert_equal(bmsim.id, e.get_parents()[0].id) - - # retrieve from 5 to 9 (4 entities) - q.putFlag("P", "5L4") - ret = q.execute() - assert_equal(4, len(ret)) - - for e in ret: - assert_equal(frm.id, e.get_parents()[0].id) - - finally: - try: - c2.delete() - except BaseException: - pass - try: - c.delete() - except BaseException: - pass - try: - frm.delete() - except BaseException: - pass - try: - bmsim.delete() - except BaseException: - pass - try: - tstep.delete() - except BaseException: - pass - try: - obs.delete() - except BaseException: - pass + # structure + obs = db.Property( + name="Testticket166_ObstacleRadius", datatype="DOUBLE").insert() + assert obs.is_valid() + tstep = db.Property( + name="Testticket166_TimeStep", datatype="DOUBLE").insert() + assert tstep.is_valid() + bmsim = db.RecordType(name="Testticket166_BarkleyModelSimulation" + ).add_property(tstep).insert() + assert bmsim.is_valid() + frm = db.RecordType(name="Testticket166_FrequencyMeasurement" + ).add_property(obs).add_property(bmsim).insert() + assert frm.is_valid() + + # data + c = db.Container() + r1 = db.Record().add_parent(bmsim).add_property(tstep, value="0.001") + r2 = db.Record().add_parent(bmsim).add_property(tstep, value="0.001") + r3 = db.Record().add_parent(bmsim).add_property(tstep, value="0.002") + r4 = db.Record().add_parent(bmsim).add_property(tstep, value="0.002") + r5 = db.Record().add_parent(bmsim).add_property(tstep, value="0.003") + c.extend([r1, r2, r3, r4, r5]).insert() + assert c.is_valid() + + for e in c: + assert e.is_valid() + + c2 = db.Container() + r21 = db.Record().add_parent(frm).add_property( + obs, value="1.0").add_property( + id=bmsim.id, value=r1) + r22 = db.Record().add_parent(frm).add_property( + obs, value="2.0").add_property( + id=bmsim.id, value=r2) + r23 = db.Record().add_parent(frm).add_property( + obs, value="2.0").add_property( + id=bmsim.id, value=r3) + r24 = db.Record().add_parent(frm).add_property( + obs, value="3.0").add_property( + id=bmsim.id, value=r4) + r25 = db.Record().add_parent(frm).add_property( + obs, value="3.0").add_property( + id=bmsim.id, value=r5) + c2.extend([r21, r22, r23, r24, r25]).insert() + assert c2.is_valid() + + # retrieve all 10 + q = db.Query("FIND RECORD Testticket166*") + assert 10 == len(q.execute()) + + # retrieve first 5 + q.putFlag("P", "0L5") + ret = q.execute() + assert 5 == len(ret) + + for e in ret: + assert bmsim.id == e.get_parents()[0].id + + # retrieve from 5 to 9 (4 entities) + q.putFlag("P", "5L4") + ret = q.execute() + assert 4 == len(ret) + + for e in ret: + assert frm.id == e.get_parents()[0].id def test_ticket_178(): @@ -1099,29 +1004,28 @@ def test_ticket_178(): # lxml umlaut xml = etree.Element("Björn") - assert_equal(xml.tag, "Björn") + assert xml.tag == "Björn" try: rt = db.RecordType(name="Person") rt.insert() - assert_true(rt.is_valid()) + assert rt.is_valid() p = db.Property(name="First name", datatype="TEXT") p.insert() - assert_true(p.is_valid()) + assert p.is_valid() r = db.Record().add_parent(parent=rt).add_property( name="First name", value="Björn") r.insert() - assert_true(r.is_valid()) + assert r.is_valid() - assert_true( - db.Record(id=r.id).retrieve().get_property("First name").value, - "Björn") + assert db.Record(id=r.id).retrieve().get_property( + "First name").value == "Björn" finally: try: @@ -1144,23 +1048,23 @@ def test_ticket_124(): rt = db.RecordType(name="Person") rt.insert() - assert_true(rt.is_valid()) + assert rt.is_valid() p = db.Property(name="First name", datatype="TEXT") p.insert() - assert_true(p.is_valid()) + assert p.is_valid() r = db.Record().add_parent(parent=rt).add_property( name="First name", value="Björn") r.insert() - assert_true(r.is_valid()) + assert r.is_valid() r2 = db.execute_query("Find Person WITH 'First name'=Björn")[0] - assert_true(r2.is_valid()) - assert_equal(r2.id, r.id) + assert r2.is_valid() + assert r2.id == r.id finally: try: @@ -1182,18 +1086,18 @@ def test_ticket_163(): try: p = db.Property(name="SomePropertyTest", datatype="TEXT") p.insert() - assert_true(p.is_valid()) + assert p.is_valid() rt = db.RecordType(name="RecordTypeTest").add_property( name="SomePropertyTest", importance="obligatory", value="blabla") rt.insert() - assert_true(rt.is_valid()) + assert rt.is_valid() rt2 = db.execute_query( "FIND Entity . SomePropertyTest=blabla", unique=True) - assert_true(rt2.is_valid()) + assert rt2.is_valid() - assert_equal(rt2.id, rt.id) + assert rt2.id == rt.id finally: try: @@ -1220,90 +1124,60 @@ def test_ticket_165(): rt_b = db.RecordType(name="TestEntity") - assert_true(isinstance(rt_a, db.Entity)) + assert isinstance(rt_a, db.Entity) r_a = db.Record().add_parent(rt_a).add_property( name="TestComment", value="blablabla") r_a.value = rt_b c = db.Container().extend([p, rt_a, rt_b, r_a]).insert() - assert_true(c.is_valid()) + assert c.is_valid() for e in c: - assert_true(e.is_valid()) - - assert_equal( - rt_b.id, - db.execute_query( - "FIND TestEntity WHICH IS REFERENCED BY TestAnnotation", - unique=True).id) - assert_equal(rt_b.id, - db.execute_query( - "FIND Entity WHICH IS REFERENCED BY TestAnnotation", - unique=True).id) - assert_equal( - rt_b.id, - db.execute_query( - "FIND RecordType WHICH IS REFERENCED BY TestAnnotation", - unique=True).id) - assert_equal( - 0, - len( - db.execute_query( - "FIND Record WHICH IS REFERENCED BY TestAnnotation"))) - - assert_equal( - rt_b.id, - db.execute_query( - "FIND TestEntity WHICH IS REFERENCED WITH TestComment", - unique=True).id) - assert_equal( - rt_b.id, - db.execute_query( - "FIND Entity WHICH IS REFERENCED BY TestAnnotation WITH TestComment", - unique=True).id) - assert_equal( - rt_b.id, - db.execute_query( - "FIND RecordType WHICH IS REFERENCED BY TestAnnotation WITH TestComment", - unique=True).id) - assert_equal(0, len(db.execute_query( - "FIND Record WHICH IS REFERENCED BY TestAnnotation WITH TestComment"))) - - assert_equal( - rt_b.id, - db.execute_query( - "FIND TestEntity WHICH IS REFERENCED BY TestAnnotation WITH TestComment", - unique=True).id) - assert_equal( - rt_b.id, - db.execute_query( - "FIND Entity WHICH IS REFERENCED BY TestAnnotation WITH TestComment", - unique=True).id) - assert_equal( - rt_b.id, - db.execute_query( - "FIND RecordType WHICH IS REFERENCED BY TestAnnotation WITH TestComment", - unique=True).id) - assert_equal(0, len(db.execute_query( - "FIND Record WHICH IS REFERENCED BY TestAnnotation WITH TestComment"))) - - assert_equal( - rt_b.id, - db.execute_query( - "FIND TestEntity WHICH IS REFERENCED BY TestAnnotation WITH TestComment='blablabla'", - unique=True).id) - assert_equal( - rt_b.id, - db.execute_query( - "FIND Entity WHICH IS REFERENCED BY TestAnnotation WITH TestComment='blablabla'", - unique=True).id) - assert_equal( - rt_b.id, - db.execute_query( - "FIND RecordType WHICH IS REFERENCED BY TestAnnotation WITH TestComment='blablabla'", - unique=True).id) - assert_equal(0, len(db.execute_query( - "FIND Record WHICH IS REFERENCED BY TestAnnotation WITH TestComment='blablabla'"))) + assert e.is_valid() + + assert rt_b.id == db.execute_query( + "FIND TestEntity WHICH IS REFERENCED BY TestAnnotation", unique=True).id + assert rt_b.id == db.execute_query( + "FIND Entity WHICH IS REFERENCED BY TestAnnotation", unique=True).id + assert rt_b.id == db.execute_query( + "FIND RecordType WHICH IS REFERENCED BY TestAnnotation", unique=True).id + assert 0 == len(db.execute_query( + "FIND Record WHICH IS REFERENCED BY TestAnnotation")) + + assert rt_b.id == db.execute_query( + "FIND TestEntity WHICH IS REFERENCED WITH TestComment", unique=True).id + assert rt_b.id == db.execute_query( + "FIND Entity WHICH IS REFERENCED BY TestAnnotation WITH TestComment", + unique=True).id + assert rt_b.id == db.execute_query( + "FIND RecordType WHICH IS REFERENCED BY TestAnnotation WITH TestComment", + unique=True).id + assert 0 == len(db.execute_query( + "FIND Record WHICH IS REFERENCED BY TestAnnotation WITH TestComment")) + + assert rt_b.id == db.execute_query( + "FIND TestEntity WHICH IS REFERENCED BY TestAnnotation WITH TestComment", + unique=True).id + assert rt_b.id == db.execute_query( + "FIND Entity WHICH IS REFERENCED BY TestAnnotation WITH TestComment", + unique=True).id + assert rt_b.id == db.execute_query( + "FIND RecordType WHICH IS REFERENCED BY TestAnnotation WITH TestComment", + unique=True).id + assert 0 == len(db.execute_query( + "FIND Record WHICH IS REFERENCED BY TestAnnotation WITH TestComment")) + + assert rt_b.id == db.execute_query( + "FIND TestEntity WHICH IS REFERENCED BY TestAnnotation WITH TestComment='blablabla'", + unique=True).id + assert rt_b.id == db.execute_query( + "FIND Entity WHICH IS REFERENCED BY TestAnnotation WITH TestComment='blablabla'", + unique=True).id + assert rt_b.id == db.execute_query( + "FIND RecordType WHICH IS REFERENCED BY TestAnnotation WITH TestComment='blablabla'", + unique=True).id + assert 0 == len(db.execute_query( + "FIND Record WHICH IS REFERENCED BY TestAnnotation WITH TestComment='blablabla'")) c.delete() @@ -1358,27 +1232,27 @@ def test_ticket_174(): c = db.Container().extend([p1, p2, rt1, rt2, rt3, rt4]).insert() - assert_true(c.is_valid()) + assert c.is_valid() - assert_true(rt1.is_valid()) + assert rt1.is_valid() for i in range(len(rt1.get_properties())): - assert_equal(i + 1.0, float(rt1.get_properties()[i].value)) + assert i + 1.0 == float(rt1.get_properties()[i].value) - assert_true(rt2.is_valid()) + assert rt2.is_valid() for i in range(len(rt2.get_properties())): - assert_equal(i + 1.0, float(rt2.get_properties()[i].value)) + assert i + 1.0 == float(rt2.get_properties()[i].value) - assert_true(rt3.is_valid()) + assert rt3.is_valid() for i in range(len(rt3.get_properties())): - assert_equal(i + 1.0, float(rt3.get_properties()[i].value)) + assert i + 1.0 == float(rt3.get_properties()[i].value) - assert_true(rt4.is_valid()) + assert rt4.is_valid() for i in range(len(rt4.get_properties())): - assert_equal(i + 1.0, float(rt4.get_properties()[i].value)) + assert i + 1.0 == float(rt4.get_properties()[i].value) # change order: rt4_i1 = rt4.get_properties()[1] @@ -1387,20 +1261,20 @@ def test_ticket_174(): rt4.get_properties()[1] = rt4_i2 rt4.update() - assert_true(rt4.is_valid()) + assert rt4.is_valid() - assert_equal(1.0, float(rt4.get_properties()[0].value)) - assert_equal(3.0, float(rt4.get_properties()[1].value)) - assert_equal(2.0, float(rt4.get_properties()[2].value)) - assert_equal(4.0, float(rt4.get_properties()[3].value)) + assert 1.0 == float(rt4.get_properties()[0].value) + assert 3.0 == float(rt4.get_properties()[1].value) + assert 2.0 == float(rt4.get_properties()[2].value) + assert 4.0 == float(rt4.get_properties()[3].value) # retrieve again: rt42 = db.execute_query("FIND Ticket174_RecordType4", unique=True) - assert_equal(1.0, float(rt42.get_properties()[0].value)) - assert_equal(3.0, float(rt42.get_properties()[1].value)) - assert_equal(2.0, float(rt42.get_properties()[2].value)) - assert_equal(4.0, float(rt42.get_properties()[3].value)) + assert 1.0 == float(rt42.get_properties()[0].value) + assert 3.0 == float(rt42.get_properties()[1].value) + assert 2.0 == float(rt42.get_properties()[2].value) + assert 4.0 == float(rt42.get_properties()[3].value) c.delete() finally: @@ -1438,25 +1312,15 @@ def test_ticket_192(): rt = db.RecordType(name="SimulationTestRecordType").insert() rec = db.Record().add_parent(rt).insert() - assert_equal( - rec.id, - db.execute_query( - "FIND Record SimulationTestRecordType WHICH WAS CREATED BY ME", - unique=True).id) - assert_equal( - rec.id, - db.execute_query( - "FIND Record SimulationTestRecordType WHICH WAS CREATED TODAY", - unique=True).id) - assert_equal( - rec.id, - db.execute_query( - "FIND Record SimulationTestRecordType WHICH WAS CREATED TODAY BY ME", - unique=True).id) - assert_equal(rec.id, - db.execute_query( - "FIND Record WHICH WAS CREATED TODAY BY ME", - unique=True).id) + assert rec.id == db.execute_query( + "FIND Record SimulationTestRecordType WHICH WAS CREATED BY ME", unique=True).id + assert rec.id == db.execute_query( + "FIND Record SimulationTestRecordType WHICH WAS CREATED TODAY", unique=True).id + assert rec.id == db.execute_query( + "FIND Record SimulationTestRecordType WHICH WAS CREATED TODAY BY ME", + unique=True).id + assert rec.id == db.execute_query( + "FIND Record WHICH WAS CREATED TODAY BY ME", unique=True).id finally: try: rec.delete() @@ -1469,129 +1333,77 @@ def test_ticket_192(): def test_ticket_200(): - try: - - # Properties: - Email = db.Property(name="EmailAddressTest", datatype="TEXT").insert() - Fname = db.Property(name="FirstNameTest", datatype="TEXT").insert() - Lname = db.Property(name="LastNameTest", datatype="TEXT").insert() - - # Record Types: - Person = db.RecordType(name="PersonTestRecordType").add_property( - Fname).add_property(Lname).insert() - - # These properties are to be inherited: - # FirstName = Property(name="FirstName", datatype="TEXT") - # LastName = Property(name="LastName", datatype="TEXT") - Person2 = db.RecordType( - name="PersonWithEmailTestRecordType") .add_parent( - parent=db.RecordType("PersonTestRecordType").retrieve(), - inheritance="all") .add_property( - property=Email).insert() - - assert_true(Person2.is_valid()) - assert_equal(Email.id, Person2.get_property("EmailAddressTest").id) - assert_equal(Fname.id, Person2.get_property("FirstNameTest").id) - assert_equal(Lname.id, Person2.get_property("LastNameTest").id) - - p2 = db.execute_query( - "FIND RecordType PersonWithEmailTestRecordType", unique=True) - assert_equal(p2.id, Person2.id) - assert_equal(Email.id, p2.get_property("EmailAddressTest").id) - assert_equal(Fname.id, p2.get_property("FirstNameTest").id) - assert_equal(Lname.id, p2.get_property("LastNameTest").id) - - finally: - try: - Person2.delete() - except BaseException: - pass - try: - Person.delete() - except BaseException: - pass - try: - Email.delete() - except BaseException: - pass - try: - Fname.delete() - except BaseException: - pass - try: - Lname.delete() - except BaseException: - pass + # Properties: + Email = db.Property(name="TestEmailAddress", datatype="TEXT").insert() + Fname = db.Property(name="TestFirstName", datatype="TEXT").insert() + Lname = db.Property(name="TestLastName", datatype="TEXT").insert() + + # Record Types: + Person = db.RecordType(name="TestPersonRecordType").add_property( + Fname).add_property(Lname).insert() + + # These properties are to be inherited: + # FirstName = Property(name="FirstName", datatype="TEXT") + # LastName = Property(name="LastName", datatype="TEXT") + Person2 = db.RecordType( + name="TestPersonWithEmailRecordType") .add_parent( + parent=db.RecordType("TestPersonRecordType").retrieve(), + inheritance="all") .add_property( + property=Email).insert() + + assert Person2.is_valid() + assert Email.id == Person2.get_property("TestEmailAddress").id + assert Fname.id == Person2.get_property("TestFirstName").id + assert Lname.id == Person2.get_property("TestLastName").id + + p2 = db.execute_query( + "FIND RecordType TestPersonWithEmailRecordType", unique=True) + assert p2.id == Person2.id + assert Email.id == p2.get_property("TestEmailAddress").id + assert Fname.id == p2.get_property("TestFirstName").id + assert Lname.id == p2.get_property("TestLastName").id def test_ticket_155(): - - try: - - # Properties: - p = db.Property( - name="SimpleTextProperty", - description="standard desc", - datatype="TEXT").insert() - assert_true(p.is_valid()) - assert_equal(p.description, "standard desc") - p2 = db.execute_query("FIND SimpleTextProperty", True) - assert_true(p2.is_valid()) - assert_equal(p2.description, "standard desc") - - rt = db.RecordType(name="SimpleRecordType").add_property( - p, description="overridden standard desc").insert() - assert_true(rt.is_valid()) - assert_equal( - rt.get_property("SimpleTextProperty").description, - "overridden standard desc") - rt2 = db.execute_query("FIND SimpleRecordType", True) - assert_true(rt2.is_valid()) - assert_equal( - rt2.get_property("SimpleTextProperty").description, - "overridden standard desc") - - rt3 = db.RecordType(name="SimpleRecordType2").add_parent( - rt, inheritance="all").insert() - assert_true(rt3.is_valid()) - assert_equal( - rt3.get_property("SimpleTextProperty").description, - "overridden standard desc") - - rt4 = db.execute_query("FIND SimpleRecordType2", True) - assert_true(rt4.is_valid()) - assert_equal( - rt4.get_property("SimpleTextProperty").description, - "overridden standard desc") - - finally: - try: - rt3.delete() - except BaseException: - pass - try: - rt.delete() - except BaseException: - pass - try: - p.delete() - except BaseException: - pass + # Properties: + p = db.Property( + name="TestTextProperty", + description="standard desc", + datatype="TEXT").insert() + assert p.is_valid() + assert p.description == "standard desc" + p2 = db.execute_query("FIND TestTextProperty", True) + assert p2.is_valid() + assert p2.description == "standard desc" + + rt = db.RecordType(name="TestRecordType").add_property( + p, description="overridden standard desc").insert() + assert rt.is_valid() + assert rt.get_property( + "TestTextProperty").description == "overridden standard desc" + rt2 = db.execute_query("FIND TestRecordType", True) + assert rt2.is_valid() + assert rt2.get_property( + "TestTextProperty").description == "overridden standard desc" + + rt3 = db.RecordType(name="TestRecordType2").add_parent( + rt, inheritance="all").insert() + assert rt3.is_valid() + assert rt3.get_property( + "TestTextProperty").description == "overridden standard desc" + + rt4 = db.execute_query("FIND TestRecordType2", True) + assert rt4.is_valid() + assert rt4.get_property( + "TestTextProperty").description == "overridden standard desc" def test_ticket_191(): - try: - rt = db.RecordType(name="RecordTypeTest") - rt.insert() - c = db.Container().retrieve( - [rt.id, rt.id], raise_exception_on_error=False, sync=False) - print(c) - assert_equal(len(c), 1) - finally: - try: - rt.delete() - except BaseException: - pass + rt = db.RecordType(name="TestRecordType") + rt.insert() + c = db.Container().retrieve( + [rt.id, rt.id], raise_exception_on_error=False, sync=False) + assert len(c) == 1 def run_test_files_tmp(): @@ -1612,35 +1424,27 @@ def test_ticket_104(): _basepath = _fullurl.path wrongbasepath = _netloc + "/wrongcontextroot/" - print(wrongbasepath) - assert_raises( - CaosDBException, db.configure_connection(url=wrongbasepath)._login) + with pytest.raises(CaosDBException): + db.configure_connection(url=wrongbasepath)._login() finally: db.configure_connection() def test_ticket_115(): - try: - p1 = db.Property(name="SimpleDoubleProperty1", datatype=db.DOUBLE) - p2 = db.Property(name="SimpleDoubleProperty2", datatype=db.DOUBLE) - rt = db.RecordType( - name="SimpleRecordType").add_property(p1).add_property(p2) - c = db.Container().extend([p1, p2, rt]) - c.insert() - assert_true(c.is_valid()) - - rtc = db.execute_query("FIND SimpleRecordType", unique=True) - assert_equal(len(rtc.get_properties()), 2) - - rtc.get_properties().remove("SimpleDoubleProperty1") - assert_equal(len(rtc.get_properties()), 1) - - rtc.update() - assert_true(c.is_valid()) - assert_equal(len(rtc.get_properties()), 1) - - finally: - try: - db.execute_query("FIND Simple*").delete() - except BaseException: - pass + p1 = db.Property(name="TestDoubleProperty1", datatype=db.DOUBLE) + p2 = db.Property(name="TestDoubleProperty2", datatype=db.DOUBLE) + rt = db.RecordType( + name="TestRecordType").add_property(p1).add_property(p2) + c = db.Container().extend([p1, p2, rt]) + c.insert() + assert c.is_valid() + + rtc = db.execute_query("FIND TestRecordType", unique=True) + assert len(rtc.get_properties()) == 2 + + rtc.get_properties().remove("TestDoubleProperty1") + assert len(rtc.get_properties()) == 1 + + rtc.update() + assert c.is_valid() + assert len(rtc.get_properties()) == 1