class Inferno::Repositories::Results
Public Instance Methods
build_entity(params)
click to toggle source
# File lib/inferno/repositories/results.rb, line 55 def build_entity(params) runnable = if params[:test_id] { test: tests_repo.find(params[:test_id]) } elsif params[:test_group_id] { test_group: groups_repo.find(params[:test_group_id]) } elsif params[:test_suite_id] { test_suite: suites_repo.find(params[:test_suite_id]) } else {} end entity_class.new(params.merge(runnable)) end
create(params)
click to toggle source
Calls superclass method
Inferno::Repositories::Repository#create
# File lib/inferno/repositories/results.rb, line 14 def create(params) messages = params.delete(:messages) || [] requests = params.delete(:requests) || [] super(params).tap do |result| result_model = self.class::Model.find(id: result.id) messages.each { |message| messages_repo.create(message.merge(result_id: result.id)) } requests.each do |request| request_id = if request.id.present? request.id else requests_repo.create(request.to_hash.merge(result_id: result.id)).id end request_model = requests_repo.class::Model.find(id: request_id) result_model.add_request(request_model) end end end
current_result_for_test_session(test_session_id, **params)
click to toggle source
Get the current result for a particular test/group @api private @example
repo.current_result_for_test_session( test_session_id, test_id: 'test_id' )
# File lib/inferno/repositories/results.rb, line 40 def current_result_for_test_session(test_session_id, **params) self.class::Model .where({ test_session_id: test_session_id }.merge(params)) .order(Sequel.desc(:updated_at)) .limit(1) .all .map! do |result_hash| build_entity( result_hash .to_json_data(json_serializer_options) .deep_symbolize_keys! ) end.first end
current_results_for_test_session(test_session_id)
click to toggle source
Get all of the current results for a test session
# File lib/inferno/repositories/results.rb, line 110 def current_results_for_test_session(test_session_id) self.class::Model .current_results_for_test_session(test_session_id) .eager(:messages) .eager(requests: proc { |requests| requests.select(*Entities::Request::SUMMARY_FIELDS) }) .all .map! do |result_hash| build_entity( result_hash .to_json_data(json_serializer_options) .deep_symbolize_keys! ) end end
current_results_for_test_session_and_runnables(test_session_id, runnables)
click to toggle source
Get the current results for a list of runnables
# File lib/inferno/repositories/results.rb, line 126 def current_results_for_test_session_and_runnables(test_session_id, runnables) self.class::Model .current_results_for_test_session_and_runnables(test_session_id, runnables) .all .map! do |result_hash| build_entity( result_hash .to_json_data(json_serializer_options) .deep_symbolize_keys! ) end end
find_waiting_result(test_run_id:)
click to toggle source
# File lib/inferno/repositories/results.rb, line 94 def find_waiting_result(test_run_id:) result_hash = Model .where(test_run_id: test_run_id, result: 'wait') .where { test_id !~ nil } .limit(1) .to_a .first &.to_hash return nil if result_hash.nil? build_entity(result_hash) end
json_serializer_options()
click to toggle source
# File lib/inferno/repositories/results.rb, line 143 def json_serializer_options { include: { messages: {}, requests: { only: Entities::Request::SUMMARY_FIELDS } } } end
pass_waiting_result(result_id, message = nil)
click to toggle source
# File lib/inferno/repositories/results.rb, line 139 def pass_waiting_result(result_id, message = nil) update(result_id, result: 'pass', result_message: message) end
result_for_test_run(test_run_id:, **params)
click to toggle source
# File lib/inferno/repositories/results.rb, line 69 def result_for_test_run(test_run_id:, **params) result_hash = self.class::Model .find({ test_run_id: test_run_id }.merge(params)) &.to_hash return nil if result_hash.nil? build_entity(result_hash) end
test_run_results_after(test_run_id:, after:)
click to toggle source
# File lib/inferno/repositories/results.rb, line 80 def test_run_results_after(test_run_id:, after:) Model .where(test_run_id: test_run_id) .where { updated_at >= after } .to_a .map! do |result_hash| build_entity( result_hash .to_json_data(json_serializer_options) .deep_symbolize_keys! ) end end