tshield 0.12.0.0 → 0.13.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +10 -0
- data/lib/tshield/configuration.rb +5 -0
- data/lib/tshield/controllers/requests.rb +9 -1
- data/lib/tshield/request_matching.rb +1 -0
- data/lib/tshield/version.rb +1 -1
- metadata +68 -67
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: caa9310473bc1479ad6bc7db7ae67938b269bbd7
|
4
|
+
data.tar.gz: 34de8d7084f0eecb054f2b07b9950ef0dffbf32b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41afa4ac6a4471ea700beaa32ddf4c664f7eeb4f7a61639853b883a5ee0b6dd8f4262f9e14198a186e89cece5bb158669587a00f80dc7bef6bb460a5f6f7c5a3
|
7
|
+
data.tar.gz: ef52b07f2bfc68d8ff0561c0676350493da7b7f16b26f1e61687f13a78929e4ec9659859a396dcb6bb51d5eab8c041cc15cbb2ca92fcecc8a5ed768101a2a7bd
|
data/README.md
CHANGED
@@ -104,6 +104,10 @@ Optional request attributes:
|
|
104
104
|
this stub will be returned if all headers are in request.
|
105
105
|
* **query**: works like headers but use query params.
|
106
106
|
|
107
|
+
Optional response attributes:
|
108
|
+
|
109
|
+
* **delay**: integer that represents time in seconds that the response will be delayed to return
|
110
|
+
|
107
111
|
**Important**: If VCR config conflicts with Matching config Matching will be
|
108
112
|
used. Matching config have priority.
|
109
113
|
|
@@ -166,6 +170,7 @@ To register stub into a session create an object with following attributes:
|
|
166
170
|
"method": "GET",
|
167
171
|
"path": "/matching/example",
|
168
172
|
"response": {
|
173
|
+
"delay": 5,
|
169
174
|
"body": "matching-example-response-in-session",
|
170
175
|
"headers": {},
|
171
176
|
"status": 200
|
@@ -206,6 +211,8 @@ domains:
|
|
206
211
|
- transfer-encoding
|
207
212
|
paths:
|
208
213
|
- /secure
|
214
|
+
delay:
|
215
|
+
'/secure': 10
|
209
216
|
|
210
217
|
'http://localhost:9092':
|
211
218
|
name: 'my-other-service'
|
@@ -216,6 +223,8 @@ domains:
|
|
216
223
|
- transfer-encoding
|
217
224
|
paths:
|
218
225
|
- /users
|
226
|
+
delay:
|
227
|
+
'/users': 5
|
219
228
|
```
|
220
229
|
**request**
|
221
230
|
* **timeout**: wait time for real service in seconds
|
@@ -231,6 +240,7 @@ domains:
|
|
231
240
|
* **filters**: Implementation of before or after filters used in domain requests
|
232
241
|
* **excluded_headers**: <<some_description>>
|
233
242
|
* **paths**: Paths list of all services that will be called. Used to filter what domain will "receive the request"
|
243
|
+
* **delay**: List of times in seconds that the response will be delayed to return for an specific path defined above
|
234
244
|
|
235
245
|
## Manage Sessions
|
236
246
|
|
@@ -74,7 +74,7 @@ module TShield
|
|
74
74
|
configuration.get_excluded_headers(domain(path)).include?(key)
|
75
75
|
end
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
logger.info(
|
79
79
|
"original=#{api_response.original} method=#{method} path=#{path} "\
|
80
80
|
"content-type=#{request_content_type} "\
|
@@ -82,6 +82,7 @@ module TShield
|
|
82
82
|
)
|
83
83
|
TShield::Controllers::Helpers::SessionHelpers.update_session_call(request, callid, method)
|
84
84
|
|
85
|
+
delay(path)
|
85
86
|
status api_response.status
|
86
87
|
headers api_response.headers
|
87
88
|
body api_response.body
|
@@ -100,6 +101,13 @@ module TShield
|
|
100
101
|
def domain(path)
|
101
102
|
@domain ||= configuration.get_domain_for(path)
|
102
103
|
end
|
104
|
+
|
105
|
+
def delay(path)
|
106
|
+
delay_in_seconds = configuration.get_delay(domain(path), path) || 0
|
107
|
+
logger.info("Response with delay of #{delay_in_seconds} seconds")
|
108
|
+
sleep delay_in_seconds
|
109
|
+
end
|
110
|
+
|
103
111
|
end
|
104
112
|
end
|
105
113
|
end
|
data/lib/tshield/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tshield
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Diego Rubin
|
@@ -9,86 +9,86 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-11-
|
12
|
+
date: 2020-11-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: grpc
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - ">="
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: 1.28.0
|
21
18
|
- - "~>"
|
22
19
|
- !ruby/object:Gem::Version
|
23
20
|
version: '1.28'
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.28.0
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
|
-
- - ">="
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: 1.28.0
|
31
28
|
- - "~>"
|
32
29
|
- !ruby/object:Gem::Version
|
33
30
|
version: '1.28'
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.28.0
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: grpc-tools
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 1.28.0
|
41
38
|
- - "~>"
|
42
39
|
- !ruby/object:Gem::Version
|
43
40
|
version: '1.28'
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.28.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
46
|
version_requirements: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
|
-
- - ">="
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: 1.28.0
|
51
48
|
- - "~>"
|
52
49
|
- !ruby/object:Gem::Version
|
53
50
|
version: '1.28'
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.28.0
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: httparty
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 0.14.0
|
61
58
|
- - "~>"
|
62
59
|
- !ruby/object:Gem::Version
|
63
60
|
version: '0.14'
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 0.14.0
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- - ">="
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: 0.14.0
|
71
68
|
- - "~>"
|
72
69
|
- !ruby/object:Gem::Version
|
73
70
|
version: '0.14'
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 0.14.0
|
74
74
|
- !ruby/object:Gem::Dependency
|
75
75
|
name: json
|
76
76
|
requirement: !ruby/object:Gem::Requirement
|
77
77
|
requirements:
|
78
|
-
- - "
|
78
|
+
- - "~>"
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '2.0'
|
81
|
-
- - "
|
81
|
+
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '2.0'
|
84
84
|
type: :runtime
|
85
85
|
prerelease: false
|
86
86
|
version_requirements: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - "
|
88
|
+
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '2.0'
|
91
|
-
- - "
|
91
|
+
- - ">="
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '2.0'
|
94
94
|
- !ruby/object:Gem::Dependency
|
@@ -115,42 +115,42 @@ dependencies:
|
|
115
115
|
name: sinatra
|
116
116
|
requirement: !ruby/object:Gem::Requirement
|
117
117
|
requirements:
|
118
|
-
- - ">="
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
version: 2.1.0
|
121
118
|
- - "~>"
|
122
119
|
- !ruby/object:Gem::Version
|
123
120
|
version: '2.1'
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 2.1.0
|
124
124
|
type: :runtime
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
|
-
- - ">="
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: 2.1.0
|
131
128
|
- - "~>"
|
132
129
|
- !ruby/object:Gem::Version
|
133
130
|
version: '2.1'
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 2.1.0
|
134
134
|
- !ruby/object:Gem::Dependency
|
135
135
|
name: sinatra-cross_origin
|
136
136
|
requirement: !ruby/object:Gem::Requirement
|
137
137
|
requirements:
|
138
|
-
- - ">="
|
139
|
-
- !ruby/object:Gem::Version
|
140
|
-
version: '0.4'
|
141
138
|
- - "~>"
|
142
139
|
- !ruby/object:Gem::Version
|
143
140
|
version: 0.4.0
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '0.4'
|
144
144
|
type: :runtime
|
145
145
|
prerelease: false
|
146
146
|
version_requirements: !ruby/object:Gem::Requirement
|
147
147
|
requirements:
|
148
|
-
- - ">="
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
version: '0.4'
|
151
148
|
- - "~>"
|
152
149
|
- !ruby/object:Gem::Version
|
153
150
|
version: 0.4.0
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0.4'
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
155
|
name: coveralls
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
@@ -255,80 +255,80 @@ dependencies:
|
|
255
255
|
name: rdoc
|
256
256
|
requirement: !ruby/object:Gem::Requirement
|
257
257
|
requirements:
|
258
|
-
- - "
|
258
|
+
- - "~>"
|
259
259
|
- !ruby/object:Gem::Version
|
260
260
|
version: '6.0'
|
261
|
-
- - "
|
261
|
+
- - ">="
|
262
262
|
- !ruby/object:Gem::Version
|
263
263
|
version: '6.0'
|
264
264
|
type: :development
|
265
265
|
prerelease: false
|
266
266
|
version_requirements: !ruby/object:Gem::Requirement
|
267
267
|
requirements:
|
268
|
-
- - "
|
268
|
+
- - "~>"
|
269
269
|
- !ruby/object:Gem::Version
|
270
270
|
version: '6.0'
|
271
|
-
- - "
|
271
|
+
- - ">="
|
272
272
|
- !ruby/object:Gem::Version
|
273
273
|
version: '6.0'
|
274
274
|
- !ruby/object:Gem::Dependency
|
275
275
|
name: reek
|
276
276
|
requirement: !ruby/object:Gem::Requirement
|
277
277
|
requirements:
|
278
|
-
- - "
|
278
|
+
- - "~>"
|
279
279
|
- !ruby/object:Gem::Version
|
280
280
|
version: 5.4.0
|
281
|
-
- - "
|
281
|
+
- - ">="
|
282
282
|
- !ruby/object:Gem::Version
|
283
283
|
version: 5.4.0
|
284
284
|
type: :development
|
285
285
|
prerelease: false
|
286
286
|
version_requirements: !ruby/object:Gem::Requirement
|
287
287
|
requirements:
|
288
|
-
- - "
|
288
|
+
- - "~>"
|
289
289
|
- !ruby/object:Gem::Version
|
290
290
|
version: 5.4.0
|
291
|
-
- - "
|
291
|
+
- - ">="
|
292
292
|
- !ruby/object:Gem::Version
|
293
293
|
version: 5.4.0
|
294
294
|
- !ruby/object:Gem::Dependency
|
295
295
|
name: rspec
|
296
296
|
requirement: !ruby/object:Gem::Requirement
|
297
297
|
requirements:
|
298
|
-
- - ">="
|
299
|
-
- !ruby/object:Gem::Version
|
300
|
-
version: 3.5.0
|
301
298
|
- - "~>"
|
302
299
|
- !ruby/object:Gem::Version
|
303
300
|
version: '3.5'
|
301
|
+
- - ">="
|
302
|
+
- !ruby/object:Gem::Version
|
303
|
+
version: 3.5.0
|
304
304
|
type: :development
|
305
305
|
prerelease: false
|
306
306
|
version_requirements: !ruby/object:Gem::Requirement
|
307
307
|
requirements:
|
308
|
-
- - ">="
|
309
|
-
- !ruby/object:Gem::Version
|
310
|
-
version: 3.5.0
|
311
308
|
- - "~>"
|
312
309
|
- !ruby/object:Gem::Version
|
313
310
|
version: '3.5'
|
311
|
+
- - ">="
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
version: 3.5.0
|
314
314
|
- !ruby/object:Gem::Dependency
|
315
315
|
name: rubocop
|
316
316
|
requirement: !ruby/object:Gem::Requirement
|
317
317
|
requirements:
|
318
|
-
- - "
|
318
|
+
- - "~>"
|
319
319
|
- !ruby/object:Gem::Version
|
320
320
|
version: 0.73.0
|
321
|
-
- - "
|
321
|
+
- - ">="
|
322
322
|
- !ruby/object:Gem::Version
|
323
323
|
version: 0.73.0
|
324
324
|
type: :development
|
325
325
|
prerelease: false
|
326
326
|
version_requirements: !ruby/object:Gem::Requirement
|
327
327
|
requirements:
|
328
|
-
- - "
|
328
|
+
- - "~>"
|
329
329
|
- !ruby/object:Gem::Version
|
330
330
|
version: 0.73.0
|
331
|
-
- - "
|
331
|
+
- - ">="
|
332
332
|
- !ruby/object:Gem::Version
|
333
333
|
version: 0.73.0
|
334
334
|
- !ruby/object:Gem::Dependency
|
@@ -375,22 +375,22 @@ dependencies:
|
|
375
375
|
name: webmock
|
376
376
|
requirement: !ruby/object:Gem::Requirement
|
377
377
|
requirements:
|
378
|
-
- - ">="
|
379
|
-
- !ruby/object:Gem::Version
|
380
|
-
version: 2.1.0
|
381
378
|
- - "~>"
|
382
379
|
- !ruby/object:Gem::Version
|
383
380
|
version: '2.1'
|
381
|
+
- - ">="
|
382
|
+
- !ruby/object:Gem::Version
|
383
|
+
version: 2.1.0
|
384
384
|
type: :development
|
385
385
|
prerelease: false
|
386
386
|
version_requirements: !ruby/object:Gem::Requirement
|
387
387
|
requirements:
|
388
|
-
- - ">="
|
389
|
-
- !ruby/object:Gem::Version
|
390
|
-
version: 2.1.0
|
391
388
|
- - "~>"
|
392
389
|
- !ruby/object:Gem::Version
|
393
390
|
version: '2.1'
|
391
|
+
- - ">="
|
392
|
+
- !ruby/object:Gem::Version
|
393
|
+
version: 2.1.0
|
394
394
|
description: Proxy for mocks API responses
|
395
395
|
email: rubin.diego@gmail.com
|
396
396
|
executables:
|
@@ -460,22 +460,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
460
460
|
- !ruby/object:Gem::Version
|
461
461
|
version: '0'
|
462
462
|
requirements: []
|
463
|
-
|
463
|
+
rubyforge_project:
|
464
|
+
rubygems_version: 2.6.14.4
|
464
465
|
signing_key:
|
465
466
|
specification_version: 4
|
466
467
|
summary: Proxy for mocks API responses
|
467
468
|
test_files:
|
468
469
|
- spec/spec_helper.rb
|
469
|
-
- spec/tshield/request_matching_spec.rb
|
470
|
-
- spec/tshield/grpc_spec.rb
|
471
|
-
- spec/tshield/configuration_spec.rb
|
472
|
-
- spec/tshield/sessions_spec.rb
|
473
470
|
- spec/tshield/request_vcr_spec.rb
|
471
|
+
- spec/tshield/sessions_spec.rb
|
474
472
|
- spec/tshield/controllers/requests_spec.rb
|
473
|
+
- spec/tshield/request_matching_spec.rb
|
474
|
+
- spec/tshield/grpc_spec.rb
|
475
475
|
- spec/tshield/options_spec.rb
|
476
|
-
- spec/tshield/after_filter_spec.rb
|
477
|
-
- spec/tshield/fixtures/matching/example.json
|
478
476
|
- spec/tshield/fixtures/proto/test_services_pb.rb
|
479
477
|
- spec/tshield/fixtures/filters/example_filter.rb
|
478
|
+
- spec/tshield/fixtures/matching/example.json
|
480
479
|
- spec/tshield/fixtures/config/tshield.yml
|
481
480
|
- spec/tshield/fixtures/config/tshield-without-grpc.yml
|
481
|
+
- spec/tshield/configuration_spec.rb
|
482
|
+
- spec/tshield/after_filter_spec.rb
|