Fix: get_applicable return empty generator (#1390)

`PsetQto.get_applicable` was returning an empty generator when called
multiple times. Combination on lru_cache and generator seems to lead to
this unwanted behavior.
It now returns a list to keep gains of lru_cache performance.
This commit is contained in:
Cyril Waechter
2021-03-16 23:23:06 +01:00
committed by GitHub
parent 071505038d
commit efce28c053
2 changed files with 22 additions and 2 deletions
@@ -0,0 +1,17 @@
"""Run this test from src/ifcopenshell-python folder: pytest --durations=0 ifcopenshell/util/test_pset.py"""
from ifcopenshell.util import pset
from ifcopenshell import util
class TestPsetQto:
@classmethod
def setup_class(cls):
cls.pset_qto = util.pset.PsetQto("IFC4")
def test_get_applicables(self):
for i in range(1000):
assert len(self.pset_qto.get_applicable("IfcMaterial")) == 14
def test_get_applicables_names(self):
for i in range(1000):
assert len(self.pset_qto.get_applicable_names("IfcMaterial")) == 14