File tree Expand file tree Collapse file tree
openedx_learning/apps/authoring/publishing
tests/openedx_learning/apps/authoring/units Expand file tree Collapse file tree Original file line number Diff line number Diff line change 7171 "create_container_version" ,
7272 "create_next_container_version" ,
7373 "get_container" ,
74+ "get_container_by_key" ,
7475 "get_containers" ,
7576 "ContainerEntityListEntry" ,
7677 "get_entities_in_container" ,
@@ -838,6 +839,25 @@ def get_container(pk: int) -> Container:
838839 return Container .objects .get (pk = pk )
839840
840841
842+ def get_container_by_key (learning_package_id : int , / , key : str ) -> Container :
843+ """
844+ [ 🛑 UNSTABLE ]
845+ Get a container by its learning package and primary key.
846+
847+ Args:
848+ learning_package_id: The ID of the learning package that contains the container.
849+ key: The primary key of the container.
850+
851+ Returns:
852+ The container with the given primary key.
853+ """
854+ entity = get_publishable_entity_by_key (
855+ learning_package_id ,
856+ key = key ,
857+ )
858+ return get_container (entity .id )
859+
860+
841861def get_containers (
842862 learning_package_id : int ,
843863 container_cls : type [ContainerModel ] = Container , # type: ignore[assignment]
Original file line number Diff line number Diff line change @@ -114,6 +114,21 @@ def test_get_container(self):
114114 with self .assertNumQueries (0 ):
115115 assert result .versioning .has_unpublished_changes
116116
117+ def test_get_container_by_key (self ):
118+ """
119+ Test get_container_by_key()
120+ """
121+ unit = self .create_unit_with_components ([])
122+ with self .assertNumQueries (2 ):
123+ result = authoring_api .get_container_by_key (
124+ self .learning_package .id ,
125+ key = unit .publishable_entity .key ,
126+ )
127+ assert result == unit .container
128+ # Versioning data should be pre-loaded via select_related()
129+ with self .assertNumQueries (0 ):
130+ assert result .versioning .has_unpublished_changes
131+
117132 def test_unit_container_versioning (self ):
118133 """
119134 Test that the .versioning helper of a Unit returns a UnitVersion, and
You can’t perform that action at this time.
0 commit comments