Skip to content

Commit dc41bdb

Browse files
committed
Improve trigger tests.
1 parent 910bb46 commit dc41bdb

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

tests/test_model_sync.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5184,6 +5184,18 @@ class TestModelSyncTrigger(tb.ModelTestCase):
51845184
}
51855185
);
51865186
};
5187+
type TriggerInsertComputed {
5188+
n: int64;
5189+
trigger update_target after insert
5190+
for each do (
5191+
update TestInsert
5192+
set {
5193+
val := .val + __new__.n
5194+
}
5195+
);
5196+
5197+
test_vals := TestInsert.val;
5198+
};
51875199
type TriggerInsertWithLink {
51885200
n: int64;
51895201
test: TestInsert;
@@ -5209,6 +5221,18 @@ class TestModelSyncTrigger(tb.ModelTestCase):
52095221
}
52105222
);
52115223
};
5224+
type TriggerUpdateComputed {
5225+
n: int64;
5226+
trigger update_target after update
5227+
for each do (
5228+
update TestUpdate
5229+
set {
5230+
val := .val + __new__.n
5231+
}
5232+
);
5233+
5234+
test_vals := TestUpdate.val;
5235+
};
52125236
"""
52135237

52145238
def test_model_sync_trigger_insert_01(self):
@@ -5231,6 +5255,19 @@ def test_model_sync_trigger_insert_01(self):
52315255
self.assertEqual(test_obj.val, 6)
52325256

52335257
def test_model_sync_trigger_insert_02(self):
5258+
# Insert trigger, computed modified by trigger
5259+
from models.TestModelSyncTrigger import default
5260+
5261+
test_obj = default.TestInsert(val=0)
5262+
trigger = default.TriggerInsertComputed(n=1)
5263+
self.client.sync(test_obj, trigger)
5264+
self.assertEqual(trigger.test_vals, (1,))
5265+
5266+
# Also check that the newly inserted object refetched its
5267+
# trigger modified value
5268+
self.assertEqual(test_obj.val, 1)
5269+
5270+
def test_model_sync_trigger_insert_03(self):
52345271
# Insert trigger
52355272
# Link will cause test objs to be batched before trigger objs
52365273
from models.TestModelSyncTrigger import default
@@ -5268,3 +5305,15 @@ def test_model_sync_trigger_update_01(self):
52685305
trigger.n = 3
52695306
self.client.sync(test_obj, trigger)
52705307
self.assertEqual(test_obj.val, 6)
5308+
5309+
def test_model_sync_trigger_update_02(self):
5310+
# Update trigger, computed modified by trigger
5311+
from models.TestModelSyncTrigger import default
5312+
5313+
test_obj = default.TestUpdate(val=0)
5314+
trigger = default.TriggerUpdateComputed(n=0)
5315+
self.client.sync(test_obj, trigger)
5316+
5317+
trigger.n = 1
5318+
self.client.sync(test_obj, trigger)
5319+
self.assertEqual(trigger.test_vals, (1,))

0 commit comments

Comments
 (0)