Class: Resttestrail::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/resttestrail/client.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeClient

Returns a new instance of Client.



16
17
18
# File 'lib/resttestrail/client.rb', line 16

def initialize
  @net_http = Net::HTTP.new(Resttestrail.config.host, Resttestrail.config.port)
end

Instance Attribute Details

#net_httpObject (readonly)

Returns the value of attribute net_http.



8
9
10
# File 'lib/resttestrail/client.rb', line 8

def net_http
  @net_http
end

Class Method Details

.close_run(run_id) ⇒ Object



64
65
66
67
68
# 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

.instanceObject



12
13
14
# File 'lib/resttestrail/client.rb', line 12

def self.instance
  @instance ||= new
end

.response(http_response) ⇒ Object

Raises:



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# 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

Instance Method Details

#add_case(section_id, title, type_id, priority_id, estimate = nil, milestone_id = nil, refs = nil) ⇒ Object



20
21
22
23
24
# 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) ⇒ Object



58
59
60
61
62
# 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) ⇒ Object



42
43
44
45
46
# 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) ⇒ Object



37
38
39
40
# 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) ⇒ Object



53
54
55
56
# 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) ⇒ Object



26
27
28
29
# 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) ⇒ Object



31
32
33
34
35
# 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) ⇒ Object



48
49
50
51
# 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