class Resttestrail::Client

Attributes

net_http[R]

Public Class Methods

close_run(run_id) click to toggle source
# File lib/resttestrail/client.rb, line 64
def self.close_run(run_id)
  request = Resttestrail::Requests.close_run(run_id)
  http_response = Resttestrail::Client.response(@net_http.request(request))
  http_response[:body]["id"]
end
instance() click to toggle source
# File lib/resttestrail/client.rb, line 12
def self.instance
  @instance ||= new
end
new() click to toggle source
# File lib/resttestrail/client.rb, line 16
def initialize
  @net_http = Net::HTTP.new(Resttestrail.config.host, Resttestrail.config.port)
end
response(http_response) click to toggle source
# File lib/resttestrail/client.rb, line 70
def self.response(http_response)
  response_hash = {:success => false, :code => nil, :body => nil, :message => nil}

  if http_response.nil?
    raise Resttestrail::TestrailError.new(response_hash), "Received nil response"
  end

  response_hash[:success] = (http_response.code == "200" && http_response.message == "OK")
  response_hash[:code] = http_response.code
  response_hash[:body] = http_response.body
  response_hash[:message] = http_response.message

  raise Resttestrail::TestrailError.new(response_hash), "Unsuccessful response" unless response_hash[:success]

  begin
    response_hash[:body] = (http_response.body == "") ? "" : JSON.parse(http_response.body)
    response_hash[:success] = true
  rescue StandardError => e
    response_hash[:success] = false
    raise Resttestrail::TestrailError.new(response_hash), "Error while parsing response"
  end

  response_hash
end

Public Instance Methods

add_case(section_id, title, type_id, priority_id, estimate=nil, milestone_id=nil, refs=nil) click to toggle source
# File lib/resttestrail/client.rb, line 20
def add_case(section_id, title, type_id, priority_id, estimate=nil, milestone_id=nil, refs=nil)
  request = Resttestrail::Requests.add_case(section_id, title, type_id, priority_id, estimate, milestone_id, refs)
  http_response = Resttestrail::Client.response(@net_http.request(request))
  http_response[:body]["id"]
end
add_result_for_case(run_id, test_case_id, status, elapsed_time_secs, comment=nil, defects=nil) click to toggle source
# File lib/resttestrail/client.rb, line 58
def add_result_for_case(run_id, test_case_id, status, elapsed_time_secs, comment=nil, defects=nil)
  request = Resttestrail::Requests.add_result_for_case(run_id, test_case_id, status, elapsed_time_secs, comment, defects)
  http_response = Resttestrail::Client.response(@net_http.request(request))
  http_response[:body]["id"]
end
add_run(run_name, suite_id) click to toggle source
# File lib/resttestrail/client.rb, line 42
def add_run(run_name, suite_id)
  request = Resttestrail::Requests.add_run(run_name, suite_id)
  http_response = Resttestrail::Client.response(@net_http.request(request))
  http_response[:body]["id"]
end
delete_case(case_id) click to toggle source
# File lib/resttestrail/client.rb, line 37
def delete_case(case_id)
  request = Resttestrail::Requests.delete_case(case_id)
  Resttestrail::Client.response(@net_http.request(request))
end
delete_run(run_id) click to toggle source
# File lib/resttestrail/client.rb, line 53
def delete_run(run_id)
  request = Resttestrail::Requests.delete_run(run_id)
  Resttestrail::Client.response(@net_http.request(request))
end
get_case(case_id) click to toggle source
# File lib/resttestrail/client.rb, line 26
def get_case(case_id)
  request = Resttestrail::Requests.get_case(case_id)
  Resttestrail::Client.response(@net_http.request(request))
end
get_cases(suite_id=nil, section_id=nil, filters=nil) click to toggle source
# File lib/resttestrail/client.rb, line 31
def get_cases(suite_id=nil, section_id=nil, filters=nil)
  # filters are available since TestRail 4.0
  request = Resttestrail::Requests.get_cases(suite_id, section_id, filters)
  Resttestrail::Client.response(@net_http.request(request))
end
get_run(run_id) click to toggle source
# File lib/resttestrail/client.rb, line 48
def get_run(run_id)
  request = Resttestrail::Requests.get_run(run_id)
  Resttestrail::Client.response(@net_http.request(request))
end