tshield 0.11.20.0 → 0.12.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1880df41008713100967696d1bf1695b1e830851877f0ed5340f1f3f75cabd5e
4
- data.tar.gz: 2a540ed72557ad9f9ba32073a5e98ed9b22812c1d0b96feaec00eeed35494386
3
+ metadata.gz: b027cb3ab381c02f5e74668df35812a9056f2ea67be29103905d3a965168a449
4
+ data.tar.gz: 71c06f7a53ba24daafbf1c42f16ed02d05d00be2f663b2c52ae39e67377aa241
5
5
  SHA512:
6
- metadata.gz: 7187004fa9e86545dcf81ebf70ea3059e04a0a8dcfe0143be3714ead2df3b9fc7d3e981641514f38192d69e57f826c85b14c46965f5d8171e3813e1bd9188574
7
- data.tar.gz: d1e5e07ff88b722a944d78e22f1d3089214fb1ae9bed74c7bd42943700fc63bc096fc7916368513c83e660cb7936044dffd52e0f5c5b927d2618364a1411074e
6
+ metadata.gz: a8829db78bef723d0a9afab28bcbd3d52127d4fff48ea098482ebc3fff1bb017a751b0aef1315eb4eaf67094c836168c601e9fc93af444f05f86c50cade2be6f
7
+ data.tar.gz: a5f981a9d81ff8415f60e1d17572d56cf3d6112899b5a2e67bd17cebe69c1e49c48818c0ba6d4009e03e64476d10b7ccf338a4171d822b316e7305cf6a777c2c
data/README.md CHANGED
@@ -68,6 +68,17 @@ domains:
68
68
  - /users
69
69
  ```
70
70
 
71
+ **Windows Compatibility:** If you need to use Tshield in Windows SO, change the config file and set the windows_compatibility to true.
72
+
73
+ Eg:
74
+ ```yaml
75
+ windows_compatibility: true
76
+ request:
77
+ # wait time for real service
78
+ timeout: 8
79
+ ...
80
+ ```
81
+
71
82
  ## Config options for Pattern Matching
72
83
 
73
84
  An example of file to create a stub:
@@ -32,6 +32,7 @@ module TShield
32
32
  attr_reader :domains
33
33
  attr_reader :tcp_servers
34
34
  attr_reader :session_path
35
+ attr_reader :windows_compatibility
35
36
 
36
37
  def initialize(attributes)
37
38
  attributes.each { |key, value| instance_variable_set("@#{key}", value) }
@@ -103,6 +104,10 @@ module TShield
103
104
  session_path || '/sessions'
104
105
  end
105
106
 
107
+ def get_questionmark_char
108
+ windows_compatibility ? '%3f' : '?'
109
+ end
110
+
106
111
  def grpc
107
112
  defaults = { 'port' => 5678, 'proto_dir' => 'proto', 'services' => {} }
108
113
  defaults.merge(@grpc || {})
@@ -140,9 +140,9 @@ module TShield
140
140
  if url.size > 225
141
141
  path = url.gsub(/(\?.*)/, '')
142
142
  params = Digest::SHA1.hexdigest Regexp.last_match(1)
143
- "#{path.gsub(%r{/}, '-').gsub(/^-/, '')}?#{params}"
143
+ "#{path.gsub(%r{/}, '-').gsub(/^-/, '')}#{configuration.get_questionmark_char}#{params}"
144
144
  else
145
- url.gsub(%r{/}, '-').gsub(/^-/, '')
145
+ url.gsub(%r{/}, '-').gsub(/^-/, '').gsub('?', configuration.get_questionmark_char)
146
146
  end
147
147
  end
148
148
  end
@@ -4,8 +4,8 @@ module TShield
4
4
  # Control version of gem
5
5
  class Version
6
6
  MAJOR = 0
7
- MINOR = 11
8
- PATCH = 20
7
+ MINOR = 12
8
+ PATCH = 0
9
9
  PRE = 0
10
10
 
11
11
  class << self
@@ -64,6 +64,33 @@ describe TShield::Configuration do
64
64
  expect(@configuration.get_domain_for('/api/four')).to be_nil
65
65
  end
66
66
  end
67
+
68
+ describe 'SO compatibility' do
69
+ it 'should be compatible with windows when configuration is true' do
70
+ allow(YAML).to receive(:safe_load).and_return({:windows_compatibility => true })
71
+ TShield::Configuration.clear
72
+ @configuration = TShield::Configuration.singleton
73
+
74
+ expect(@configuration.get_questionmark_char).to eq('%3f')
75
+ end
76
+
77
+ it 'should be compatible with Unix when configuration is false' do
78
+ allow(YAML).to receive(:safe_load).and_return({:windows_compatibility => false })
79
+ TShield::Configuration.clear
80
+ @configuration = TShield::Configuration.singleton
81
+
82
+ expect(@configuration.get_questionmark_char).to eq('?')
83
+ end
84
+
85
+ it 'should be compatible with Unix when configuration is missing' do
86
+ allow(YAML).to receive(:safe_load).and_return({})
87
+ TShield::Configuration.clear
88
+ @configuration = TShield::Configuration.singleton
89
+
90
+ expect(@configuration.get_questionmark_char).to eq('?')
91
+ end
92
+
93
+ end
67
94
  end
68
95
  context 'on config not exist' do
69
96
  before :each do
@@ -62,6 +62,8 @@ describe TShield::RequestVCR do
62
62
  }
63
63
  )
64
64
 
65
+ allow(@configuration).to receive(:get_questionmark_char).and_return('?')
66
+
65
67
  allow(HTTParty).to receive(:send).and_return(RawResponse.new)
66
68
  file_double = double
67
69
 
@@ -83,6 +85,53 @@ describe TShield::RequestVCR do
83
85
  method: 'GET',
84
86
  call: 0
85
87
  end
88
+
89
+ it 'should create response directory in windows standard' do
90
+
91
+ allow(@configuration).to receive(:domains).and_return(
92
+ 'example.org' => {
93
+ 'skip_query_params' => []
94
+ }
95
+ )
96
+
97
+ allow(@configuration).to receive(:get_questionmark_char).and_return('%3f')
98
+
99
+ allow(HTTParty).to receive(:send).and_return(RawResponse.new)
100
+ file_double = double
101
+
102
+ allow(File).to receive(:join)
103
+ .with('./requests/example.org', '%3fparam=value')
104
+ .and_return('./requests/example.org/%3fparam=value')
105
+ allow(File).to receive(:join)
106
+ .with('./requests/example.org/%3fparam=value', 'get')
107
+ .and_return('./requests/example.org/%3fparam=value/get')
108
+ allow(File).to receive(:join)
109
+ .with('./requests/example.org/%3fparam=value/get', '0')
110
+ .and_return('./requests/example.org/%3fparam=value/get/0')
111
+
112
+ allow(file_double).to receive(:read).and_return('{}')
113
+
114
+ expect(File).to receive('open')
115
+ .with('./requests/example.org/%3fparam=value/get/0.content', 'w')
116
+ .and_return(file_double)
117
+
118
+ expect(File).to receive('open')
119
+ .with('./requests/example.org/%3fparam=value/get/0.json', 'w')
120
+ .and_return(file_double)
121
+
122
+ expect(file_double).to receive(:write).ordered.with('this is the body')
123
+ expect(file_double).to receive(:write)
124
+ .with("{\n \"status\": 200,\n \"headers\": {\n }\n}")
125
+ expect(file_double).to receive(:close)
126
+ expect(file_double).to receive(:close)
127
+
128
+ TShield::RequestVCR.new '/',
129
+ raw_query: 'param=value',
130
+ method: 'GET',
131
+ call: 0
132
+ end
133
+
134
+
86
135
  end
87
136
  end
88
137
 
@@ -22,19 +22,18 @@ Gem::Specification.new do |s|
22
22
 
23
23
  s.test_files = Dir['spec/**/*']
24
24
 
25
- s.required_ruby_version = '>= 2.3'
25
+ s.required_ruby_version = '>= 2.4'
26
26
 
27
- s.add_dependency('byebug', '~> 11.0', '>= 11.0.1')
28
27
  s.add_dependency('grpc', '~> 1.28', '>= 1.28.0')
29
28
  s.add_dependency('grpc-tools', '~> 1.28', '>= 1.28.0')
30
29
  s.add_dependency('httparty', '~> 0.14', '>= 0.14.0')
31
30
  s.add_dependency('json', '~> 2.0', '>= 2.0')
32
31
  s.add_dependency('puma', '~> 4.3', '>= 4.3.3')
33
- s.add_dependency('sinatra', '~> 1.4', '>= 1.4.0')
32
+ s.add_dependency('sinatra', '~> 2.1', '>= 2.1.0')
34
33
  s.add_dependency('sinatra-cross_origin', '~> 0.4.0', '>= 0.4')
35
- s.add_development_dependency('coveralls')
34
+ s.add_development_dependency('coveralls', '~> 0.8', '>= 0.8.23')
36
35
  s.add_development_dependency('cucumber', '~> 3.1', '>= 3.1.2')
37
- s.add_development_dependency('guard', '~> 2.15', '>= 2.15.0')
36
+ s.add_development_dependency('guard', '~> 2.16', '>= 2.16.2')
38
37
  s.add_development_dependency('guard-rspec', '~> 4.7', '>= 4.7.3')
39
38
  s.add_development_dependency('rake', '>= 10.0', '~> 13.0')
40
39
  s.add_development_dependency('rdoc', '~> 6.0', '>= 6.0')
@@ -42,6 +41,6 @@ Gem::Specification.new do |s|
42
41
  s.add_development_dependency('rspec', '~> 3.5', '>= 3.5.0')
43
42
  s.add_development_dependency('rubocop', '~> 0.73.0', '>= 0.73.0')
44
43
  s.add_development_dependency('rubocop-rails', '~> 2.2.0', '>= 2.2.1')
45
- s.add_development_dependency('simplecov', '~> 0.12', '>= 0.12.0')
44
+ s.add_development_dependency('simplecov', '~> 0.16', '>= 0.16.1')
46
45
  s.add_development_dependency('webmock', '~> 2.1', '>= 2.1.0')
47
46
  end
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.11.20.0
4
+ version: 0.12.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diego Rubin
@@ -9,28 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-07-26 00:00:00.000000000 Z
12
+ date: 2020-11-03 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: byebug
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '11.0'
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 11.0.1
24
- type: :runtime
25
- prerelease: false
26
- version_requirements: !ruby/object:Gem::Requirement
27
- requirements:
28
- - - "~>"
29
- - !ruby/object:Gem::Version
30
- version: '11.0'
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 11.0.1
34
14
  - !ruby/object:Gem::Dependency
35
15
  name: grpc
36
16
  requirement: !ruby/object:Gem::Requirement
@@ -137,20 +117,20 @@ dependencies:
137
117
  requirements:
138
118
  - - ">="
139
119
  - !ruby/object:Gem::Version
140
- version: 1.4.0
120
+ version: 2.1.0
141
121
  - - "~>"
142
122
  - !ruby/object:Gem::Version
143
- version: '1.4'
123
+ version: '2.1'
144
124
  type: :runtime
145
125
  prerelease: false
146
126
  version_requirements: !ruby/object:Gem::Requirement
147
127
  requirements:
148
128
  - - ">="
149
129
  - !ruby/object:Gem::Version
150
- version: 1.4.0
130
+ version: 2.1.0
151
131
  - - "~>"
152
132
  - !ruby/object:Gem::Version
153
- version: '1.4'
133
+ version: '2.1'
154
134
  - !ruby/object:Gem::Dependency
155
135
  name: sinatra-cross_origin
156
136
  requirement: !ruby/object:Gem::Requirement
@@ -175,16 +155,22 @@ dependencies:
175
155
  name: coveralls
176
156
  requirement: !ruby/object:Gem::Requirement
177
157
  requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '0.8'
178
161
  - - ">="
179
162
  - !ruby/object:Gem::Version
180
- version: '0'
163
+ version: 0.8.23
181
164
  type: :development
182
165
  prerelease: false
183
166
  version_requirements: !ruby/object:Gem::Requirement
184
167
  requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: '0.8'
185
171
  - - ">="
186
172
  - !ruby/object:Gem::Version
187
- version: '0'
173
+ version: 0.8.23
188
174
  - !ruby/object:Gem::Dependency
189
175
  name: cucumber
190
176
  requirement: !ruby/object:Gem::Requirement
@@ -209,22 +195,22 @@ dependencies:
209
195
  name: guard
210
196
  requirement: !ruby/object:Gem::Requirement
211
197
  requirements:
212
- - - ">="
213
- - !ruby/object:Gem::Version
214
- version: 2.15.0
215
198
  - - "~>"
216
199
  - !ruby/object:Gem::Version
217
- version: '2.15'
200
+ version: '2.16'
201
+ - - ">="
202
+ - !ruby/object:Gem::Version
203
+ version: 2.16.2
218
204
  type: :development
219
205
  prerelease: false
220
206
  version_requirements: !ruby/object:Gem::Requirement
221
207
  requirements:
222
- - - ">="
223
- - !ruby/object:Gem::Version
224
- version: 2.15.0
225
208
  - - "~>"
226
209
  - !ruby/object:Gem::Version
227
- version: '2.15'
210
+ version: '2.16'
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: 2.16.2
228
214
  - !ruby/object:Gem::Dependency
229
215
  name: guard-rspec
230
216
  requirement: !ruby/object:Gem::Requirement
@@ -369,22 +355,22 @@ dependencies:
369
355
  name: simplecov
370
356
  requirement: !ruby/object:Gem::Requirement
371
357
  requirements:
372
- - - ">="
373
- - !ruby/object:Gem::Version
374
- version: 0.12.0
375
358
  - - "~>"
376
359
  - !ruby/object:Gem::Version
377
- version: '0.12'
360
+ version: '0.16'
361
+ - - ">="
362
+ - !ruby/object:Gem::Version
363
+ version: 0.16.1
378
364
  type: :development
379
365
  prerelease: false
380
366
  version_requirements: !ruby/object:Gem::Requirement
381
367
  requirements:
382
- - - ">="
383
- - !ruby/object:Gem::Version
384
- version: 0.12.0
385
368
  - - "~>"
386
369
  - !ruby/object:Gem::Version
387
- version: '0.12'
370
+ version: '0.16'
371
+ - - ">="
372
+ - !ruby/object:Gem::Version
373
+ version: 0.16.1
388
374
  - !ruby/object:Gem::Dependency
389
375
  name: webmock
390
376
  requirement: !ruby/object:Gem::Requirement
@@ -467,7 +453,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
467
453
  requirements:
468
454
  - - ">="
469
455
  - !ruby/object:Gem::Version
470
- version: '2.3'
456
+ version: '2.4'
471
457
  required_rubygems_version: !ruby/object:Gem::Requirement
472
458
  requirements:
473
459
  - - ">="