Skip to content

Commit 513c5c8

Browse files
committed
test: verify removal of None or empty collections #1888
Signed-off-by: Alexander Gschrei <alexander.gschrei@fau.de>
1 parent ac698ad commit 513c5c8

2 files changed

Lines changed: 26 additions & 1 deletion

File tree

src/formattedcode/output_cyclonedx.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,9 @@ def truncate_none_or_empty_values(obj) -> dict:
487487
predicate = lambda el: not (el is None or
488488
(isinstance(el, list) or isinstance(el, dict))
489489
and len(el) == 0)
490-
obj_dict = {k: v for k, v in vars(obj).items() if predicate(v)}
490+
if hasattr(obj, '__dict__'):
491+
obj = vars(obj)
492+
obj_dict = {k: v for k, v in obj.items() if predicate(v)}
491493
return obj_dict
492494

493495

tests/formattedcode/test_output_cyclonedx.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,29 @@ def test_can_get_hashes_from_package():
9595
assert hash_entry.content is not None
9696

9797

98+
def test_get_tool_header():
99+
test_version = "0"
100+
expected = {
101+
"name": "scancode-toolkit",
102+
"vendor": "nexB Inc.",
103+
"version": test_version
104+
}
105+
actual = get_tool_header(test_version)
106+
assert actual == expected
107+
108+
109+
def test_truncate_none_or_empty_values():
110+
original = {
111+
"a": None,
112+
"b": [],
113+
"c": "c",
114+
"d": {}
115+
}
116+
expected = {"c": "c"}
117+
actual = truncate_none_or_empty_values(original)
118+
assert actual == expected
119+
120+
98121
def test_cyclonedx_json():
99122
test_dir = test_env.get_test_loc('cyclonedx/simple')
100123
result_file = test_env.get_temp_file('cyclonedx')

0 commit comments

Comments
 (0)