Skip to content

Commit acdf183

Browse files
committed
Add tests for computed affected by triggers.
1 parent 910bb46 commit acdf183

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

tests/test_model_sync.py

Lines changed: 47 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,17 @@ 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+
self.client.sync(test_obj)
5263+
5264+
trigger = default.TriggerInsertComputed(n=1)
5265+
self.client.sync(test_obj, trigger)
5266+
self.assertEqual(trigger.test_vals, (1,))
5267+
5268+
def test_model_sync_trigger_insert_03(self):
52345269
# Insert trigger
52355270
# Link will cause test objs to be batched before trigger objs
52365271
from models.TestModelSyncTrigger import default
@@ -5268,3 +5303,15 @@ def test_model_sync_trigger_update_01(self):
52685303
trigger.n = 3
52695304
self.client.sync(test_obj, trigger)
52705305
self.assertEqual(test_obj.val, 6)
5306+
5307+
def test_model_sync_trigger_update_02(self):
5308+
# Update trigger, computed modified by trigger
5309+
from models.TestModelSyncTrigger import default
5310+
5311+
test_obj = default.TestUpdate(val=0)
5312+
trigger = default.TriggerUpdateComputed(n=0)
5313+
self.client.sync(test_obj, trigger)
5314+
5315+
trigger.n = 1
5316+
self.client.sync(test_obj, trigger)
5317+
self.assertEqual(trigger.test_vals, (1,))

0 commit comments

Comments
 (0)