Skip to content

Commit 2744425

Browse files
committed
Add test cases for table.updateData
1 parent 4399052 commit 2744425

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

components/tools/OmeroPy/test/integration/tablestest/test_service.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1088,3 +1088,72 @@ def testAddData(self):
10881088

10891089
table.delete()
10901090
table.close()
1091+
1092+
def testUpdateFirstRow(self, twoColumnFiveRowTable):
1093+
1094+
updateData = omero.grid.Data()
1095+
updateData.rowNumbers = [0]
1096+
updateData.columns = [
1097+
columns.LongColumnI('lc', 'long', [6]),
1098+
columns.DoubleColumnI('dc', 'double', [2.5])
1099+
]
1100+
twoColumnFiveRowTable.update(updateData)
1101+
1102+
data = twoColumnFiveRowTable.slice([], [])
1103+
assert 2 == len(data.columns)
1104+
assert [6, 2, 3, 4, 5] == data.columns[0].values
1105+
assert [2.5, 0.5, 1.0, 1.5, 2.0] == data.columns[1].values
1106+
assert [0, 1, 2, 3, 4] == data.rowNumbers
1107+
1108+
def testUpdateMultipleRows(self, twoColumnFiveRowTable):
1109+
1110+
updateData = omero.grid.Data()
1111+
updateData.rowNumbers = [0, 3, 4]
1112+
updateData.columns = [
1113+
columns.LongColumnI('lc', 'long', [1, 7, 8]),
1114+
columns.DoubleColumnI('dc', 'double', [0, 3.0, 3.5])
1115+
]
1116+
twoColumnFiveRowTable.update(updateData)
1117+
1118+
data = twoColumnFiveRowTable.slice([], [])
1119+
assert 2 == len(data.columns)
1120+
assert [1, 2, 3, 7, 8] == data.columns[0].values
1121+
assert [0, 0.5, 1.0, 3.0, 3.5] == data.columns[1].values
1122+
assert [0, 1, 2, 3, 4] == data.rowNumbers
1123+
1124+
def testUpdateAllows(self, twoColumnFiveRowTable):
1125+
1126+
updateData = omero.grid.Data()
1127+
updateData.rowNumbers = [0, 1, 2, 3, 4]
1128+
updateData.columns = [
1129+
columns.LongColumnI('lc', 'long', [2, 3, 4, 5, 6]),
1130+
columns.DoubleColumnI('dc', 'double', [1.0, 1.5, 2.0, 2.5, 3.0])
1131+
]
1132+
twoColumnFiveRowTable.update(updateData)
1133+
1134+
data = twoColumnFiveRowTable.slice([], [])
1135+
assert 2 == len(data.columns)
1136+
assert [2, 3, 4, 5, 6] == data.columns[0].values
1137+
assert [1.0, 1.5, 2.0, 2.5, 3.0] == data.columns[1].values
1138+
assert [0, 1, 2, 3, 4] == data.rowNumbers
1139+
1140+
def testCannotUpdateOutOfRange(self, twoColumnFiveRowTable):
1141+
1142+
updateData = omero.grid.Data()
1143+
updateData.rowNumbers = [5]
1144+
updateData.columns = [
1145+
columns.LongColumnI('lc', 'long', [2]),
1146+
columns.DoubleColumnI('dc', 'double', [1.0])
1147+
]
1148+
# colNumbers must match number of columns
1149+
with pytest.raises(omero.ApiUsageException):
1150+
twoColumnFiveRowTable.update(updateData)
1151+
1152+
updateData.rowNumbers = [3, 5]
1153+
updateData.columns = [
1154+
columns.LongColumnI('lc', 'long', [1, 2]),
1155+
columns.DoubleColumnI('dc', 'double', [0.0, 1.0])
1156+
]
1157+
# colNumbers must match number of columns
1158+
with pytest.raises(omero.ApiUsageException):
1159+
twoColumnFiveRowTable.update(updateData)

0 commit comments

Comments
 (0)