Module: ONCCertificationG10TestKit::TestProcedureRequirementsManager
- Defined in:
- lib/onc_certification_g10_test_kit/test_procedure_requirements_manager.rb
Overview
This module ensures that short test ids don’t change
Class Method Summary collapse
- .all_children(runnable) ⇒ Object
- .assign_test_procedure_requirements ⇒ Object
- .current_procedure_requirements_map ⇒ Object
- .get_short_id(runnable) ⇒ Object
- .requirements_for_short_id(short_id) ⇒ Object
- .short_id_file_path ⇒ Object
- .short_id_map ⇒ Object
- .test_procedure_definition ⇒ Object
Class Method Details
.all_children(runnable) ⇒ Object
8 9 10 11 12 |
# File 'lib/onc_certification_g10_test_kit/test_procedure_requirements_manager.rb', line 8 def all_children(runnable) runnable .children .flat_map { |child| [child] + all_children(child) } end |
.assign_test_procedure_requirements ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/onc_certification_g10_test_kit/test_procedure_requirements_manager.rb', line 22 def assign_test_procedure_requirements all_children(G10CertificationSuite).each do |runnable| short_id = get_short_id(runnable) test_procedure_requirements = current_procedure_requirements_map[short_id] if test_procedure_requirements.present? current_requirements = runnable.verifies_requirements new_requirements = test_procedure_requirements.map do |req| "170.315(g)(10)-test-procedure@#{req}" end updated_requirements = current_requirements + new_requirements runnable.verifies_requirements(*updated_requirements) end rescue KeyError Inferno::Application['logger'].warn( "No test procedure map defined for id #{short_id} (from runnable #{runnable.id})" ) end rescue Errno::ENOENT Inferno::Application['logger'].warn('No short id map found') end |
.current_procedure_requirements_map ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/onc_certification_g10_test_kit/test_procedure_requirements_manager.rb', line 49 def current_procedure_requirements_map @current_procedure_requirements_map ||= all_children(G10CertificationSuite).each_with_object({}) do |runnable, hash| short_id = get_short_id(runnable) test_procedure_requirement_list = requirements_for_short_id(short_id) next unless test_procedure_requirement_list.present? hash[short_id] = test_procedure_requirement_list end end |
.get_short_id(runnable) ⇒ Object
43 44 45 46 47 |
# File 'lib/onc_certification_g10_test_kit/test_procedure_requirements_manager.rb', line 43 def get_short_id(runnable) short_id_map.fetch(runnable.id) rescue KeyError Inferno::Application['logger'].warn("No short id defined for #{runnable.id}") end |
.requirements_for_short_id(short_id) ⇒ Object
60 61 62 63 64 65 66 67 68 |
# File 'lib/onc_certification_g10_test_kit/test_procedure_requirements_manager.rb', line 60 def requirements_for_short_id(short_id) test_procedure_definition.sections.each_with_object([]) do |section, requirement_list| section.steps.each do |step| next unless step.inferno_tests.include?(short_id) requirement_list << step.id end end end |
.short_id_file_path ⇒ Object
14 15 16 |
# File 'lib/onc_certification_g10_test_kit/test_procedure_requirements_manager.rb', line 14 def short_id_file_path File.join(__dir__, 'g10_certification_suite_short_id_map.yml') end |
.short_id_map ⇒ Object
18 19 20 |
# File 'lib/onc_certification_g10_test_kit/test_procedure_requirements_manager.rb', line 18 def short_id_map @short_id_map ||= YAML.load_file(short_id_file_path) end |
.test_procedure_definition ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/onc_certification_g10_test_kit/test_procedure_requirements_manager.rb', line 70 def test_procedure_definition @test_procedure_definition ||= Tasks::TestProcedure.new( YAML.load_file( File.join( __dir__, 'onc_program_procedure.yml' ) ).deep_symbolize_keys ) end |