resttestrail 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a935b075ecbece7851487f42f18b1f68e1f934fa
4
- data.tar.gz: bdc3cf12d0af8becf7a41f6d104c68ef14b2a356
3
+ metadata.gz: e859e3b2d6abaa04f73e2d465c0bf6995a347c10
4
+ data.tar.gz: 92ae098a43dbe84e2301db51bfbc17a5efc61451
5
5
  SHA512:
6
- metadata.gz: 5447d341cfe086885a218364952143f073c38d4ceb8f45f6ba75e5ad2d2b35181520218e59b44ce9e1ed5ac37a3057293c4261d8b2c5d61b1f4ed31448124b32
7
- data.tar.gz: 73ed3e513ee531957eee55da5c5d4a5d562178da802c2028b79835bfebb4ebfd66e2e78771e4d0736e8e4360e239ac64e58231ca37d790d30966c9e020685a57
6
+ metadata.gz: 12ac7a30918e0f61401948b9648bba6ce5ca007ab8f85c2009fc031bb56857e5a06606bf593d1a2a3f57079cdc199fb1298df770141b4d7c7809a681ecd770ef
7
+ data.tar.gz: c3c074edc193e5802afcc0acc5f4d55d50fbffad0dd0b11c527bf5b5c09e4c8f6435c390f04c6a6820066d02203c41180d16f91ed5ab047175cb78b8dc58e1c0
data/README.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Resttestrail
2
2
 
3
- TODO: Write a gem description
3
+ Resttestrail is a ruby gem for the TestRail API (v2) which is available with TestRail 3.0 and later.
4
+
5
+ Features include:
6
+
7
+ - Publish test results (add run, get run, delete run, add result for case)
8
+ - Add test case to a section (add case, get case, delete case)
4
9
 
5
10
  ## Installation
6
11
 
@@ -18,11 +23,11 @@ Or install it yourself as:
18
23
 
19
24
  ## Usage
20
25
 
21
- TODO: Write usage instructions here
26
+ See the integration spec for usage.
22
27
 
23
28
  ## Contributing
24
29
 
25
- 1. Fork it ( https://github.com/[my-github-username]/resttestrail/fork )
30
+ 1. Fork it ( https://github.com/sfaiqh/resttestrail/fork )
26
31
  2. Create your feature branch (`git checkout -b my-new-feature`)
27
32
  3. Commit your changes (`git commit -am 'Add some feature'`)
28
33
  4. Push to the branch (`git push origin my-new-feature`)
@@ -20,6 +20,14 @@ module Resttestrail
20
20
 
21
21
  begin
22
22
  client = Resttestrail::Client.instance
23
+
24
+ new_test_case_id = client.add_case(72621, "a new test case - delete me",
25
+ Resttestrail::Requests::Case_Type::FUNCTIONALITY,
26
+ Resttestrail::Requests::Case_Priority::MEDIUM,
27
+ estimate="1m 14s", milestone_id=nil, refs="REF1 REF2")
28
+ puts client.get_case(new_test_case_id)
29
+ client.delete_case(new_test_case_id)
30
+
23
31
  run_id = client.add_run("an amazing run #{Time.new.strftime("%H_%M_%S_%N")}", suite_id)
24
32
  puts "run id = #{run_id}"
25
33
 
@@ -17,6 +17,22 @@ module Resttestrail
17
17
  @net_http = Net::HTTP.new(Resttestrail.config.host, Resttestrail.config.port)
18
18
  end
19
19
 
20
+ def add_case(section_id, title, type_id, priority_id, estimate=nil, milestone_id=nil, refs=nil)
21
+ request = Resttestrail::Requests.add_case(section_id, title, type_id, priority_id, estimate, milestone_id, refs)
22
+ http_response = Resttestrail::Client.response(@net_http.request(request))
23
+ http_response[:body]["id"]
24
+ end
25
+
26
+ def get_case(case_id)
27
+ request = Resttestrail::Requests.get_case(case_id)
28
+ Resttestrail::Client.response(@net_http.request(request))
29
+ end
30
+
31
+ def delete_case(case_id)
32
+ request = Resttestrail::Requests.delete_case(case_id)
33
+ Resttestrail::Client.response(@net_http.request(request))
34
+ end
35
+
20
36
  def add_run(run_name, suite_id)
21
37
  request = Resttestrail::Requests.add_run(run_name, suite_id)
22
38
  http_response = Resttestrail::Client.response(@net_http.request(request))
@@ -5,6 +5,9 @@ module Resttestrail
5
5
 
6
6
  module Requests
7
7
  URI = "/index.php?/api/v2"
8
+ ADD_CASE = "/add_case/"
9
+ GET_CASE = "/get_case/"
10
+ DELETE_CASE = "/delete_case/"
8
11
  ADD_RUN = "/add_run/"
9
12
  GET_RUN = "/get_run/"
10
13
  DELETE_RUN = "/delete_run/"
@@ -15,6 +18,44 @@ module Resttestrail
15
18
  TEST_STATUS_FAILED = 5
16
19
  TEST_STATUS_BLOCKED = 2
17
20
 
21
+ module Case_Type
22
+ ACCEPTANCE = 10
23
+ COMPREHENSIVE = 9
24
+ SMOKE = 8
25
+ SCENARIO = 7
26
+ OTHER = 6
27
+ USABILITY = 5
28
+ REGRESSION = 4
29
+ PERFORMANCE = 3
30
+ FUNCTIONALITY = 2
31
+ end
32
+
33
+ module Case_Priority
34
+ CRITICAL = 7
35
+ HIGH = 4
36
+ MEDIUM = 3
37
+ LOW = 5
38
+ end
39
+
40
+ def self.add_case(section_id, title, type_id, priority_id, estimate, milestone_id, refs)
41
+ uri = "#{URI}#{ADD_CASE}#{section_id}"
42
+ request = Net::HTTP::Post.new(uri, initheader = {'Content-Type' => 'application/json', 'Authorization' => basic_auth_string})
43
+ body = {"title" => title, "type_id" => type_id, "priority_id" => priority_id}
44
+ body.merge!("estimate" => estimate) if (!estimate.nil? && estimate.is_a?(String))
45
+ body.merge!("milestone_id" => milestone_id) if (!milestone_id.nil? && milestone_id.is_a?(Integer))
46
+ body.merge!("refs" => refs) if (!refs.nil? && refs.is_a?(String))
47
+ request.body = body.to_json
48
+ request
49
+ end
50
+
51
+ def self.get_case(case_id)
52
+ Net::HTTP::Get.new("#{URI}#{GET_CASE}#{case_id}", initheader = {'Content-Type' => 'application/json', 'Authorization' => basic_auth_string})
53
+ end
54
+
55
+ def self.delete_case(case_id)
56
+ Net::HTTP::Post.new("#{URI}#{DELETE_CASE}#{case_id}", initheader = {'Content-Type' => 'application/json', 'Authorization' => basic_auth_string})
57
+ end
58
+
18
59
  def self.add_run(run_name, suite_id)
19
60
  uri = "#{URI}#{ADD_RUN}#{Resttestrail.config.project_id}"
20
61
  request = Net::HTTP::Post.new(uri, initheader = {'Content-Type' => 'application/json', 'Authorization' => basic_auth_string})
@@ -1,3 +1,3 @@
1
1
  module Resttestrail
2
- VERSION = "0.0.5"
2
+ VERSION = "0.1.0"
3
3
  end
data/resttestrail.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Syed Hussain"]
10
10
  spec.email = ["shussain@groupon.com"]
11
11
  spec.summary = %q{Gem for Testrail rest api}
12
- spec.description = %q{Write a longer description. Optional.}
12
+ spec.description = %q{Resttestrail is a ruby gem for the TestRail API (v2) which is available with TestRail 3.0 and later.}
13
13
  spec.homepage = ""
14
14
  spec.license = "MIT"
15
15
 
@@ -12,6 +12,63 @@ describe Resttestrail::Requests do
12
12
  expect(Resttestrail::Requests.basic_auth_string).to eq "Basic c29tZV91c2VybmFtZTpzb21lX3Bhc3N3b3Jk\n"
13
13
  end
14
14
 
15
+ it "makes the add test case request" do
16
+ add_test_case_request = Resttestrail::Requests.add_case("12345", "a great test",
17
+ Resttestrail::Requests::Case_Type::SMOKE,
18
+ Resttestrail::Requests::Case_Priority::MEDIUM,
19
+ "1m 10s", 4321, "REF1, REF2")
20
+ expect(add_test_case_request.method).to eq "POST"
21
+ expect(add_test_case_request.path).to eq "/index.php?/api/v2/add_case/12345"
22
+ body = JSON.parse(add_test_case_request.body)
23
+ expect(body).to be == {"title" => "a great test", "type_id" => Resttestrail::Requests::Case_Type::SMOKE,
24
+ "priority_id" => Resttestrail::Requests::Case_Priority::MEDIUM,
25
+ "estimate" => "1m 10s", "milestone_id" => 4321, "refs" => "REF1, REF2"}
26
+ end
27
+
28
+ it "makes the add test case request with nil estimate, milestone_id and refs" do
29
+ add_test_case_request = Resttestrail::Requests.add_case("12345", "a great test",
30
+ Resttestrail::Requests::Case_Type::SMOKE,
31
+ Resttestrail::Requests::Case_Priority::MEDIUM,
32
+ nil, nil, nil)
33
+ expect(add_test_case_request.method).to eq "POST"
34
+ expect(add_test_case_request.path).to eq "/index.php?/api/v2/add_case/12345"
35
+ body = JSON.parse(add_test_case_request.body)
36
+ expect(body).to be == {"title" => "a great test", "type_id" => Resttestrail::Requests::Case_Type::SMOKE,
37
+ "priority_id" => Resttestrail::Requests::Case_Priority::MEDIUM}
38
+ expect(body).not_to have_key("estimate")
39
+ expect(body).not_to have_key("milestone_id")
40
+ expect(body).not_to have_key("refs")
41
+ end
42
+
43
+ it "makes the add test case request with wrong case estimate, milestone_id and refs" do
44
+ add_test_case_request = Resttestrail::Requests.add_case("12345", "a great test",
45
+ Resttestrail::Requests::Case_Type::SMOKE,
46
+ Resttestrail::Requests::Case_Priority::MEDIUM,
47
+ 123, "4321", 456)
48
+ expect(add_test_case_request.method).to eq "POST"
49
+ expect(add_test_case_request.path).to eq "/index.php?/api/v2/add_case/12345"
50
+ body = JSON.parse(add_test_case_request.body)
51
+ expect(body).to be == {"title" => "a great test", "type_id" => Resttestrail::Requests::Case_Type::SMOKE,
52
+ "priority_id" => Resttestrail::Requests::Case_Priority::MEDIUM}
53
+ expect(body).not_to have_key("estimate")
54
+ expect(body).not_to have_key("milestone_id")
55
+ expect(body).not_to have_key("refs")
56
+ end
57
+
58
+ it "makes the get test case request" do
59
+ get_run_request = Resttestrail::Requests.get_case(1234)
60
+ expect(get_run_request.method).to eq "GET"
61
+ expect(get_run_request.path).to eq "/index.php?/api/v2/get_case/1234"
62
+ expect(get_run_request.body).to eq nil
63
+ end
64
+
65
+ it "makes the delete test case request" do
66
+ request = Resttestrail::Requests.delete_case(1234)
67
+ expect(request.method).to eq "POST"
68
+ expect(request.path).to eq "/index.php?/api/v2/delete_case/1234"
69
+ expect(request.body).to eq nil
70
+ end
71
+
15
72
  it "makes the add run request" do
16
73
  add_run_request = Resttestrail::Requests.add_run("an amazing run", 1234)
17
74
  expect(add_run_request.method).to eq "POST"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resttestrail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Syed Hussain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-10 00:00:00.000000000 Z
11
+ date: 2015-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -66,7 +66,8 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- description: Write a longer description. Optional.
69
+ description: Resttestrail is a ruby gem for the TestRail API (v2) which is available
70
+ with TestRail 3.0 and later.
70
71
  email:
71
72
  - shussain@groupon.com
72
73
  executables: []