soaspec 0.2.26 → 0.2.27

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
- SHA1:
3
- metadata.gz: 4bd3c881794d21629f39071352bc0e9c49eba252
4
- data.tar.gz: 919b6649e0b29f590f388bb78af1b9f34d6d8613
2
+ SHA256:
3
+ metadata.gz: 9cb0e0c631018645fad2ce7443c3749db7b54a139de4d8e2c681db5fd5ec1222
4
+ data.tar.gz: 0ec3d5d13bfe57e25d731f90484c32fba31dcaf1f939d306edafdce30d38bda9
5
5
  SHA512:
6
- metadata.gz: 0c95b0a30c4efbc31b369cb3735d4676ff7c5cabe1577f065b66dc9b427010d2c4b5c4b2370e7db2f67574bb907feb6d03109275c33b5a9ade6158f7ec51c2a3
7
- data.tar.gz: ef8f3c18d7e64ecc1953c73463373ca26ce22f2b8fcf7ca70a4f3d51f08606cd5cfb82f235dd578d7d30e5971f5e3c1816d0bed96654bc089408a70c3c581e9b
6
+ metadata.gz: c56d1eca2314f67639f83e6448a0b959c5407db48dc340e1fcc7a85bcfcb134d962cea3eb53c4f1be404db66da4ed6f90d9db8b7d1641d8acee498a0a8d81556
7
+ data.tar.gz: b6535e8af22f4558800cfda7ede70b6fb72f6414eaf716c4d7f6eb62ee2d4e879b41ee472fd51ca62276413fec17a4944096bb73c8dd842f681acbefeaca23ca
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ Version 0.2.27
2
+ * Enhancement
3
+ * Enable ability to perform action right after response is retrieved. This could be used to
4
+ specify condition to fail straight away for a particular response
5
+
1
6
  Version 0.2.26
2
7
  * Enhancement
3
8
  * Method `successful_status_code?` to return whether status code is 200..299
data/Dockerfile CHANGED
@@ -2,4 +2,7 @@ FROM ruby:2.6
2
2
  MAINTAINER Samuel Garratt
3
3
  LABEL url="https://gitlab.com/samuel-garratt/soaspec/blob/master/Dockerfile"
4
4
  # Simple Dockerfile with gems preinstalled
5
- RUN gem install bundler rake soaspec
5
+ RUN gem install bundler rake soaspec
6
+ ENV LANG=en_US.UTF-8
7
+ ENV LANGUAGE=en_US.UTF-8
8
+ ENV LC_ALL=en_US.UTF-8
data/lib/soaspec.rb CHANGED
@@ -24,7 +24,7 @@ require 'soaspec/exe_helpers'
24
24
  require 'soaspec/exchange_handlers/rest_handler'
25
25
  require 'soaspec/exchange_handlers/handler_accessors'
26
26
  require 'soaspec/interpreter'
27
- require 'soaspec/not_found_errors'
27
+ require 'soaspec/errors'
28
28
  require 'soaspec/wait'
29
29
 
30
30
  # Gem for handling SOAP and REST api tests
@@ -1,12 +1,20 @@
1
+
2
+ module Soaspec
3
+ # Standard Error related to Soaspec
4
+ class Error < StandardError ; end
5
+ # Error related to a response
6
+ class ResponseError < StandardError ; end
7
+ end
8
+
1
9
  # Raised to represent when there's no element at an Xpath
2
- class NoElementAtPath < StandardError
10
+ class NoElementAtPath < Soaspec::Error
3
11
  def initialize(msg = 'No element at path found')
4
12
  super
5
13
  end
6
14
  end
7
15
 
8
16
  # Did not find any element by provided key in the Hash
9
- class NoElementInHash < StandardError
17
+ class NoElementInHash < Soaspec::Error
10
18
  def initialize(msg = 'No element in Hash found')
11
19
  super
12
20
  end
@@ -3,7 +3,7 @@ require_relative 'rest_parameters'
3
3
  require_relative 'rest_parameters_defaults'
4
4
  require_relative 'rest_exchanger_factory'
5
5
  require_relative '../core_ext/hash'
6
- require_relative '../not_found_errors'
6
+ require_relative '../errors'
7
7
  require_relative 'handler_accessors'
8
8
  require_relative '../interpreter'
9
9
  require_relative 'response_extractor'
@@ -72,6 +72,11 @@ module Soaspec
72
72
  request_parameters
73
73
  end
74
74
 
75
+ # Override this with 'after_response' within class definition to perform an action
76
+ # after response is retrieved
77
+ # @param [RestClient::Response] _response Response to interpret to perform after block
78
+ def after_response(_response, _self) ; end
79
+
75
80
  # Used in together with Exchange request that passes such override parameters
76
81
  # @param [Hash] override_parameters Params to characterize REST request
77
82
  # @option override_parameters [Hash] :params Extra parameters (E.g. headers)
@@ -103,6 +108,7 @@ module Soaspec
103
108
  response = e.response
104
109
  end
105
110
  Soaspec::SpecLogger.info(["response_headers: #{response.headers}", "response_body: #{response}"])
111
+ after_response(response, self)
106
112
  response
107
113
  end
108
114
 
@@ -70,6 +70,15 @@ module Soaspec
70
70
  define_method('pascal_keys?') { set }
71
71
  end
72
72
 
73
+ # Pass block to perform after every response is retrieved
74
+ # @example Throw exception if response body has an 'error' element equal to true
75
+ # after_response do |response, handler|
76
+ # raise Soaspec::ResponseError if handler.value_from_path(response, 'error')
77
+ # end
78
+ def after_response
79
+ define_method('after_response') { |response, _self| yield response, self }
80
+ end
81
+
73
82
  private
74
83
 
75
84
  # Load credentials hash from a YAML using Soaspec.credentials_folder if set, adding '.yml' if not set
@@ -1,6 +1,6 @@
1
1
  require_relative 'exchange_handler'
2
2
  require_relative '../core_ext/hash'
3
- require_relative '../not_found_errors'
3
+ require_relative '../errors'
4
4
  require_relative 'handler_accessors'
5
5
  require_relative '../interpreter'
6
6
  require_relative 'request/soap_request'
@@ -1,5 +1,5 @@
1
1
  require_relative 'core_ext/hash'
2
- require_relative 'not_found_errors'
2
+ require_relative 'errors'
3
3
 
4
4
  # Whether response has any element with the provided value
5
5
  RSpec::Matchers.define :contain_value do |expected|
@@ -1,4 +1,4 @@
1
1
  module Soaspec
2
2
  # @return [String] Version of the gem
3
- VERSION = '0.2.26'.freeze
3
+ VERSION = '0.2.27'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soaspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.26
4
+ version: 0.2.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - SamuelGarrattIQA
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-16 00:00:00.000000000 Z
11
+ date: 2019-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -473,6 +473,7 @@ files:
473
473
  - lib/soaspec/core_ext/hash.rb
474
474
  - lib/soaspec/cucumber/generic_steps.rb
475
475
  - lib/soaspec/demo.rb
476
+ - lib/soaspec/errors.rb
476
477
  - lib/soaspec/exchange/exchange.rb
477
478
  - lib/soaspec/exchange/exchange_extractor.rb
478
479
  - lib/soaspec/exchange/exchange_properties.rb
@@ -515,7 +516,6 @@ files:
515
516
  - lib/soaspec/indifferent_hash.rb
516
517
  - lib/soaspec/interpreter.rb
517
518
  - lib/soaspec/matchers.rb
518
- - lib/soaspec/not_found_errors.rb
519
519
  - lib/soaspec/o_auth2.rb
520
520
  - lib/soaspec/soaspec_shared_examples.rb
521
521
  - lib/soaspec/spec_logger.rb
@@ -556,8 +556,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
556
556
  - !ruby/object:Gem::Version
557
557
  version: '0'
558
558
  requirements: []
559
- rubyforge_project:
560
- rubygems_version: 2.6.14
559
+ rubygems_version: 3.0.4
561
560
  signing_key:
562
561
  specification_version: 4
563
562
  summary: Helps to create tests for 'SOAP' or 'REST' apis