From d58c6579c73981c49ed401331e70c5bce05df27a Mon Sep 17 00:00:00 2001 From: Marley Stipich Date: Mon, 28 Nov 2022 13:24:43 -0600 Subject: [PATCH] RHICOMPL-3348: Parse values for rules --- lib/openscap_parser/rule.rb | 7 ++++++- test/openscap_parser/test_result_file_test.rb | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/openscap_parser/rule.rb b/lib/openscap_parser/rule.rb index c8f45a2..c3f9b02 100644 --- a/lib/openscap_parser/rule.rb +++ b/lib/openscap_parser/rule.rb @@ -83,6 +83,10 @@ def parent_type end end + def values + parsed_xml.xpath("check/check-export").map { |r| r.at_xpath('@value-id')&.text } + end + def to_h { :id => id, @@ -95,7 +99,8 @@ def to_h :rationale => rationale, :identifier => rule_identifier.to_h, :parent_id => parent_id, - :parent_type => parent_type + :parent_type => parent_type, + :values => values } end end diff --git a/test/openscap_parser/test_result_file_test.rb b/test/openscap_parser/test_result_file_test.rb index 6863653..94579e1 100644 --- a/test/openscap_parser/test_result_file_test.rb +++ b/test/openscap_parser/test_result_file_test.rb @@ -180,6 +180,13 @@ def setup assert_match(/^Group/, @test_result_file2.benchmark.rules[1].parent_type) end + + test 'values' do + rule = @test_result_file2.benchmark.rules.select { |r| r.id == "xccdf_org.ssgproject.content_rule_accounts_password_pam_pwhistory_remember_password_auth" } + assert_equal(["xccdf_org.ssgproject.content_value_var_password_pam_remember_control_flag", "xccdf_org.ssgproject.content_value_var_password_pam_remember"], + rule[0].values) + assert_equal([], @test_result_file2.benchmark.rules[1].values) + end end context 'value_definitions' do