riot-gear 0.0.13 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,5 +1,13 @@
1
1
  # @markup markdown
2
2
 
3
+ # 0.0.15
4
+
5
+ * Allow PATCH HTTP calls [zrivest]
6
+
7
+ # 0.0.14
8
+
9
+ * Allow `denies_json` to deny a string in the reponse json
10
+
3
11
  # 0.0.13
4
12
 
5
13
  * Allow `asserts_status` to inspect named responses [jaknowlden]
@@ -34,6 +34,36 @@ module Riot
34
34
  end
35
35
  end
36
36
 
37
+ # Generates an denies that based on the value returned from passing the JSON path to the json_path
38
+ # helper. If a handler block is provided, that block will be called with the value and the response
39
+ # from the block will be used as the actual in the denies test.
40
+ #
41
+ # context "testing a hash" do
42
+ # setup do
43
+ # {"a" => {"b" => {"c" => {"d" => "foo"}}}}
44
+ # end
45
+ #
46
+ # denies_json("a.b.c.d").equals("bar")
47
+ # denies_json("a['b'].c['d']").equals("bar")
48
+ #
49
+ # denies_json("a.b") do |value|
50
+ # value["c"]
51
+ # end.equals({"d" => "bar"})
52
+ # end
53
+ #
54
+ # This is useful for testing actual JSON responses from some service that are converted to a hash by
55
+ # HTTParty.
56
+ #
57
+ # @param [String] json_string a JSON looking path
58
+ # @param [lambda] &handler an optional block for filtering the actual value
59
+ # @return [Riot::Assertion] an denies block that macros can be applied to
60
+ def denies_json(json_string, &handler)
61
+ denies("value from body as json:#{json_string}") do
62
+ value = json_path(response, json_string)
63
+ handler ? handler.call(value) : value
64
+ end
65
+ end
66
+
37
67
  end # AssertsJson
38
68
  end # Gear
39
69
  end # Riot
@@ -1,10 +1,9 @@
1
1
  require 'httparty'
2
-
3
2
  # Here we prepare a {Riot::Context} to have HTTParty bound to it. Basically, this means that you can
4
3
  # use HTTParty within a context the same way you would inside any class or you would normally use it in.
5
4
  # Anything you can do with HTTParty, you can do within a context ... and then you can test it :)
6
5
  #
7
- # Great pains are made to ensure that the HTTParty setup bound to one context does not interfere setup
6
+ # Great pains are made to ensure that the HTTParty setup bound to one context does not interfere setup
8
7
  # bound to another context.
9
8
  class Riot::Gear::RiotPartyMiddleware < ::Riot::ContextMiddleware
10
9
  register
@@ -45,7 +44,7 @@ private
45
44
  # Returns the list of methods that do something; like make a network call.
46
45
  #
47
46
  # @return [Array<Symbol>]
48
- def actionable_methods; [:get, :post, :put, :delete, :head, :options]; end
47
+ def actionable_methods; [:get, :post, :put, :patch, :delete, :head, :options]; end
49
48
 
50
49
  # Returns the list of methods that configure actionable HTTParty methods. The
51
50
  # {HTTParty.default_options} method is explicitly excluded from this list
@@ -1,5 +1,5 @@
1
1
  module Riot
2
2
  module Gear
3
- VERSION = "0.0.13"
3
+ VERSION = "0.0.15"
4
4
  end
5
5
  end
@@ -0,0 +1,58 @@
1
+ require 'teststrap'
2
+
3
+ context "Sending a PATCH request with a base uri" do
4
+
5
+ context "without params" do
6
+ hookup do
7
+ stub_request(:patch, 'http://test.local/foo')
8
+ .with(:body => {"foo" => "bar"}.to_json)
9
+ .to_return(:body => "Foo", :status => 200)
10
+ end
11
+
12
+ base_uri "http://test.local"
13
+ patch "/foo", :body => {"foo" => "bar"}.to_json
14
+
15
+ asserts("status code") { response.code }.equals(200)
16
+ asserts("response body") { response.body }.equals("Foo")
17
+ end # without params
18
+
19
+ context "with params" do
20
+ hookup do
21
+ stub_request(:patch, 'http://test.local/foo?bar=baz').
22
+ with(:body => {"goo" => "car"}.to_json).
23
+ to_return(:body => "", :status => 203)
24
+ end
25
+
26
+ context "through default_params" do
27
+ base_uri "http://test.local"
28
+ default_params({"bar" => "baz"})
29
+ patch "/foo", :body => {"goo" => "car"}.to_json
30
+
31
+ asserts("status code") { response.code }.equals(203)
32
+ end # through default_params
33
+
34
+ context "through query string" do
35
+ base_uri "http://test.local"
36
+ patch "/foo?bar=baz", :body => {"goo" => "car"}.to_json
37
+
38
+ asserts("status code") { response.code }.equals(203)
39
+ end # through query string
40
+ end # with params
41
+
42
+ context "while processing options from a block" do
43
+ hookup do
44
+ stub_request(:patch, 'http://test.local/foo/bar').
45
+ with(:body => {"s" => "things"}.to_json).
46
+ to_return(:body => "", :status => 299)
47
+ end
48
+
49
+ base_uri "http://test.local"
50
+
51
+ patch do
52
+ { :path => "/foo/bar", :body => {"s" => "things"}.to_json }
53
+ end
54
+
55
+ asserts("status code") { response.code }.equals(299)
56
+ end # while processing options from a block
57
+
58
+ end # Sending a PUT request with a base uri
@@ -0,0 +1,18 @@
1
+ require 'teststrap'
2
+
3
+ context "The denies_json macro" do
4
+
5
+ helper(:response) do
6
+ {
7
+ "a" => {"b" => "foo"},
8
+ "c" => [["foo", 1], ["bar", 2]]
9
+ }
10
+ end
11
+
12
+ denies_json("a.b").equals("FOO")
13
+
14
+ denies_json("c") do |value|
15
+ value.map { |string, number| number }
16
+ end.equals([0,1])
17
+
18
+ end # The denies_json macro
metadata CHANGED
@@ -1,41 +1,46 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riot-gear
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.15
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Justin 'Gus' Knowlden
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-05-21 00:00:00.000000000 Z
12
+ date: 2015-10-06 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: riot
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - ">="
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: 0.12.6
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - ">="
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: 0.12.6
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: httparty
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - ">="
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: 0.12.0
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - ">="
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: 0.12.0
41
46
  description: Riot + HTTParty smoke testing framework. You'd use it for integration
@@ -45,9 +50,9 @@ executables: []
45
50
  extensions: []
46
51
  extra_rdoc_files: []
47
52
  files:
48
- - ".gitignore"
49
- - ".travis.yml"
50
- - ".yardopts"
53
+ - .gitignore
54
+ - .travis.yml
55
+ - .yardopts
51
56
  - CHANGELOG
52
57
  - Gemfile
53
58
  - MIT-LICENSE
@@ -67,9 +72,11 @@ files:
67
72
  - test/actions/delete_test.rb
68
73
  - test/actions/get_test.rb
69
74
  - test/actions/options_test.rb
75
+ - test/actions/patch_test.rb
70
76
  - test/actions/post_test.rb
71
77
  - test/actions/put_test.rb
72
78
  - test/assertions/asserts_json_test.rb
79
+ - test/assertions/denies_json_test.rb
73
80
  - test/helpers/cookie_values_test.rb
74
81
  - test/helpers/json_path_test.rb
75
82
  - test/once_block_test.rb
@@ -78,34 +85,37 @@ files:
78
85
  - test/teststrap.rb
79
86
  homepage: http://github.com/thumblemonks/riot-gear
80
87
  licenses: []
81
- metadata: {}
82
88
  post_install_message:
83
89
  rdoc_options: []
84
90
  require_paths:
85
91
  - lib
86
92
  required_ruby_version: !ruby/object:Gem::Requirement
93
+ none: false
87
94
  requirements:
88
- - - ">="
95
+ - - ! '>='
89
96
  - !ruby/object:Gem::Version
90
97
  version: '0'
91
98
  required_rubygems_version: !ruby/object:Gem::Requirement
99
+ none: false
92
100
  requirements:
93
- - - ">="
101
+ - - ! '>='
94
102
  - !ruby/object:Gem::Version
95
103
  version: '0'
96
104
  requirements: []
97
105
  rubyforge_project:
98
- rubygems_version: 2.2.2
106
+ rubygems_version: 1.8.25
99
107
  signing_key:
100
- specification_version: 4
108
+ specification_version: 3
101
109
  summary: Riot + HTTParty smoke testing framework.
102
110
  test_files:
103
111
  - test/actions/delete_test.rb
104
112
  - test/actions/get_test.rb
105
113
  - test/actions/options_test.rb
114
+ - test/actions/patch_test.rb
106
115
  - test/actions/post_test.rb
107
116
  - test/actions/put_test.rb
108
117
  - test/assertions/asserts_json_test.rb
118
+ - test/assertions/denies_json_test.rb
109
119
  - test/helpers/cookie_values_test.rb
110
120
  - test/helpers/json_path_test.rb
111
121
  - test/once_block_test.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: a85e9ec0d3bde6eb410beb4ff3f8fe1f31c067e5
4
- data.tar.gz: 1b7443dcc8fdfee8b956d13795826e86651a72c6
5
- SHA512:
6
- metadata.gz: 7a0aa096744cd1c1014bcc7c228382bed0c7886d5fea91166eb2b01fa02b5bc8e6ee16c5bc2b020d7ff795bc4b00f85b6657e543bace3d2431509bb7246a1922
7
- data.tar.gz: 58c3ccd3998c398c89f83d170e92e1dcdc54fbb655f285fd61c3ccccc374513bc61d8d933bdc032f1773965bba823f041f9b6e1cba26ed807b791302a5d121e0