diff --git a/src/linkahead/common/models.py b/src/linkahead/common/models.py index a7030d9523bab9ea26570acf45c3f067249f09e6..9644485a21ee26d393644497171062708bcb858d 100644 --- a/src/linkahead/common/models.py +++ b/src/linkahead/common/models.py @@ -3003,7 +3003,11 @@ class Container(list): def __getitem__(self, key): # Construct new Container from list slice - return Container().extend(super().__getitem__(key)) + self_as_list_slice = super().__getitem__(key) + if isinstance(self_as_list_slice, list): + return Container().extend(self_as_list_slice) + else: + return self_as_list_slice @staticmethod def from_xml(xml_str): diff --git a/unittests/test_container.py b/unittests/test_container.py index 026f642461e221e0c2da558a661e8d4affc81a19..cfada7cc2d2fd21e8bbc4fb06c6e32e9346d87f8 100644 --- a/unittests/test_container.py +++ b/unittests/test_container.py @@ -187,4 +187,8 @@ def test_container_slicing(): container_slice = cont[:2] assert isinstance(container_slice, db.common.models.Container), \ f"Container slice should be Container, was {type(container_slice)}" - # cont[:2].retrieve() + for element in container_slice: + assert isinstance(element, db.Record), \ + f"element in slice was not Record, but {type(element)}" + assert len(container_slice) == 2 + assert cont[-1].name == "TestRec5"