Skip to content

Commit a75329b

Browse files
[bugfix] handle benchmarks with no main lang defined
1 parent dda6b56 commit a75329b

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

swig/openscap_api.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import logging # Logger for debug/info/error messages
3030
import re
3131
from pprint import pprint
32+
3233
logger = logging.getLogger("openscap")
3334

3435
from sys import version_info
@@ -479,12 +480,21 @@ def get_values_by_rule_id(self, id, check=None):
479480

480481
return items
481482

483+
482484
def __parse_value(self, value):
483-
485+
''' Used by get_tailoring_items() '''
486+
487+
# update the local lang lists
488+
def __update_lang(item, lang):
489+
if lang not in item["langs"]:
490+
item["langs"].add(lang)
491+
492+
484493
# get value properties
485494
item = {}
486495
item["id"] = value.id
487-
item["lang"] = self.model.benchmark.lang
496+
item["langs"] = {self.model.benchmark.lang} # set of available langs
497+
item["lang"] = self.model.benchmark.lang # legacy support of item["lang"]
488498
item["titles"] = {}
489499
item["descs"] = {}
490500
# Titles / Questions
@@ -493,11 +503,14 @@ def __parse_value(self, value):
493503
item["titles"][question.lang] = question.text
494504
else:
495505
for title in value.title:
506+
__update_lang(item, title.lang)
496507
item["titles"][title.lang] = title.text
508+
497509
if item["lang"] not in item["titles"]:
498510
item["titles"][item["lang"]] = ""
499511
# Descriptions
500512
for desc in value.description:
513+
__update_lang(item, desc.lang)
501514
item["descs"][desc.lang] = desc.text
502515
if item["lang"] not in item["descs"]:
503516
item["descs"][item["lang"]] = ""

0 commit comments

Comments
 (0)