okapi 0.0.6 → 0.0.7
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.
- 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:
|