Skip to content
Snippets Groups Projects

Tests for caosdb-server#154

Merged Timm Fitschen requested to merge f-server-154 into dev
Files
3
+ 122
0
@@ -48,6 +48,7 @@ def setup():
def teardown():
"""Deleting entities again."""
setup_module()
pass
# ########################### Issue tests start here #####################
@@ -259,6 +260,127 @@ def test_issue_131():
assert rec.id in result_ids
def test_issue_154_no_versioning():
""" FIND MusicalInstrument WITH Manufacturer = "Antonio Stradivari" and
FIND MusicalInstrument WITH Manufacturer != "Antonio Stradivari" """
rt_man = db.RecordType("Manufacturer")
rt_inst = db.RecordType("MusicalInstrument").add_property(rt_man)
rec_man = db.Record("Antonio Stradivari").add_parent("Manufacturer")
rec_man2 = db.Record("The other guy").add_parent("Manufacturer")
rec_inst = db.Record("Violin").add_parent(
"MusicalInstrument").add_property("Manufacturer", rec_man)
rec_inst2 = db.Record("Guitar").add_parent(
"MusicalInstrument").add_property("Manufacturer", rec_man2)
rec_inst3 = db.Record("Broken Record").add_parent("MusicalInstrument")
c = db.Container().extend([rt_man, rt_inst, rec_man, rec_inst, rec_man2,
rec_inst2, rec_inst3]).insert()
assert "Violin" not in [e.name for e in db.execute_query(
"FIND RECORD MusicalInstrument WITH Manufacturer != 'Antonio Stradivari'")]
assert "Violin" not in [e.name for e in db.execute_query(
"FIND RECORD MusicalInstrument WITH NOT Manufacturer = 'Antonio Stradivari'")]
assert len(db.execute_query("FIND MusicalInstrument")) == 4
assert len(db.execute_query("FIND RECORD MusicalInstrument")) == 3
assert len(db.execute_query(
"FIND MusicalInstrument WITH Manufacturer")) == 3
assert len(db.execute_query(
"FIND RECORD MusicalInstrument WITH Manufacturer")) == 2
assert rec_inst.id == db.execute_query(
"FIND MusicalInstrument WITH Manufacturer = 'Antonio Stradivari'",
unique=True).id
assert len(db.execute_query(
"FIND MusicalInstrument WITH NOT Manufacturer = 'Antonio Stradivari'")) == 3
assert len(db.execute_query(
"FIND RECORD MusicalInstrument WITH NOT Manufacturer = 'Antonio Stradivari'")) == 2
assert len(db.execute_query(
"FIND MusicalInstrument WITH Manufacturer != 'Antonio Stradivari'")) == 1
assert len(db.execute_query(
"FIND RECORD MusicalInstrument WITH Manufacturer != 'Antonio Stradivari'")) == 1
def test_issue_154_with_versioning():
""" FIND MusicalInstrument WITH Manufacturer = "Antonio Stradivari" and
FIND MusicalInstrument WITH Manufacturer != "Antonio Stradivari" """
rt_man = db.RecordType("Manufacturer")
rt_inst = db.RecordType("MusicalInstrument").add_property(rt_man)
rec_man = db.Record("Antonio Stradivari").add_parent("Manufacturer")
rec_man2 = db.Record("The other guy").add_parent("Manufacturer")
rec_inst = db.Record("Violin").add_parent(
"MusicalInstrument").add_property("Manufacturer", rec_man)
rec_inst2 = db.Record("Guitar").add_parent(
"MusicalInstrument").add_property("Manufacturer", rec_man2)
rec_inst3 = db.Record("Broken Record").add_parent("MusicalInstrument")
db.Container().extend([rt_man, rt_inst, rec_man,
rec_inst, rec_man2, rec_inst2, rec_inst3]).insert()
assert "Violin" not in [e.name for e in db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument WITH Manufacturer != 'Antonio Stradivari'")]
assert "Violin" not in [e.name for e in db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument WITH NOT Manufacturer = 'Antonio Stradivari'")]
assert len(db.execute_query("FIND ANY VERSION OF MusicalInstrument")) == 4
assert len(db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument")) == 3
assert len(db.execute_query(
"FIND ANY VERSION OF MusicalInstrument WITH Manufacturer")) == 3
assert len(db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument WITH Manufacturer")) == 2
assert rec_inst.id == db.execute_query(
"FIND ANY VERSION OF MusicalInstrument WITH Manufacturer = 'Antonio Stradivari'",
unique=True).id
assert len(db.execute_query(
"FIND ANY VERSION OF MusicalInstrument WITH NOT Manufacturer = 'Antonio Stradivari'")) == 3
assert len(db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument WITH NOT Manufacturer = 'Antonio Stradivari'")) == 2
assert len(db.execute_query(
"FIND ANY VERSION OF MusicalInstrument WITH Manufacturer != 'Antonio Stradivari'")) == 1
assert len(db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument WITH Manufacturer != 'Antonio Stradivari'")) == 1
# now, some updates
rt_man.description = "Updated Description"
rt_inst.description = "Updated Description"
rec_man.description = "Updated Description"
rec_man2.description = "Updated Description"
rec_inst.description = "Updated Description"
rec_inst2.description = "Updated Description"
rec_inst3.description = "Updated Description"
db.Container().extend([rt_man, rt_inst, rec_man,
rec_inst, rec_man2, rec_inst2, rec_inst3]).update()
assert "Violin" not in [e.name for e in db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument WITH Manufacturer != 'Antonio Stradivari'")]
assert "Violin" not in [e.name for e in db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument WITH NOT Manufacturer = 'Antonio Stradivari'")]
assert len(db.execute_query("FIND ANY VERSION OF MusicalInstrument")) == 8
assert len(db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument")) == 6
assert len(db.execute_query(
"FIND ANY VERSION OF MusicalInstrument WITH Manufacturer")) == 6
assert len(db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument WITH Manufacturer")) == 4
assert len(db.execute_query(
"FIND ANY VERSION OF MusicalInstrument WITH Manufacturer = 'Antonio Stradivari'")) == 2
assert len(db.execute_query(
"FIND ANY VERSION OF MusicalInstrument WITH NOT Manufacturer = 'Antonio Stradivari'")) == 6
assert len(db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument WITH NOT Manufacturer = 'Antonio Stradivari'")) == 4
assert len(db.execute_query(
"FIND ANY VERSION OF MusicalInstrument WITH Manufacturer != 'Antonio Stradivari'")) == 2
assert len(db.execute_query(
"FIND ANY VERSION OF RECORD MusicalInstrument WITH Manufacturer != 'Antonio Stradivari'")) == 2
def test_issue_127():
"""https://gitlab.com/caosdb/caosdb-server/-/issues/127"""
p = db.Property("TestProp", datatype=db.LIST(db.DOUBLE)).insert()
rt = db.RecordType("TestRT").add_property("TestProp", ["NaN"]).insert()
def test_issue_170():
"""update scalar data type to list data type"""
p = db.Property(name="TestProp1", datatype=db.LIST(db.INTEGER))
Loading