kensa 1.3.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/kensa +1 -1
- data/lib/heroku/kensa/client.rb +9 -3
- data/lib/heroku/kensa/manifest.rb +1 -1
- data/lib/heroku/kensa/version.rb +1 -1
- data/test/init_test.rb +1 -12
- data/test/manifest_check_test.rb +7 -0
- metadata +28 -28
data/bin/kensa
CHANGED
data/lib/heroku/kensa/client.rb
CHANGED
@@ -77,7 +77,7 @@ module Heroku
|
|
77
77
|
|
78
78
|
def sso
|
79
79
|
id = @args.shift || abort("! no id specified; see usage")
|
80
|
-
data =
|
80
|
+
data = decoded_manifest
|
81
81
|
sso = Sso.new(data.merge(@options)).start
|
82
82
|
puts sso.message
|
83
83
|
Launchy.open sso.sso_url
|
@@ -86,7 +86,7 @@ module Heroku
|
|
86
86
|
def push
|
87
87
|
user, password = ask_for_credentials
|
88
88
|
host = heroku_host
|
89
|
-
data =
|
89
|
+
data = decoded_manifest
|
90
90
|
resource = RestClient::Resource.new(host, user, password)
|
91
91
|
resource['provider/addons'].post(resolve_manifest, headers)
|
92
92
|
puts "-----> Manifest for \"#{data['id']}\" was pushed successfully"
|
@@ -148,6 +148,12 @@ module Heroku
|
|
148
148
|
end
|
149
149
|
end
|
150
150
|
|
151
|
+
def decoded_manifest
|
152
|
+
OkJson.decode(resolve_manifest)
|
153
|
+
rescue OkJson::Error => e
|
154
|
+
raise CommandInvalid, "#{filename} includes invalid JSON"
|
155
|
+
end
|
156
|
+
|
151
157
|
def manifest_exists?
|
152
158
|
File.exists?(filename)
|
153
159
|
end
|
@@ -157,7 +163,7 @@ module Heroku
|
|
157
163
|
options = args.pop if args.last.is_a?(Hash)
|
158
164
|
|
159
165
|
args.each do |klass|
|
160
|
-
data =
|
166
|
+
data = decoded_manifest
|
161
167
|
check = klass.new(data.merge(@options.merge(options)), screen)
|
162
168
|
result = check.call
|
163
169
|
screen.finish
|
data/lib/heroku/kensa/version.rb
CHANGED
data/test/init_test.rb
CHANGED
@@ -16,17 +16,7 @@ class InitTest < Test::Unit::TestCase
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
20
|
-
kensa "init"
|
21
|
-
manifest = read_json(@filename)
|
22
|
-
%w{test production}.each do |env|
|
23
|
-
assert manifest['api'][env] =~ /^http/
|
24
|
-
end
|
25
|
-
assert !File.exist?('.env')
|
26
|
-
end
|
27
|
-
|
28
|
-
=begin
|
29
|
-
def test_init_default_so_sso_post
|
19
|
+
def test_init_defaults_to_sso_post
|
30
20
|
kensa "init"
|
31
21
|
manifest = read_json(@filename)
|
32
22
|
%w{test production}.each do |env|
|
@@ -36,7 +26,6 @@ class InitTest < Test::Unit::TestCase
|
|
36
26
|
end
|
37
27
|
assert !File.exist?('.env')
|
38
28
|
end
|
39
|
-
=end
|
40
29
|
|
41
30
|
def test_init_uses_file_flag
|
42
31
|
@filename = 'foo.json'
|
data/test/manifest_check_test.rb
CHANGED
@@ -5,6 +5,13 @@ class ManifestCheckTest < Test::Unit::TestCase
|
|
5
5
|
|
6
6
|
def check ; ManifestCheck ; end
|
7
7
|
|
8
|
+
test "doesn't barf on OkJson errors" do
|
9
|
+
File.open("addon-manifest.json", 'w') { |f| f << "{,a" }
|
10
|
+
assert_raises Client::CommandInvalid, "addon-manifest.json includes invalid JSON" do
|
11
|
+
kensa "test provision"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
8
15
|
%w{get post}.each do |method|
|
9
16
|
context "with sso #{method}" do
|
10
17
|
setup { @data = Manifest.new(:method => method).skeleton }
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kensa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
8
|
+
- 4
|
9
9
|
- 0
|
10
|
-
version: 1.
|
10
|
+
version: 1.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Blake Mizerany
|
@@ -19,10 +19,12 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date:
|
22
|
+
date: 2012-01-27 00:00:00 -08:00
|
23
23
|
default_executable: kensa
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
|
+
name: contest
|
27
|
+
prerelease: false
|
26
28
|
requirement: &id001 !ruby/object:Gem::Requirement
|
27
29
|
none: false
|
28
30
|
requirements:
|
@@ -33,10 +35,10 @@ dependencies:
|
|
33
35
|
- 0
|
34
36
|
version: "0"
|
35
37
|
type: :development
|
36
|
-
name: contest
|
37
|
-
prerelease: false
|
38
38
|
version_requirements: *id001
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
|
+
name: timecop
|
41
|
+
prerelease: false
|
40
42
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
43
|
none: false
|
42
44
|
requirements:
|
@@ -49,10 +51,10 @@ dependencies:
|
|
49
51
|
- 5
|
50
52
|
version: 0.3.5
|
51
53
|
type: :development
|
52
|
-
name: timecop
|
53
|
-
prerelease: false
|
54
54
|
version_requirements: *id002
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
name: sinatra
|
57
|
+
prerelease: false
|
56
58
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
59
|
none: false
|
58
60
|
requirements:
|
@@ -64,10 +66,10 @@ dependencies:
|
|
64
66
|
- 9
|
65
67
|
version: "0.9"
|
66
68
|
type: :development
|
67
|
-
name: sinatra
|
68
|
-
prerelease: false
|
69
69
|
version_requirements: *id003
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
+
name: contest
|
72
|
+
prerelease: false
|
71
73
|
requirement: &id004 !ruby/object:Gem::Requirement
|
72
74
|
none: false
|
73
75
|
requirements:
|
@@ -78,10 +80,10 @@ dependencies:
|
|
78
80
|
- 0
|
79
81
|
version: "0"
|
80
82
|
type: :development
|
81
|
-
name: contest
|
82
|
-
prerelease: false
|
83
83
|
version_requirements: *id004
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
+
name: haml
|
86
|
+
prerelease: false
|
85
87
|
requirement: &id005 !ruby/object:Gem::Requirement
|
86
88
|
none: false
|
87
89
|
requirements:
|
@@ -92,10 +94,10 @@ dependencies:
|
|
92
94
|
- 0
|
93
95
|
version: "0"
|
94
96
|
type: :development
|
95
|
-
name: haml
|
96
|
-
prerelease: false
|
97
97
|
version_requirements: *id005
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
+
name: rr
|
100
|
+
prerelease: false
|
99
101
|
requirement: &id006 !ruby/object:Gem::Requirement
|
100
102
|
none: false
|
101
103
|
requirements:
|
@@ -106,10 +108,10 @@ dependencies:
|
|
106
108
|
- 0
|
107
109
|
version: "0"
|
108
110
|
type: :development
|
109
|
-
name: rr
|
110
|
-
prerelease: false
|
111
111
|
version_requirements: *id006
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
|
+
name: fakefs
|
114
|
+
prerelease: false
|
113
115
|
requirement: &id007 !ruby/object:Gem::Requirement
|
114
116
|
none: false
|
115
117
|
requirements:
|
@@ -120,10 +122,10 @@ dependencies:
|
|
120
122
|
- 0
|
121
123
|
version: "0"
|
122
124
|
type: :development
|
123
|
-
name: fakefs
|
124
|
-
prerelease: false
|
125
125
|
version_requirements: *id007
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
+
name: artifice
|
128
|
+
prerelease: false
|
127
129
|
requirement: &id008 !ruby/object:Gem::Requirement
|
128
130
|
none: false
|
129
131
|
requirements:
|
@@ -134,10 +136,10 @@ dependencies:
|
|
134
136
|
- 0
|
135
137
|
version: "0"
|
136
138
|
type: :development
|
137
|
-
name: artifice
|
138
|
-
prerelease: false
|
139
139
|
version_requirements: *id008
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
|
+
name: rest-client
|
142
|
+
prerelease: false
|
141
143
|
requirement: &id009 !ruby/object:Gem::Requirement
|
142
144
|
none: false
|
143
145
|
requirements:
|
@@ -158,10 +160,10 @@ dependencies:
|
|
158
160
|
- 0
|
159
161
|
version: 1.4.0
|
160
162
|
type: :runtime
|
161
|
-
name: rest-client
|
162
|
-
prerelease: false
|
163
163
|
version_requirements: *id009
|
164
164
|
- !ruby/object:Gem::Dependency
|
165
|
+
name: term-ansicolor
|
166
|
+
prerelease: false
|
165
167
|
requirement: &id010 !ruby/object:Gem::Requirement
|
166
168
|
none: false
|
167
169
|
requirements:
|
@@ -173,10 +175,10 @@ dependencies:
|
|
173
175
|
- 0
|
174
176
|
version: "1.0"
|
175
177
|
type: :runtime
|
176
|
-
name: term-ansicolor
|
177
|
-
prerelease: false
|
178
178
|
version_requirements: *id010
|
179
179
|
- !ruby/object:Gem::Dependency
|
180
|
+
name: launchy
|
181
|
+
prerelease: false
|
180
182
|
requirement: &id011 !ruby/object:Gem::Requirement
|
181
183
|
none: false
|
182
184
|
requirements:
|
@@ -189,10 +191,10 @@ dependencies:
|
|
189
191
|
- 2
|
190
192
|
version: 0.3.2
|
191
193
|
type: :runtime
|
192
|
-
name: launchy
|
193
|
-
prerelease: false
|
194
194
|
version_requirements: *id011
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
|
+
name: mechanize
|
197
|
+
prerelease: false
|
196
198
|
requirement: &id012 !ruby/object:Gem::Requirement
|
197
199
|
none: false
|
198
200
|
requirements:
|
@@ -205,8 +207,6 @@ dependencies:
|
|
205
207
|
- 0
|
206
208
|
version: 1.0.0
|
207
209
|
type: :runtime
|
208
|
-
name: mechanize
|
209
|
-
prerelease: false
|
210
210
|
version_requirements: *id012
|
211
211
|
description: Kensa is a command-line tool to help add-on providers integrating their services with Heroku. It manages manifest files, and provides a TDD-like approach for programmers to test and develop their APIs.
|
212
212
|
email: pedro@heroku.com
|