Skip to content
Snippets Groups Projects
Verified Commit eaf34b8c authored by Timm Fitschen's avatar Timm Fitschen
Browse files

WIP

parent da70561b
Branches
Tags
No related merge requests found
...@@ -192,33 +192,71 @@ def test_sub2(): ...@@ -192,33 +192,71 @@ def test_sub2():
def test_subref(): def test_subref():
window = db.execute_query("FIND RECORD TestWindow", unique=True) door = db.execute_query("FIND RECORD TestDoor", unique=True)
s = db.execute_query("SELECT name, TestWindow.TestHeight.value, " s = db.execute_query("SELECT name, TestDoor.TestHeight.value, "
"TestWindow.TestHeight.unit FROM RECORD TestHouse") "TestDoor.TestHeight.unit FROM RECORD TestHouse")
assert len(s) == 1 assert len(s) == 1
row = s.get_property_values("name", "TestWindow")[0] row = s.get_property_values("name", "TestDoor")[0]
assert row[0] == "Buckingham Palace" assert row[0] == "Buckingham Palace"
assert row[1] == window.id assert row[1] == door.id
row = s.get_property_values("name", ("TestWindow", "TestHeight"))[0] row = s.get_property_values("name", ("TestDoor", "TestHeight"))[0]
assert row[0] == "Buckingham Palace" assert row[0] == "Buckingham Palace"
assert row[1] == 20.5 assert row[1] == 21.5
row = s.get_property_values( row = s.get_property_values(
"name", ("TestWindow", "TestHeight", "unit"))[0] "name", ("TestDoor", "TestHeight", "unit"))[0]
assert row[0] == "Buckingham Palace" assert row[0] == "Buckingham Palace"
assert row[1] == "ft" assert row[1] == "ft"
def test_subref_list():
window = db.execute_query("FIND RECORD TestWindow", unique=True)
s = db.execute_query("SELECT name, TestWindow.TestHeight.value, "
"TestWindow.TestHeight.unit FROM RECORD TestHouse")
assert len(s) == 1
row = s.get_property_values("name", "TestWindow")[0]
assert row[0] == "Buckingham Palace"
assert row[1][0].id == window.id
# current limitation of get_property_values - no lists
# row = s.get_property_values("name", ("TestWindow", "TestHeight"))[0]
# assert row[0] == "Buckingham Palace"
# assert row[1] == 20.5
assert row[1][0].get_property("TestHeight").value == 20.5
# current limitation of get_property_values - no lists
# row = s.get_property_values(
# "name", ("TestWindow", "TestHeight", "unit"))[0]
# assert row[0] == "Buckingham Palace"
# assert row[1] == "ft"
assert row[1][0].get_property("TestHeight").unit == "ft"
def test_subref_deep(): def test_subref_deep():
p = db.execute_query( p = db.execute_query(
"SELECT name, Testdate, location, location.TestWindow.Testheight FROM " "SELECT name, Testdate, location, location.TestDoor.Testheight FROM "
"RECORD TestParty", unique=True) "RECORD TestParty", unique=True)
row = p.get_property_values("name", "Testdate", row = p.get_property_values("name", "Testdate",
("location", "Testwindow", "Testheight")) ("location", "Testdoor", "Testheight"))
assert row == ("Diamond Jubilee of Elizabeth II", "2012-02-06", 20.5) assert row == ("Diamond Jubilee of Elizabeth II", "2012-02-06", 21.5)
def test_subref_deep_list():
p = db.execute_query(
"SELECT name, Testdate, location, location.TestWindow.Testheight FROM "
"RECORD TestParty", unique=True)
# current limitation of get_property_values - no lists
# row = p.get_property_values("name", "Testdate",
# ("location", "Testwindow", "Testheight"))
# assert row == ("Diamond Jubilee of Elizabeth II", "2012-02-06", 20.5)
assert p.get_property_values(("location", "TestWindow"))[
0][0].get_property("TestHeight").value == 20.5
def test_select_list(): def test_select_list():
...@@ -227,6 +265,7 @@ def test_select_list(): ...@@ -227,6 +265,7 @@ def test_select_list():
s = db.execute_query("SELECT guests FROM RECORD TestParty", unique=True) s = db.execute_query("SELECT guests FROM RECORD TestParty", unique=True)
column = s.get_property_values("guests")[0] column = s.get_property_values("guests")[0]
print(s)
assert len(column) == len(guests) assert len(column) == len(guests)
for eid in [e.id for e in guests]: for eid in [e.id for e in guests]:
...@@ -242,17 +281,35 @@ def test_select_unit(): ...@@ -242,17 +281,35 @@ def test_select_unit():
column = s.get_property_values("unit") column = s.get_property_values("unit")
assert column == ("ft",) assert column == ("ft",)
s = db.execute_query("SELECT TestWindow.TestHeight.unit FROM " s = db.execute_query("SELECT TestDoor.TestHeight.unit FROM "
"RECORD TestHouse", unique=True) "RECORD TestHouse", unique=True)
column = s.get_property_values(("TestWindow", "TestHeight", "unit")) column = s.get_property_values(("TestDoor", "TestHeight", "unit"))
assert column == ("ft",) assert column == ("ft",)
s = db.execute_query("SELECT TestHeight.unit.TestWindow FROM " s = db.execute_query("SELECT TestHeight.unit.TestDoor FROM "
"RECORD TestWindow", unique=True) "RECORD TestDoor", unique=True)
column = s.get_property_values(("TestHeight", "unit", "TestWindow")) column = s.get_property_values(("TestHeight", "unit", "TestDoor"))
assert column == (None,) assert column == (None,)
def test_select_unit_list():
s = db.execute_query("SELECT unit FROM RECORD TestHouse", unique=True)
column = s.get_property_values("unit")
assert column == (None,)
s = db.execute_query("SELECT unit FROM PROPERTY TestHeight", unique=True)
column = s.get_property_values("unit")
assert column == ("ft",)
s = db.execute_query("SELECT TestWindow.TestHeight.unit FROM "
"RECORD TestHouse", unique=True)
# current limitation of get_property_values - no lists
# column = s.get_property_values(("TestWindow", "TestHeight", "unit"))
# assert column == ("ft",)
assert s.get_property_values(("TestWindow"))[
0][0].get_property("TestHeight").unit == "ft"
def test_select_description(): def test_select_description():
s = db.execute_query("SELECT description FROM RECORD TestPerson") s = db.execute_query("SELECT description FROM RECORD TestPerson")
column = s.get_property_values("description") column = s.get_property_values("description")
...@@ -269,21 +326,50 @@ def test_select_description(): ...@@ -269,21 +326,50 @@ def test_select_description():
assert column == ("A rather large house",) assert column == ("A rather large house",)
s = db.execute_query("SELECT TestHeight.description FROM " s = db.execute_query("SELECT TestHeight.description FROM "
"RECORD TestWindow", unique=True) "RECORD TestDoor", unique=True)
column = s.get_property_values(("TestHeight", "description")) column = s.get_property_values(("TestHeight", "description"))
assert column == ('TestHeightDesc',) assert column == ('TestHeightDesc',)
s = db.execute_query("SELECT TestWindow.TestHeight.description FROM " s = db.execute_query("SELECT TestDoor.TestHeight.description FROM "
"RECORD TestHouse", unique=True) "RECORD TestHouse", unique=True)
column = s.get_property_values(("TestWindow", "TestHeight", "description")) column = s.get_property_values(("TestDoor", "TestHeight", "description"))
assert column == ('TestHeightDesc',) assert column == ('TestHeightDesc',)
s = db.execute_query("SELECT TestHeight.description.TestWindow FROM " s = db.execute_query("SELECT TestHeight.description.TestDoor FROM "
"RECORD TestWindow", unique=True) "RECORD TestDoor", unique=True)
column = s.get_property_values(("TestHeight", "description", "TestWindow")) column = s.get_property_values(("TestHeight", "description", "TestDoor"))
assert column == (None,) assert column == (None,)
def test_select_description_list():
s = db.execute_query("SELECT description FROM RECORD TestPerson")
column = s.get_property_values("description")
assert column == [(None,), (None,), (None,), (None,)]
s = db.execute_query("SELECT description"
"FROM RECORD TestHouse", unique=True)
column = s.get_property_values(("description"))
assert column == ("A rather large house",)
s = db.execute_query("SELECT location.description"
"FROM RECORD TestParty", unique=True)
column = s.get_property_values(("location", "description"))
assert column == ("A rather large house",)
s = db.execute_query("SELECT TestHeight.description FROM "
"RECORD TestWindow", unique=True)
column = s.get_property_values(("TestHeight", "description"))
assert column == ('TestHeightDesc',)
s = db.execute_query("SELECT TestWindow.TestHeight.description FROM "
"RECORD TestHouse", unique=True)
# current limitation of get_property_values - no lists
# column = s.get_property_values(("TestWindow", "TestHeight", "description"))
# assert column == ('TestHeightDesc',)
assert s.get_property_values(("TestWindow"))[0][0].get_property(
"TestHeight").description == "TestHeightDesc"
def test_select_id(): def test_select_id():
house_id = db.execute_query("FIND RECORD TestHouse", unique=True).id house_id = db.execute_query("FIND RECORD TestHouse", unique=True).id
s = db.execute_query("SELECT id FROM RECORD TestHouse", unique=True) s = db.execute_query("SELECT id FROM RECORD TestHouse", unique=True)
...@@ -301,17 +387,43 @@ def test_select_id(): ...@@ -301,17 +387,43 @@ def test_select_id():
column = s.get_property_values("id") column = s.get_property_values("id")
assert column == (height_id,) assert column == (height_id,)
s = db.execute_query("SELECT TestWindow.TestHeight.id FROM " s = db.execute_query("SELECT TestDoor.TestHeight.id FROM "
"RECORD TestHouse", unique=True) "RECORD TestHouse", unique=True)
column = s.get_property_values(("TestWindow", "TestHeight", "id")) column = s.get_property_values(("TestDoor", "TestHeight", "id"))
assert column == (height_id,) assert column == (height_id,)
s = db.execute_query("SELECT TestHeight.id.TestWindow FROM " s = db.execute_query("SELECT TestHeight.id.TestDoor FROM "
"RECORD TestWindow", unique=True) "RECORD TestDoor", unique=True)
column = s.get_property_values(("TestHeight", "id", "TestWindow")) column = s.get_property_values(("TestHeight", "id", "TestDoor"))
assert column == (None,) assert column == (None,)
def test_select_id_list():
house_id = db.execute_query("FIND RECORD TestHouse", unique=True).id
s = db.execute_query("SELECT id FROM RECORD TestHouse", unique=True)
column = s.get_property_values("id")
assert column == (house_id,)
s = db.execute_query(
"SELECT location.id FROM RECORD TestHouse",
unique=True)
column = s.get_property_values("id")
assert column == (house_id,)
height_id = db.execute_query("FIND PROPERTY TestHeight", unique=True).id
s = db.execute_query("SELECT id FROM PROPERTY TestHeight", unique=True)
column = s.get_property_values("id")
assert column == (height_id,)
s = db.execute_query("SELECT TestWindow.TestHeight.id FROM "
"RECORD TestHouse", unique=True)
# current limitation of get_property_values - no lists
# column = s.get_property_values(("TestWindow", "TestHeight", "id"))
# assert column == (height_id,)
assert s.get_property_values(("TestWindow"))[0][0].get_property(
"TestHeight").id == height_id
def test_select_name(): def test_select_name():
s = db.execute_query("SELECT name FROM RECORD TestHouse", unique=True) s = db.execute_query("SELECT name FROM RECORD TestHouse", unique=True)
column = s.get_property_values("name") column = s.get_property_values("name")
...@@ -326,17 +438,40 @@ def test_select_name(): ...@@ -326,17 +438,40 @@ def test_select_name():
column = s.get_property_values("name") column = s.get_property_values("name")
assert column == ("TestHeight",) assert column == ("TestHeight",)
s = db.execute_query("SELECT TestWindow.TestHeight.name FROM " s = db.execute_query("SELECT TestDoor.TestHeight.name FROM "
"RECORD TestHouse", unique=True) "RECORD TestHouse", unique=True)
column = s.get_property_values(("TestWindow", "TestHeight", "name")) column = s.get_property_values(("TestDoor", "TestHeight", "name"))
assert column == ("TestHeight",) assert column == ("TestHeight",)
s = db.execute_query("SELECT TestHeight.name.TestWindow FROM " s = db.execute_query("SELECT TestHeight.name.TestDoor FROM "
"RECORD TestWindow", unique=True) "RECORD TestDoor", unique=True)
column = s.get_property_values(("TestHeight", "name", "TestWindow")) column = s.get_property_values(("TestHeight", "name", "TestDoor"))
assert column == (None,) assert column == (None,)
def test_select_name_list():
s = db.execute_query("SELECT name FROM RECORD TestHouse", unique=True)
column = s.get_property_values("name")
assert column == ("Buckingham Palace",)
s = db.execute_query("SELECT location.name FROM RECORD TestHouse",
unique=True)
column = s.get_property_values("name")
assert column == ("Buckingham Palace",)
s = db.execute_query("SELECT name FROM PROPERTY TestHeight", unique=True)
column = s.get_property_values("name")
assert column == ("TestHeight",)
s = db.execute_query("SELECT TestWindow.TestHeight.name FROM "
"RECORD TestHouse", unique=True)
# current limitation of get_property_values - no lists
# column = s.get_property_values(("TestWindow", "TestHeight", "name"))
# assert column == ("TestHeight",)
assert s.get_property_values(("TestWindow"))[0][0].get_property(
"TestHeight").name == "TestHeight"
def test_select_with_subtyping_semantics(): def test_select_with_subtyping_semantics():
s = db.execute_query( s = db.execute_query(
"SELECT name FROM RECORD TestHouse WITH TestHousePart", "SELECT name FROM RECORD TestHouse WITH TestHousePart",
...@@ -345,10 +480,10 @@ def test_select_with_subtyping_semantics(): ...@@ -345,10 +480,10 @@ def test_select_with_subtyping_semantics():
assert column == ("Buckingham Palace",) assert column == ("Buckingham Palace",)
s = db.execute_query( s = db.execute_query(
"SELECT TestWindow.TestHeight FROM RECORD TestHouse WITH TestHousePart", "SELECT TestDoor.TestHeight FROM RECORD TestHouse WITH TestHousePart",
unique=True) unique=True)
column = s.get_property_values(("TestWindow", "TestHeight")) column = s.get_property_values(("TestDoor", "TestHeight"))
assert column == (20.5,) assert column == (21.5,)
s = db.execute_query( s = db.execute_query(
"SELECT TestHousePart.TestHeight FROM RECORD TestHouse WITH TestHousePart", "SELECT TestHousePart.TestHeight FROM RECORD TestHouse WITH TestHousePart",
...@@ -356,13 +491,14 @@ def test_select_with_subtyping_semantics(): ...@@ -356,13 +491,14 @@ def test_select_with_subtyping_semantics():
column = s.get_property_values(("TestHousePart", "TestHeight")) column = s.get_property_values(("TestHousePart", "TestHeight"))
# this is a current limitation of get_property_values which will only # this is a current limitation of get_property_values which will only
# return the value of the first matching property # return the value of the first matching property
assert column == (20.5,) # assert column == ([[20.5], 21.5,])
assert len(s.properties) == 2 assert len(s.properties) == 2
# both the door and the window have been returned # both the door and the window have been returned
print(s.properties[0].value)
assert (s.properties[0].name, assert (s.properties[0].name,
s.properties[1].name) == ("TestHousePart", "TestHousePart") s.properties[1].name) == ("TestHousePart", "TestHousePart")
assert (s.properties[0].value.properties[0].value, assert (s.properties[0].value[0].properties[0].value,
s.properties[1].value.properties[0].value) == (20.5, 21.5) s.properties[1].value.properties[0].value) == (20.5, 21.5)
...@@ -370,16 +506,12 @@ def test_select_with_subtyping_semantics_second_level(): ...@@ -370,16 +506,12 @@ def test_select_with_subtyping_semantics_second_level():
s = db.execute_query( s = db.execute_query(
"SELECT TestHousePart.TestHouseProperty FROM RECORD TestHouse WITH TestHousePart", "SELECT TestHousePart.TestHouseProperty FROM RECORD TestHouse WITH TestHousePart",
unique=True) unique=True)
column = s.get_property_values(("TestHousePart", "TestHouseProperty"))
# this is a current limitation of get_property_values which will only
# return the value of the first matching property
assert column == (20.5,)
assert len(s.properties) == 2 assert len(s.properties) == 2
# both the door and the window have been returned # both the door and the window have been returned
assert (s.properties[0].name, assert (s.properties[0].name,
s.properties[1].name) == ("TestHousePart", "TestHousePart") s.properties[1].name) == ("TestHousePart", "TestHousePart")
assert (s.properties[0].value.properties[0].value, assert (s.properties[0].value[0].properties[0].value,
s.properties[1].value.properties[0].value) == (20.5, 21.5) s.properties[1].value.properties[0].value) == (20.5, 21.5)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment