shelly 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -45,6 +45,13 @@ describe Shelly::Client do
45
45
  end
46
46
  end
47
47
 
48
+ describe "#update_ssh_key" do
49
+ it "should send put with give SSH key" do
50
+ @client.should_receive(:put).with("/ssh_key", {:ssh_key => "abc"})
51
+ @client.update_ssh_key("abc")
52
+ end
53
+ end
54
+
48
55
  describe "#request_parameters" do
49
56
  it "should return hash of resquest parameters" do
50
57
  expected = {
@@ -100,27 +107,6 @@ describe Shelly::Client do
100
107
  @client.get('/account')
101
108
  end
102
109
 
103
- context "on 302 response code" do
104
- it "should raise UnauthorizedException" do
105
- @response.stub(:code).and_return(302)
106
- lambda {
107
- @client.get("/account")
108
- }.should raise_error(Shelly::Client::UnauthorizedException)
109
- end
110
- end
111
-
112
- context "on 406 response code" do
113
- it "should raise UnauthorizedException" do
114
- exception = RestClient::RequestFailed.new
115
- exception.stub(:http_code).and_return(406)
116
- @response.should_receive(:return!).and_raise(exception)
117
-
118
- lambda {
119
- @client.get("/account")
120
- }.should raise_error(Shelly::Client::UnauthorizedException)
121
- end
122
- end
123
-
124
110
  %w(404 422 500).each do |code|
125
111
  context "on #{code} response code" do
126
112
  it "should raise APIError" do
@@ -133,18 +119,6 @@ describe Shelly::Client do
133
119
  end
134
120
  end
135
121
  end
136
-
137
- context "on unsupported response code" do
138
- it "should raise UnsupportedResponseException exception" do
139
- exception = RestClient::RequestFailed.new
140
- exception.stub(:http_code).and_return(409)
141
- @response.should_receive(:return!).and_raise(exception)
142
-
143
- lambda {
144
- @client.get("/account")
145
- }.should raise_error(Shelly::Client::UnsupportedResponseException)
146
- end
147
- end
148
122
  end
149
123
 
150
124
  describe "#headers" do
@@ -171,4 +145,11 @@ describe Shelly::Client do
171
145
  @client.post("/account", :name => "pink-one")
172
146
  end
173
147
  end
148
+
149
+ describe "#put" do
150
+ it "should make PUT resquest to given path with parameters" do
151
+ @client.should_receive(:request).with("/account", :put, :name => "new-one")
152
+ @client.put("/account", :name => "new-one")
153
+ end
154
+ end
174
155
  end
@@ -105,4 +105,39 @@ describe Shelly::User do
105
105
  @user.should_not be_ssh_key_exists
106
106
  end
107
107
  end
108
+
109
+ describe "#upload_ssh_key" do
110
+ it "should read and upload user's public SSH key" do
111
+ @client.should_receive(:update_ssh_key).with("ssh-key AAbbcc")
112
+ @user.upload_ssh_key
113
+ end
114
+ end
115
+
116
+ describe "#login" do
117
+ before do
118
+ @client.stub(:token)
119
+ end
120
+
121
+ it "should try to login with given credentials" do
122
+ @client.should_receive(:token)
123
+ @user.login
124
+ end
125
+
126
+ context "on successful authentication" do
127
+ it "should save user's credentials" do
128
+ @user.should_receive(:save_credentials)
129
+ @user.login
130
+ end
131
+ end
132
+
133
+ context "on unsuccessful authentication" do
134
+ it "should not save credentials" do
135
+ @client.stub(:token).and_raise(RestClient::Unauthorized.new)
136
+ @client.should_not_receive(:save_credentials)
137
+ lambda {
138
+ @user.login
139
+ }.should raise_error
140
+ end
141
+ end
142
+ end
108
143
  end
metadata CHANGED
@@ -1,187 +1,145 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: shelly
3
- version: !ruby/object:Gem::Version
4
- hash: 11
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 10
10
- version: 0.0.10
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.11
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Shelly Cloud team
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-06 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2011-10-11 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: rspec
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2153530860 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: rake
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2153530860
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &2153530320 !ruby/object:Gem::Requirement
39
28
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
47
33
  type: :development
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: guard
51
34
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2153530320
36
+ - !ruby/object:Gem::Dependency
37
+ name: guard
38
+ requirement: &2153529900 !ruby/object:Gem::Requirement
53
39
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
61
44
  type: :development
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
64
- name: guard-rspec
65
45
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2153529900
47
+ - !ruby/object:Gem::Dependency
48
+ name: guard-rspec
49
+ requirement: &2153529360 !ruby/object:Gem::Requirement
67
50
  none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
73
- - 0
74
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
75
55
  type: :development
76
- version_requirements: *id004
77
- - !ruby/object:Gem::Dependency
78
- name: growl_notify
79
56
  prerelease: false
80
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *2153529360
58
+ - !ruby/object:Gem::Dependency
59
+ name: growl_notify
60
+ requirement: &2153528780 !ruby/object:Gem::Requirement
81
61
  none: false
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
87
- - 0
88
- version: "0"
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
89
66
  type: :development
90
- version_requirements: *id005
91
- - !ruby/object:Gem::Dependency
92
- name: rb-fsevent
93
67
  prerelease: false
94
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *2153528780
69
+ - !ruby/object:Gem::Dependency
70
+ name: rb-fsevent
71
+ requirement: &2153528240 !ruby/object:Gem::Requirement
95
72
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
101
- - 0
102
- version: "0"
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
103
77
  type: :development
104
- version_requirements: *id006
105
- - !ruby/object:Gem::Dependency
106
- name: fakefs
107
78
  prerelease: false
108
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *2153528240
80
+ - !ruby/object:Gem::Dependency
81
+ name: fakefs
82
+ requirement: &2153527700 !ruby/object:Gem::Requirement
109
83
  none: false
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- hash: 3
114
- segments:
115
- - 0
116
- version: "0"
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
117
88
  type: :development
118
- version_requirements: *id007
119
- - !ruby/object:Gem::Dependency
120
- name: thor
121
89
  prerelease: false
122
- requirement: &id008 !ruby/object:Gem::Requirement
90
+ version_requirements: *2153527700
91
+ - !ruby/object:Gem::Dependency
92
+ name: thor
93
+ requirement: &2153527140 !ruby/object:Gem::Requirement
123
94
  none: false
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- hash: 3
128
- segments:
129
- - 0
130
- version: "0"
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
131
99
  type: :runtime
132
- version_requirements: *id008
133
- - !ruby/object:Gem::Dependency
134
- name: rest-client
135
100
  prerelease: false
136
- requirement: &id009 !ruby/object:Gem::Requirement
101
+ version_requirements: *2153527140
102
+ - !ruby/object:Gem::Dependency
103
+ name: rest-client
104
+ requirement: &2153526720 !ruby/object:Gem::Requirement
137
105
  none: false
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- hash: 3
142
- segments:
143
- - 0
144
- version: "0"
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
145
110
  type: :runtime
146
- version_requirements: *id009
147
- - !ruby/object:Gem::Dependency
148
- name: json
149
111
  prerelease: false
150
- requirement: &id010 !ruby/object:Gem::Requirement
112
+ version_requirements: *2153526720
113
+ - !ruby/object:Gem::Dependency
114
+ name: json
115
+ requirement: &2153526180 !ruby/object:Gem::Requirement
151
116
  none: false
152
- requirements:
153
- - - ">="
154
- - !ruby/object:Gem::Version
155
- hash: 3
156
- segments:
157
- - 0
158
- version: "0"
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
159
121
  type: :runtime
160
- version_requirements: *id010
161
- - !ruby/object:Gem::Dependency
162
- name: launchy
163
122
  prerelease: false
164
- requirement: &id011 !ruby/object:Gem::Requirement
123
+ version_requirements: *2153526180
124
+ - !ruby/object:Gem::Dependency
125
+ name: launchy
126
+ requirement: &2153525660 !ruby/object:Gem::Requirement
165
127
  none: false
166
- requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- hash: 3
170
- segments:
171
- - 0
172
- version: "0"
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
173
132
  type: :runtime
174
- version_requirements: *id011
133
+ prerelease: false
134
+ version_requirements: *2153525660
175
135
  description: Tool for managing applications and clouds at shellycloud.com
176
- email:
136
+ email:
177
137
  - support@shellycloud.com
178
- executables:
138
+ executables:
179
139
  - shelly
180
140
  extensions: []
181
-
182
141
  extra_rdoc_files: []
183
-
184
- files:
142
+ files:
185
143
  - .gitignore
186
144
  - .travis.yml
187
145
  - Gemfile
@@ -193,8 +151,6 @@ files:
193
151
  - lib/shelly.rb
194
152
  - lib/shelly/app.rb
195
153
  - lib/shelly/base.rb
196
- - lib/shelly/cli/account.rb
197
- - lib/shelly/cli/apps.rb
198
154
  - lib/shelly/cli/main.rb
199
155
  - lib/shelly/client.rb
200
156
  - lib/shelly/helpers.rb
@@ -206,53 +162,39 @@ files:
206
162
  - spec/input_faker.rb
207
163
  - spec/shelly/app_spec.rb
208
164
  - spec/shelly/base_spec.rb
209
- - spec/shelly/cli/account_spec.rb
210
- - spec/shelly/cli/apps_spec.rb
211
165
  - spec/shelly/cli/main_spec.rb
212
166
  - spec/shelly/client_spec.rb
213
167
  - spec/shelly/user_spec.rb
214
168
  - spec/spec_helper.rb
215
- has_rdoc: true
216
169
  homepage: http://shellycloud.com
217
170
  licenses: []
218
-
219
171
  post_install_message:
220
172
  rdoc_options: []
221
-
222
- require_paths:
173
+ require_paths:
223
174
  - lib
224
- required_ruby_version: !ruby/object:Gem::Requirement
175
+ required_ruby_version: !ruby/object:Gem::Requirement
225
176
  none: false
226
- requirements:
227
- - - ">="
228
- - !ruby/object:Gem::Version
229
- hash: 3
230
- segments:
231
- - 0
232
- version: "0"
233
- required_rubygems_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ required_rubygems_version: !ruby/object:Gem::Requirement
234
182
  none: false
235
- requirements:
236
- - - ">="
237
- - !ruby/object:Gem::Version
238
- hash: 3
239
- segments:
240
- - 0
241
- version: "0"
183
+ requirements:
184
+ - - ! '>='
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
242
187
  requirements: []
243
-
244
188
  rubyforge_project: shelly
245
- rubygems_version: 1.3.7
189
+ rubygems_version: 1.8.10
246
190
  signing_key:
247
191
  specification_version: 3
248
192
  summary: Shelly Cloud command line tool
249
- test_files:
193
+ test_files:
250
194
  - spec/helpers.rb
251
195
  - spec/input_faker.rb
252
196
  - spec/shelly/app_spec.rb
253
197
  - spec/shelly/base_spec.rb
254
- - spec/shelly/cli/account_spec.rb
255
- - spec/shelly/cli/apps_spec.rb
256
198
  - spec/shelly/cli/main_spec.rb
257
199
  - spec/shelly/client_spec.rb
258
200
  - spec/shelly/user_spec.rb