barthes 0.0.42 → 0.0.43

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0e51b8191e0587b55a791506307150c1a0a0231b
4
+ data.tar.gz: 8c68f381ff35596a42bd437aa38db1afb841cec9
5
+ SHA512:
6
+ metadata.gz: 2f260b2bd21e7749456a16b46ee82149ee6aad179a29f1bd8a9d40ddd75f88d96a7f97ea9c4bf5275853aad17685ce437cac6a45d535721e760294b3eea5b30a
7
+ data.tar.gz: a17ab610bd683d7867e8d24b879f65f92bc30507cf76b42670b15106655773191329d32541e857e1772a454dc698f2a5974810a6d47d2a2bb1d5ffe9ea46ecc7
data/.gitignore CHANGED
@@ -20,3 +20,4 @@ tmp
20
20
  *.o
21
21
  *.a
22
22
  mkmf.log
23
+ /.env
@@ -0,0 +1,7 @@
1
+ #FROM ruby:1.9.3
2
+ FROM ruby:2.1
3
+ WORKDIR /usr/local/app
4
+ ADD Gemfile Gemfile
5
+ ADD barthes.gemspec barthes.gemspec
6
+ ADD lib/barthes/version.rb lib/barthes/version.rb
7
+ RUN bundle install
data/README.md CHANGED
@@ -1,31 +1,27 @@
1
1
  # Barthes
2
2
 
3
- ![](600px-Roland_Barthes_signature.svg.png)
3
+ [![Gem Version](https://badge.fury.io/rb/barthes.svg)](http://badge.fury.io/rb/barthes)
4
+ [![Code Climate](https://codeclimate.com/github/tily/barthes/badges/gpa.svg)](https://codeclimate.com/github/tily/barthes)
4
5
 
5
- TODO: Write a gem description
6
+ Data-driven acceptance test framework.
6
7
 
7
- ## Installation
8
-
9
- Add this line to your application's Gemfile:
10
-
11
- gem 'barthes'
12
-
13
- And then execute:
14
-
15
- $ bundle
8
+ ## Usage
16
9
 
17
- Or install it yourself as:
10
+ See https://github.com/tily/barthes/wiki for Japanese documents.
18
11
 
19
- $ gem install barthes
12
+ ## Install
20
13
 
21
- ## Usage
14
+ ```
15
+ # Gemfile
16
+ gem "barthes"
17
+ ```
18
+ ## How to develop with docker
22
19
 
23
- TODO: Write usage instructions here
20
+ ```
21
+ ## Set your environment variables
22
+ $ vi .env
24
23
 
25
- ## Contributing
26
24
 
27
- 1. Fork it ( https://github.com/[my-github-username]/barthes/fork )
28
- 2. Create your feature branch (`git checkout -b my-new-feature`)
29
- 3. Commit your changes (`git commit -am 'Add some feature'`)
30
- 4. Push to the branch (`git push origin my-new-feature`)
31
- 5. Create a new Pull Request
25
+ ## Run barthes command
26
+ $ docker-compose run --rm app ruby bin/barthes
27
+ ```
@@ -30,5 +30,6 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency "chronic"
31
31
  spec.add_dependency "httparty", "0.10.0"
32
32
  spec.add_dependency "builder"
33
- spec.add_dependency "ace-client", "0.0.21"
33
+ spec.add_dependency "ace-client", "0.0.23"
34
+ spec.add_dependency "jmespath", "1.4.0"
34
35
  end
@@ -0,0 +1,7 @@
1
+ version: "3"
2
+ services:
3
+ app:
4
+ build: .
5
+ volumes:
6
+ - .:/usr/local/app
7
+ env_file: .env
@@ -0,0 +1,52 @@
1
+ require "barthes/client/ace"
2
+ require "jmespath"
3
+
4
+ class Barthes::Client::AceJson4 < Barthes::Client::Ace
5
+ def initialize(env)
6
+ super(env)
7
+ @client = AceClient::Json4.new(@options)
8
+ end
9
+
10
+ def compare(response, expectation)
11
+ result = nil
12
+ case expectation['type']
13
+ when 'response_code'
14
+ result = response.code == expectation['value']
15
+ {'result' => result, 'returned' => response.code, 'expected' => expectation['value']}
16
+ when 'jmespath_value'
17
+ text = jmespath(response, expectation['jmespath'])
18
+ if expectation['method'].nil? || expectation['method'] == 'eq'
19
+ result = (text == expectation['value'])
20
+ elsif expectation['method'] == 'regexp'
21
+ result = !(text.match Regexp.new(expectation['value'])).nil?
22
+ elsif expectation['method'] == 'ne'
23
+ result = (text != expectation['value'])
24
+ end
25
+ {'result' => result, 'returned' => text, 'expected' => expectation['value']}
26
+ when 'jmespath_size'
27
+ size = jmespath(response, expectation['jmespath']).size
28
+ if expectation['method'].nil? || expectation['method'] == 'eq'
29
+ result = (size == expectation['value'])
30
+ elsif expectation['method'] == 'gt'
31
+ result = (size > expectation['value'])
32
+ elsif expectation['method'] == 'gte'
33
+ result = (size >= expectation['value'])
34
+ elsif expectation['method'] == 'lt'
35
+ result = (size < expectation['value'])
36
+ elsif expectation['method'] == 'lte'
37
+ result = (size <= expectation['value'])
38
+ end
39
+ {'result' => result, 'returned' => size, 'expected' => expectation['value']}
40
+ else
41
+ {'result' => true}
42
+ end
43
+ end
44
+
45
+ def extract(config, response)
46
+ jmespath(response, config["jmespath"])
47
+ end
48
+
49
+ def jmespath(response, jmespath)
50
+ JMESPath.search(jmespath, response.parsed_response)
51
+ end
52
+ end
@@ -1,3 +1,3 @@
1
1
  module Barthes
2
- VERSION = "0.0.42"
2
+ VERSION = "0.0.43"
3
3
  end
metadata CHANGED
@@ -1,84 +1,74 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: barthes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.42
5
- prerelease:
4
+ version: 0.0.43
6
5
  platform: ruby
7
6
  authors:
8
7
  - tily
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-04-30 00:00:00.000000000 Z
11
+ date: 2019-01-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '1.6'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.6'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: json
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: erubis
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: slop
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - '='
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - '='
92
81
  - !ruby/object:Gem::Version
@@ -94,71 +83,62 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: term-ansicolor
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ">="
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - ">="
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: activesupport
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - ">="
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - ">="
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: nokogiri
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ! '>='
115
+ - - ">="
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0'
134
118
  type: :runtime
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ! '>='
122
+ - - ">="
140
123
  - !ruby/object:Gem::Version
141
124
  version: '0'
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: chronic
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ! '>='
129
+ - - ">="
148
130
  - !ruby/object:Gem::Version
149
131
  version: '0'
150
132
  type: :runtime
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ! '>='
136
+ - - ">="
156
137
  - !ruby/object:Gem::Version
157
138
  version: '0'
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: httparty
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
143
  - - '='
164
144
  - !ruby/object:Gem::Version
@@ -166,7 +146,6 @@ dependencies:
166
146
  type: :runtime
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
150
  - - '='
172
151
  - !ruby/object:Gem::Version
@@ -174,35 +153,45 @@ dependencies:
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: builder
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
- - - ! '>='
157
+ - - ">="
180
158
  - !ruby/object:Gem::Version
181
159
  version: '0'
182
160
  type: :runtime
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
- - - ! '>='
164
+ - - ">="
188
165
  - !ruby/object:Gem::Version
189
166
  version: '0'
190
167
  - !ruby/object:Gem::Dependency
191
168
  name: ace-client
192
169
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
170
  requirements:
195
171
  - - '='
196
172
  - !ruby/object:Gem::Version
197
- version: 0.0.21
173
+ version: 0.0.23
198
174
  type: :runtime
199
175
  prerelease: false
200
176
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
177
  requirements:
203
178
  - - '='
204
179
  - !ruby/object:Gem::Version
205
- version: 0.0.21
180
+ version: 0.0.23
181
+ - !ruby/object:Gem::Dependency
182
+ name: jmespath
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - '='
186
+ - !ruby/object:Gem::Version
187
+ version: 1.4.0
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '='
193
+ - !ruby/object:Gem::Version
194
+ version: 1.4.0
206
195
  description: lightweight scenario test framework
207
196
  email:
208
197
  - tily05@gmail.com
@@ -211,14 +200,16 @@ executables:
211
200
  extensions: []
212
201
  extra_rdoc_files: []
213
202
  files:
214
- - .gitignore
203
+ - ".gitignore"
215
204
  - 600px-Roland_Barthes_signature.svg.png
205
+ - Dockerfile
216
206
  - Gemfile
217
207
  - LICENSE.txt
218
208
  - README.md
219
209
  - Rakefile
220
210
  - barthes.gemspec
221
211
  - bin/barthes
212
+ - docker-compose.yml
222
213
  - example/interrupt_spec.json
223
214
  - example/q3_env.json
224
215
  - example/q3_spec.json
@@ -227,6 +218,7 @@ files:
227
218
  - lib/barthes/cache.rb
228
219
  - lib/barthes/cli.rb
229
220
  - lib/barthes/client/ace.rb
221
+ - lib/barthes/client/ace_json4.rb
230
222
  - lib/barthes/client/ace_query2.rb
231
223
  - lib/barthes/client/ace_query3.rb
232
224
  - lib/barthes/client/ace_query4.rb
@@ -243,26 +235,25 @@ files:
243
235
  homepage: ''
244
236
  licenses:
245
237
  - MIT
238
+ metadata: {}
246
239
  post_install_message:
247
240
  rdoc_options: []
248
241
  require_paths:
249
242
  - lib
250
243
  required_ruby_version: !ruby/object:Gem::Requirement
251
- none: false
252
244
  requirements:
253
- - - ! '>='
245
+ - - ">="
254
246
  - !ruby/object:Gem::Version
255
247
  version: '0'
256
248
  required_rubygems_version: !ruby/object:Gem::Requirement
257
- none: false
258
249
  requirements:
259
- - - ! '>='
250
+ - - ">="
260
251
  - !ruby/object:Gem::Version
261
252
  version: '0'
262
253
  requirements: []
263
254
  rubyforge_project:
264
- rubygems_version: 1.8.24
255
+ rubygems_version: 2.6.12
265
256
  signing_key:
266
- specification_version: 3
257
+ specification_version: 4
267
258
  summary: lightweight scenario test framework
268
259
  test_files: []