okapi 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/{test_files → examples}/apiary.apib +1 -1
- data/examples/apiary.yaml +5 -0
- data/examples/tests.spec +6 -0
- data/{test_files/tests.spec → examples/tests2.spec} +0 -1
- data/{test_files → examples}/tests_1.spec +0 -0
- data/lib/okapi/apiary_connector.rb +36 -17
- data/lib/okapi/cli.rb +68 -23
- data/lib/okapi/config.rb +4 -3
- data/lib/okapi/output.rb +3 -1
- data/lib/okapi/outputs/base.rb +10 -5
- data/lib/okapi/outputs/tap.rb +6 -1
- data/lib/okapi/spec_parser.rb +48 -19
- data/lib/okapi/test.rb +40 -31
- data/lib/okapi/version.rb +1 -1
- metadata +9 -7
@@ -35,7 +35,7 @@ This resource allows you to submit payment information to process your *shopping
|
|
35
35
|
POST /payment
|
36
36
|
{ "cc": "12345678900", "cvc": "123", "expiry": "0112" }
|
37
37
|
< 200
|
38
|
-
{ "receipt": "/payment/receipt/
|
38
|
+
{ "receipt": "/payment/receipt/1" }
|
39
39
|
|
40
40
|
-- JSON Schema Validations --
|
41
41
|
|
data/examples/tests.spec
ADDED
File without changes
|
@@ -14,30 +14,46 @@ module Apiary
|
|
14
14
|
@res_path = res_path
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
17
|
+
def get_response(raw_resp, json_data, error, code)
|
18
|
+
{ :resp => raw_resp,
|
19
|
+
:data => json_data ? json_data['requests'] : nil,
|
20
|
+
:status => json_data ? json_data['status'] : nil ,
|
21
|
+
:error => json_data ? json_data['error'] || error : error,
|
22
|
+
:code => code
|
23
|
+
}
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_requests(resources, blueprint, all_resources = false, global_vars = {})
|
18
27
|
|
19
28
|
resources_list = []
|
20
29
|
|
21
30
|
resources.each() do |res|
|
22
31
|
resources_list << {
|
23
|
-
:resource => res
|
24
|
-
:method => res
|
25
|
-
:params => res
|
32
|
+
:resource => res['resource'],
|
33
|
+
:method => res['method'],
|
34
|
+
:params => res['params']
|
26
35
|
}
|
27
36
|
end
|
28
37
|
|
29
38
|
data = {
|
30
39
|
:resources => resources_list,
|
31
|
-
:blueprint => blueprint
|
40
|
+
:blueprint => blueprint,
|
41
|
+
:all_resources => all_resources,
|
42
|
+
:global_vars => global_vars
|
32
43
|
}.to_json()
|
33
|
-
|
44
|
+
|
34
45
|
begin
|
35
46
|
response = RestClient.post @apiary_url + @req_path, data, :content_type => :json, :accept => :json
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
47
|
+
get_response(response, JSON.parse(response.to_str), nil, response.code.to_i)
|
48
|
+
rescue RestClient::BadRequest, RestClient::InternalServerError => e
|
49
|
+
begin
|
50
|
+
data = JSON.parse(e.http_body)
|
51
|
+
get_response(nil, JSON.parse(e.http_body), data['error'], e.http_code.to_i)
|
52
|
+
rescue
|
53
|
+
get_response(nil, nil, e.to_s, e.http_code.to_i)
|
54
|
+
end
|
55
|
+
rescue Exception => e
|
56
|
+
get_response(nil, nil, e.to_s, nil)
|
41
57
|
end
|
42
58
|
|
43
59
|
end
|
@@ -69,12 +85,15 @@ module Apiary
|
|
69
85
|
|
70
86
|
begin
|
71
87
|
response = RestClient.post @apiary_url + @res_path, data, :content_type => :json, :accept => :json
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
88
|
+
get_response(response, JSON.parse(response.to_str), nil, response.code.to_i)
|
89
|
+
rescue RestClient::BadRequest, RestClient::InternalServerError => e
|
90
|
+
begin
|
91
|
+
get_response(nil, JSON.parse(e.http_body), data['error'], e.http_code.to_i)
|
92
|
+
rescue
|
93
|
+
get_response(nil, nil, e.to_s, e.http_code.to_i)
|
94
|
+
end
|
95
|
+
rescue Exception => e
|
96
|
+
get_response(nil, nil, e.to_s, nil)
|
78
97
|
end
|
79
98
|
end
|
80
99
|
end
|
data/lib/okapi/cli.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'optparse'
|
3
|
+
require 'yaml'
|
3
4
|
|
4
5
|
module Apiary
|
5
6
|
module Okapi
|
@@ -9,67 +10,111 @@ module Apiary
|
|
9
10
|
case args.first
|
10
11
|
when 'help'
|
11
12
|
puts Apiary::Okapi::Help.show
|
13
|
+
exit 0
|
12
14
|
when 'version'
|
13
15
|
puts VERSION
|
16
|
+
exit 0
|
14
17
|
when 'okapi'
|
15
18
|
puts Apiary::Okapi::Help.okapi
|
19
|
+
exit 0
|
16
20
|
else
|
17
|
-
|
18
|
-
|
21
|
+
parse_options!(args)
|
22
|
+
parse_config
|
23
|
+
@options[:blueprint] ||= BLUEPRINT_PATH
|
24
|
+
@options[:test_spec] ||= TEST_SPEC_PATHS
|
25
|
+
@options[:output] ||= OUTPUT
|
26
|
+
@options[:test_url] ||= TEST_URL
|
27
|
+
@options[:apiary_url] ||= APIARY_URL
|
28
|
+
|
29
|
+
@options[:test_spec] ||= TEST_SPEC_PATHS.gsub(' ','').split(',')
|
19
30
|
|
20
|
-
|
31
|
+
if @options[:params]
|
32
|
+
puts "running with :"
|
33
|
+
p @options
|
34
|
+
puts "\n"
|
35
|
+
end
|
36
|
+
|
37
|
+
exit run
|
38
|
+
end
|
21
39
|
end
|
22
40
|
|
23
|
-
def run
|
24
|
-
|
41
|
+
def run
|
42
|
+
pass = true
|
43
|
+
@options[:test_spec].each { |spec|
|
44
|
+
pass = Apiary::Okapi::Test.new(@options[:blueprint], spec, @options[:test_url], @options[:output], @options[:apiary_url]).run()
|
45
|
+
}
|
46
|
+
if pass
|
47
|
+
0
|
48
|
+
else
|
49
|
+
1
|
50
|
+
end
|
51
|
+
end
|
25
52
|
|
53
|
+
def parse_config
|
54
|
+
begin
|
55
|
+
if tests = YAML.load_file(@options[:config_path])['tests']
|
56
|
+
@options[:test_url] ||= tests['host'] if tests['host']
|
57
|
+
@options[:test_spec] ||= tests['specs'] if tests['specs']
|
58
|
+
end
|
59
|
+
rescue Errno::ENOENT => e
|
60
|
+
puts "Config file (#{@options[:config_path]}) not accessible ... skiping"
|
61
|
+
rescue Exception => e
|
62
|
+
puts "Config file (#{@options[:config_path]}) loading problem :#{e}"
|
63
|
+
exit 1
|
64
|
+
end
|
26
65
|
end
|
27
66
|
|
28
67
|
def parse_options!(args)
|
29
|
-
options = {}
|
68
|
+
@options = {}
|
30
69
|
options_parser = OptionParser.new do |opts|
|
70
|
+
opts.on("-c", "--config CONFIG",
|
71
|
+
"path config file (default: " + CONFIG_PATH + " )") do |config|
|
72
|
+
@options[:config_path] = config
|
73
|
+
end
|
74
|
+
|
31
75
|
opts.on("-b", "--blueprint BLUEPRINT",
|
32
76
|
"path to the blueprint (default: " + BLUEPRINT_PATH + " )") do |blueprint|
|
33
|
-
options[:blueprint] = blueprint
|
77
|
+
@options[:blueprint] = blueprint
|
34
78
|
end
|
35
79
|
|
36
80
|
opts.on("-t","--test_spec TEST_SPEC",
|
37
|
-
"
|
38
|
-
options[:test_spec] = test_spec
|
81
|
+
"comma separated paths to the test specifications (default: " + TEST_SPEC_PATHS + " )") do |test_spec|
|
82
|
+
@options[:test_spec] = test_spec
|
39
83
|
end
|
40
84
|
|
41
85
|
opts.on("-o","--output OUTPUT",
|
42
86
|
"output format (default" + OUTPUT + ")") do |output|
|
43
|
-
options[:output] = output
|
87
|
+
@options[:output] = output
|
44
88
|
end
|
45
89
|
|
46
90
|
opts.on("-u","--test_url TEST_URL",
|
47
91
|
"url to test (default" + TEST_URL + ")") do |test_url|
|
48
|
-
options[:test_url] = test_url
|
92
|
+
@options[:test_url] = test_url
|
49
93
|
end
|
50
94
|
|
51
95
|
opts.on("-a","--apiary APIARY",
|
52
96
|
"apiary url (default" + APIARY_URL + ")") do |apiary|
|
53
|
-
options[:apiary_url] = apiary
|
54
|
-
end
|
97
|
+
@options[:apiary_url] = apiary
|
98
|
+
end
|
55
99
|
|
100
|
+
opts.on("-p","--params [PARAMS]",
|
101
|
+
"show parameters" ) do |params|
|
102
|
+
@options[:params] = true
|
103
|
+
end
|
56
104
|
end
|
57
105
|
|
58
106
|
options_parser.parse!
|
59
|
-
options[:blueprint] ||= BLUEPRINT_PATH
|
60
|
-
options[:test_spec] ||= TEST_SPEC_PATH
|
61
|
-
options[:output] ||= OUTPUT
|
62
|
-
options[:test_url] ||= TEST_URL
|
63
|
-
options[:apiary_url] ||= APIARY_URL
|
64
107
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
options
|
108
|
+
@options[:config_path] ||= CONFIG_PATH
|
109
|
+
@options[:test_spec] = @options[:test_spec].gsub(' ','').split(',') if @options[:test_spec]
|
110
|
+
|
111
|
+
@options
|
69
112
|
|
70
113
|
rescue OptionParser::InvalidOption => e
|
114
|
+
puts "\n"
|
71
115
|
puts e
|
72
|
-
|
116
|
+
Apiary::Okapi::Help.banner
|
117
|
+
puts "\n"
|
73
118
|
exit 1
|
74
119
|
end
|
75
120
|
|
data/lib/okapi/config.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module Apiary
|
3
3
|
module Okapi
|
4
|
+
CONFIG_PATH = "apiary.yaml"
|
4
5
|
APIARY_URL = "https://api.apiary.io"
|
5
6
|
GET_REQUESTS_PATH = "/tests/get-requests"
|
6
7
|
GET_RESULTS_PATH = "/tests/get-test-results"
|
7
8
|
BLUEPRINT_PATH = "apiary.apib"
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
TEST_SPEC_PATHS = "tests.spec"
|
10
|
+
TEST_URL = "http://127.0.0.1"
|
11
|
+
OUTPUT = 'tap'
|
11
12
|
end
|
12
13
|
end
|
data/lib/okapi/output.rb
CHANGED
@@ -4,7 +4,9 @@ module Apiary
|
|
4
4
|
module Okapi
|
5
5
|
class Output
|
6
6
|
def self.get(output,resources, error)
|
7
|
-
Apiary::Okapi::Outputs.const_get(output.to_s.capitalize).send(:new, resources, error)
|
7
|
+
output = Apiary::Okapi::Outputs.const_get(output.to_s.capitalize).send(:new, resources, error)
|
8
|
+
output.get()
|
9
|
+
output.status
|
8
10
|
end
|
9
11
|
end
|
10
12
|
end
|
data/lib/okapi/outputs/base.rb
CHANGED
@@ -2,6 +2,9 @@ module Apiary
|
|
2
2
|
module Okapi
|
3
3
|
module Outputs
|
4
4
|
class BaseOutput
|
5
|
+
|
6
|
+
attr_reader :status
|
7
|
+
|
5
8
|
def initialize(resources, error)
|
6
9
|
@resources = resources
|
7
10
|
@error = error
|
@@ -9,15 +12,15 @@ module Apiary
|
|
9
12
|
:count => 0,
|
10
13
|
:give_up => false,
|
11
14
|
}
|
15
|
+
@status = true
|
12
16
|
get_results
|
13
17
|
end
|
14
18
|
|
15
|
-
def get
|
16
|
-
p '------------------------------------------------------------------'
|
19
|
+
def get
|
17
20
|
p @results[:count].to_s + ' tests'
|
18
21
|
p @results[:give_up][:error].to_s if @results[:give_up]
|
19
22
|
@results[:tests].each { |test|
|
20
|
-
p '
|
23
|
+
p '-------------------------------------------------'
|
21
24
|
p test[:test_no]
|
22
25
|
p test[:description]
|
23
26
|
if test[:pass]
|
@@ -30,11 +33,11 @@ module Apiary
|
|
30
33
|
end
|
31
34
|
|
32
35
|
def get_results
|
33
|
-
|
34
36
|
@results[:count] = @resources.count
|
35
37
|
@results[:tests] = []
|
36
38
|
if @error
|
37
39
|
@results[:give_up] = {:error => @error}
|
40
|
+
@status = false
|
38
41
|
else
|
39
42
|
counter = 0
|
40
43
|
@resources.each { |res|
|
@@ -42,7 +45,7 @@ module Apiary
|
|
42
45
|
test_res = {
|
43
46
|
:test_no=> counter,
|
44
47
|
:pass => (res.validation_result.status and res.response.validation_result.status),
|
45
|
-
:description => res.method + ' ' + res.uri
|
48
|
+
:description => (res.method + ' ' + res.uri) + ((res.expanded_uri and res.uri != res.expanded_uri['url']) ? " (#{res.expanded_uri['url']}) " : '')
|
46
49
|
}
|
47
50
|
if not test_res[:pass]
|
48
51
|
test_res[:exp] = {:request => {:pass => false}, :response => {:pass => false}}
|
@@ -50,12 +53,14 @@ module Apiary
|
|
50
53
|
test_res[:exp][:request][:pass] = true
|
51
54
|
else
|
52
55
|
test_res[:exp][:request][:reasons] = get_fail_result(res.validation_result)
|
56
|
+
@status = false
|
53
57
|
end
|
54
58
|
|
55
59
|
if res.response.validation_result.status
|
56
60
|
test_res[:exp][:response][:pass] = true
|
57
61
|
else
|
58
62
|
test_res[:exp][:response][:reasons] = get_fail_result(res.response.validation_result)
|
63
|
+
@status = false
|
59
64
|
end
|
60
65
|
end
|
61
66
|
@results[:tests] << test_res
|
data/lib/okapi/outputs/tap.rb
CHANGED
@@ -7,6 +7,11 @@ module Apiary
|
|
7
7
|
class Tap < Apiary::Okapi::Outputs::BaseOutput
|
8
8
|
|
9
9
|
def get
|
10
|
+
get_int
|
11
|
+
puts "\n\n"
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_int
|
10
15
|
puts "TAP version 13"
|
11
16
|
puts "1..#{@results[:count].to_s}"
|
12
17
|
if @results[:give_up]
|
@@ -23,7 +28,7 @@ module Apiary
|
|
23
28
|
if not test[:pass]
|
24
29
|
error_block(test)
|
25
30
|
end
|
26
|
-
}
|
31
|
+
}
|
27
32
|
end
|
28
33
|
|
29
34
|
def error_block(test)
|
data/lib/okapi/spec_parser.rb
CHANGED
@@ -5,34 +5,58 @@ module Apiary
|
|
5
5
|
module Okapi
|
6
6
|
class Parser
|
7
7
|
|
8
|
-
attr_reader :data, :resources
|
8
|
+
attr_reader :data, :resources, :proces_all_bp_resources, :global_vars
|
9
9
|
|
10
10
|
def initialize(spec_path)
|
11
|
+
if not File.exist? spec_path
|
12
|
+
raise Exception, "Test spec. file '#{spec_path}' not found"
|
13
|
+
end
|
11
14
|
@data = read_file(spec_path)
|
15
|
+
@proces_all_bp_resources = false
|
12
16
|
end
|
13
17
|
|
14
18
|
def resources
|
15
|
-
@resources ||=
|
16
|
-
parse_data { |res|
|
17
|
-
raise Exception, 'resource not defined' unless res["resource"]
|
18
|
-
raise Exception, 'method not defined' unless res["method"]
|
19
|
-
|
20
|
-
(@resources ||= []) << Apiary::Okapi::Resource.new(res["resource"], res["method"], res["params"])
|
21
|
-
}
|
22
|
-
@resources
|
23
|
-
end
|
19
|
+
@resources ||= parse_data
|
24
20
|
end
|
25
21
|
|
26
22
|
def read_file(path)
|
27
23
|
@data = []
|
28
|
-
|
29
|
-
|
30
|
-
|
24
|
+
File.open(path).each do |line|
|
25
|
+
@data << line if line.strip != ""
|
26
|
+
end
|
31
27
|
@data
|
32
28
|
end
|
33
29
|
|
30
|
+
def substituite_vars(local, global)
|
31
|
+
tmp = {}
|
32
|
+
global.each {|k,v|
|
33
|
+
tmp[k] = v
|
34
|
+
}
|
35
|
+
local.each {|k,v|
|
36
|
+
tmp[k] = v
|
37
|
+
}
|
38
|
+
tmp
|
39
|
+
end
|
40
|
+
|
34
41
|
def parse_data
|
42
|
+
global_vars = {}
|
43
|
+
resources = []
|
35
44
|
@data.each { |res|
|
45
|
+
if res.index('CONTINUE') == 0
|
46
|
+
@proces_all_bp_resources = true
|
47
|
+
next
|
48
|
+
end
|
49
|
+
|
50
|
+
if res.index('VARS') == 0
|
51
|
+
splited = res.split(' ',2)
|
52
|
+
begin
|
53
|
+
global_vars = JSON.parse splited[1] if splited[1] and splited[1] != ''
|
54
|
+
rescue Exception => e
|
55
|
+
raise Exception, "can not parse global parameters (#{e})"
|
56
|
+
end
|
57
|
+
next
|
58
|
+
end
|
59
|
+
|
36
60
|
splited = res.split(' ',3)
|
37
61
|
|
38
62
|
begin
|
@@ -40,13 +64,18 @@ module Apiary
|
|
40
64
|
rescue Exception => e
|
41
65
|
raise Exception, 'can not parse parameters for resource:' + res + "(#{e})"
|
42
66
|
end
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
67
|
+
|
68
|
+
if splited[1] and splited[1] != '' and splited[0] and splited[0] != ''
|
69
|
+
out = {
|
70
|
+
'resource' => splited[1],
|
71
|
+
'method' => splited[0],
|
72
|
+
'params' => substituite_vars(splited[2] || {}, global_vars)
|
73
|
+
}
|
74
|
+
resources << out
|
75
|
+
end
|
49
76
|
}
|
77
|
+
@global_vars = global_vars
|
78
|
+
resources
|
50
79
|
end
|
51
80
|
|
52
81
|
end
|
data/lib/okapi/test.rb
CHANGED
@@ -5,31 +5,31 @@ module Apiary
|
|
5
5
|
module Okapi
|
6
6
|
class Test
|
7
7
|
def initialize(blueprint_path, test_spec_path, test_url, output, apiary_url)
|
8
|
-
@blueprint_path = blueprint_path
|
9
|
-
@test_spec_path = test_spec_path
|
10
|
-
@test_url = test_url
|
11
|
-
@output_format
|
12
|
-
@apiary_url = apiary_url
|
8
|
+
@blueprint_path = blueprint_path
|
9
|
+
@test_spec_path = test_spec_path
|
10
|
+
@test_url = test_url
|
11
|
+
@output_format = output
|
12
|
+
@apiary_url = apiary_url
|
13
13
|
@req_path = GET_REQUESTS_PATH
|
14
14
|
@res_path = GET_RESULTS_PATH
|
15
15
|
@connector = Apiary::Okapi::ApiaryConnector.new(@apiary_url, @req_path, @res_path)
|
16
|
+
@proces_all_bp_resources = false
|
16
17
|
@output = []
|
17
18
|
@resources = []
|
18
|
-
@error = nil
|
19
|
-
|
19
|
+
@error = nil
|
20
20
|
end
|
21
21
|
|
22
22
|
def run
|
23
23
|
begin
|
24
24
|
test()
|
25
25
|
rescue Exception => e
|
26
|
+
p e
|
27
|
+
@resources = []
|
26
28
|
@error = e
|
27
|
-
end
|
28
|
-
|
29
|
+
end
|
29
30
|
Apiary::Okapi::Output.get(@output_format, @resources, @error)
|
30
31
|
end
|
31
32
|
|
32
|
-
|
33
33
|
def test
|
34
34
|
prepare()
|
35
35
|
if not @resources.empty?
|
@@ -41,25 +41,30 @@ module Apiary
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def prepare
|
44
|
-
resources =
|
45
|
-
|
46
|
-
|
44
|
+
@resources = []
|
45
|
+
parser = get_test_spec_parser(@test_spec_path)
|
46
|
+
resources = parser.resources
|
47
|
+
counter = 0
|
48
|
+
|
49
|
+
resources.each { |res|
|
50
|
+
counter += 1
|
51
|
+
raise Exception, "Rresource not defined for item #{counter.to_d} in #{@test_spec_path}" unless res["resource"]
|
52
|
+
raise Exception, "Method not defined for resource #{res["resource"].to_s} in #{@test_spec_path}" unless res["method"]
|
53
|
+
}
|
47
54
|
|
48
|
-
|
55
|
+
@proces_all_bp_resources = parser.proces_all_bp_resources
|
56
|
+
data = get_requests_spec(resources, parser.global_vars)
|
57
|
+
|
58
|
+
if data[:error] or data[:code] != 200
|
59
|
+
raise Exception, 'Can not get request data from Apiary: ' + data[:error] ? data[:error] : ''
|
60
|
+
end
|
49
61
|
|
50
62
|
data[:data].each do |res|
|
51
63
|
raise Exception, 'Resource error "' + res['error'] + '" for resource "' + res["method"] + ' ' + res["uri"] + '"' if res['error']
|
52
|
-
|
53
|
-
resources.each do |resource|
|
54
|
-
if resource.uri == res["uri"] and resource.method == res["method"]
|
55
|
-
resource.expanded_uri = res["expandedUri"]
|
56
|
-
resource.body = res["body"]
|
57
|
-
resource.headers = res["headers"]
|
58
|
-
break
|
59
|
-
end
|
60
|
-
end
|
64
|
+
@resources << Apiary::Okapi::Resource.new(res["uri"], res["method"], res["params"], res["expandedUri"], res["headers"], res["body"])
|
61
65
|
end
|
62
|
-
|
66
|
+
|
67
|
+
@resources
|
63
68
|
end
|
64
69
|
|
65
70
|
def blueprint
|
@@ -88,9 +93,10 @@ module Apiary
|
|
88
93
|
def evaluate
|
89
94
|
|
90
95
|
data = @connector.get_results(@resources, blueprint)
|
91
|
-
|
92
|
-
|
93
|
-
|
96
|
+
if data[:error] or data[:code] != 200
|
97
|
+
raise Exception, 'Can not get evaluation data from apiary: ' + data[:error] ? data[:error] : ''
|
98
|
+
end
|
99
|
+
|
94
100
|
data[:data].each { |validation|
|
95
101
|
@resources.each { |resource|
|
96
102
|
if validation['resource']['uri'] == resource.uri and validation['resource']['method'] == resource.method
|
@@ -115,16 +121,19 @@ module Apiary
|
|
115
121
|
}
|
116
122
|
end
|
117
123
|
|
118
|
-
def
|
119
|
-
Apiary::Okapi::Parser.new(test_spec)
|
124
|
+
def get_test_spec_parser(test_spec)
|
125
|
+
Apiary::Okapi::Parser.new(test_spec)
|
120
126
|
end
|
121
127
|
|
122
128
|
def parse_blueprint(blueprint_path)
|
129
|
+
if not File.exist? blueprint_path
|
130
|
+
raise Exception, "Blueprint file '#{blueprint_path}' not found"
|
131
|
+
end
|
123
132
|
File.read(blueprint_path)
|
124
133
|
end
|
125
134
|
|
126
|
-
def get_requests_spec(resources)
|
127
|
-
@connector.get_requests(resources, blueprint)
|
135
|
+
def get_requests_spec(resources, global_vars)
|
136
|
+
@connector.get_requests(resources, blueprint, @proces_all_bp_resources, global_vars)
|
128
137
|
end
|
129
138
|
|
130
139
|
end
|
data/lib/okapi/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: okapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 7
|
10
|
+
version: 0.0.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tu1ly
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-05-
|
18
|
+
date: 2013-05-07 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -62,6 +62,11 @@ files:
|
|
62
62
|
- README.md
|
63
63
|
- Rakefile
|
64
64
|
- bin/okapi
|
65
|
+
- examples/apiary.apib
|
66
|
+
- examples/apiary.yaml
|
67
|
+
- examples/tests.spec
|
68
|
+
- examples/tests2.spec
|
69
|
+
- examples/tests_1.spec
|
65
70
|
- lib/okapi.rb
|
66
71
|
- lib/okapi/apiary_connector.rb
|
67
72
|
- lib/okapi/cli.rb
|
@@ -77,9 +82,6 @@ files:
|
|
77
82
|
- lib/okapi/test.rb
|
78
83
|
- lib/okapi/version.rb
|
79
84
|
- okapi.gemspec
|
80
|
-
- test_files/apiary.apib
|
81
|
-
- test_files/tests.spec
|
82
|
-
- test_files/tests_1.spec
|
83
85
|
has_rdoc: true
|
84
86
|
homepage: http://apiary.io
|
85
87
|
licenses:
|