@@ -21,6 +21,20 @@ def publish_entity(obj: PublishableEntity) -> PublishLog:
2121 return api .publish_from_drafts (lp_id , draft_qset = api .get_all_drafts (lp_id ).filter (entity = obj ))
2222
2323
24+ def change_record (obj : PublishableEntity , old_version : int | None , new_version : int | None , direct : bool | None = None ):
25+ """Helper function to construct ChangeLogRecordData() using only version numbers instead of numbers+IDs"""
26+ old_version_id = obj .versions .get (version_num = old_version ).id if old_version is not None else None
27+ new_version_id = obj .versions .get (version_num = new_version ).id if new_version is not None else None
28+ return api .signals .ChangeLogRecordData (
29+ entity_id = obj .id ,
30+ old_version = old_version ,
31+ old_version_id = old_version_id ,
32+ new_version = new_version ,
33+ new_version_id = new_version_id ,
34+ direct = direct ,
35+ )
36+
37+
2438# LEARNING_PACKAGE_ENTITIES_CHANGED
2539
2640
@@ -55,7 +69,7 @@ def test_single_entity_changed() -> None:
5569 assert event .kwargs ["changed_by" ].user_id is None
5670 assert event .kwargs ["change_log" ].draft_change_log_id == expected_draft_change_log_id
5771 assert event .kwargs ["change_log" ].changes == [
58- api . signals . ChangeLogRecordData ( entity_id = entity . id , old_version = None , new_version = NEW_VERSION_NUM ),
72+ change_record ( entity , old_version = None , new_version = NEW_VERSION_NUM ),
5973 ]
6074 assert event .kwargs ["metadata" ].time == now_time
6175
@@ -116,11 +130,11 @@ def test_multiple_entites_changed(admin_user) -> None:
116130 assert event .kwargs ["change_log" ].draft_change_log_id == draft_change_log .id
117131 assert event .kwargs ["change_log" ].changes == [
118132 # Entity 1 jumps from no version to version 2:
119- api . signals . ChangeLogRecordData ( entity_id = entity1 . id , old_version = None , new_version = 2 ),
133+ change_record ( entity1 , old_version = None , new_version = 2 ),
120134 # Entity 2 jumps v1 -> v2:
121- api . signals . ChangeLogRecordData ( entity_id = entity2 . id , old_version = 1 , new_version = 2 ),
135+ change_record ( entity2 , old_version = 1 , new_version = 2 ),
122136 # Entity 3 gets deleted:
123- api . signals . ChangeLogRecordData ( entity_id = entity3 . id , old_version = 1 , new_version = None ),
137+ change_record ( entity3 , old_version = 1 , new_version = None ),
124138 ]
125139 assert event .kwargs ["metadata" ].time == now_time
126140
@@ -182,8 +196,8 @@ def create_entity(name: str, dependencies: list[PublishableEntity.ID] | None = N
182196 event = captured [0 ]
183197 assert event .signal is api .signals .LEARNING_PACKAGE_ENTITIES_CHANGED
184198 assert event .kwargs ["change_log" ].changes == [
185- api . signals . ChangeLogRecordData ( entity_id = child1 . id , old_version = 1 , new_version = 2 ), # directly modified
186- api . signals . ChangeLogRecordData ( entity_id = parent1 . id , old_version = 1 , new_version = 1 ), # side effect
199+ change_record ( child1 , old_version = 1 , new_version = 2 ), # directly modified
200+ change_record ( parent1 , old_version = 1 , new_version = 1 ), # side effect
187201 ]
188202
189203
@@ -224,9 +238,9 @@ def test_publish_events(admin_user) -> None:
224238 assert event .kwargs ["change_log" ].changes == [
225239 # Entity 1 is not yet published, since it has no draft version.
226240 # Entity 2 is newly published, and now at v2:
227- api . signals . ChangeLogRecordData ( entity_id = entity2 . id , old_version = None , new_version = 2 , direct = True ),
241+ change_record ( entity2 , old_version = None , new_version = 2 , direct = True ),
228242 # Entity 3 is newly published, and now at v1:
229- api . signals . ChangeLogRecordData ( entity_id = entity3 . id , old_version = None , new_version = 1 , direct = True ),
243+ change_record ( entity3 , old_version = None , new_version = 1 , direct = True ),
230244 ]
231245 assert event .kwargs ["metadata" ].time == first_publish_time
232246
@@ -253,11 +267,11 @@ def test_publish_events(admin_user) -> None:
253267 assert event .kwargs ["change_log" ].publish_log_id == second_log .id
254268 assert event .kwargs ["change_log" ].changes == [
255269 # Entity 1 is newly published at v1:
256- api . signals . ChangeLogRecordData ( entity_id = entity1 . id , old_version = None , new_version = 1 , direct = True ),
270+ change_record ( entity1 , old_version = None , new_version = 1 , direct = True ),
257271 # Entity 2 jumps v2 -> v3:
258- api . signals . ChangeLogRecordData ( entity_id = entity2 . id , old_version = 2 , new_version = 3 , direct = True ),
272+ change_record ( entity2 , old_version = 2 , new_version = 3 , direct = True ),
259273 # Entity 3 gets deleted:
260- api . signals . ChangeLogRecordData ( entity_id = entity3 . id , old_version = 1 , new_version = None , direct = True ),
274+ change_record ( entity3 , old_version = 1 , new_version = None , direct = True ),
261275 ]
262276 assert event .kwargs ["metadata" ].time == second_publish_time
263277
@@ -323,10 +337,10 @@ def create_entity(name: str, dependencies: list[PublishableEntity.ID] | None = N
323337 event = captured [0 ]
324338 assert event .signal is api .signals .LEARNING_PACKAGE_ENTITIES_PUBLISHED
325339 assert event .kwargs ["change_log" ].changes == [
326- api . signals . ChangeLogRecordData ( entity_id = grandparent1 . id , old_version = None , new_version = 1 , direct = True ),
327- api . signals . ChangeLogRecordData ( entity_id = parent1 . id , old_version = None , new_version = 1 , direct = False ),
328- api . signals . ChangeLogRecordData ( entity_id = child1 . id , old_version = None , new_version = 1 , direct = False ),
329- api . signals . ChangeLogRecordData ( entity_id = child2 . id , old_version = None , new_version = 1 , direct = False ),
340+ change_record ( grandparent1 , old_version = None , new_version = 1 , direct = True ),
341+ change_record ( parent1 , old_version = None , new_version = 1 , direct = False ),
342+ change_record ( child1 , old_version = None , new_version = 1 , direct = False ),
343+ change_record ( child2 , old_version = None , new_version = 1 , direct = False ),
330344 ]
331345
332346 # publish the rest:
@@ -342,7 +356,7 @@ def create_entity(name: str, dependencies: list[PublishableEntity.ID] | None = N
342356 event = captured [0 ]
343357 assert event .signal is api .signals .LEARNING_PACKAGE_ENTITIES_PUBLISHED
344358 assert event .kwargs ["change_log" ].changes == [
345- api . signals . ChangeLogRecordData ( entity_id = child3 . id , old_version = 1 , new_version = 2 , direct = True ),
346- api . signals . ChangeLogRecordData ( entity_id = parent2 . id , old_version = 1 , new_version = 1 , direct = False ),
347- api . signals . ChangeLogRecordData ( entity_id = grandparent2 . id , old_version = 1 , new_version = 1 , direct = False ),
359+ change_record ( child3 , old_version = 1 , new_version = 2 , direct = True ),
360+ change_record ( parent2 , old_version = 1 , new_version = 1 , direct = False ),
361+ change_record ( grandparent2 , old_version = 1 , new_version = 1 , direct = False ),
348362 ]
0 commit comments