unit-hosting 0.3.1 → 0.4.0

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.
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'spec_helper'
3
+ require 'unit-hosting/cache'
4
+
5
+ describe UnitHosting::Cache do
6
+ before{
7
+ @cache_file = Tempfile.new('cache')
8
+ @cache_file.close
9
+ @cache = UnitHosting::Cache.new(@cache_file.path)
10
+ }
11
+ after {
12
+ @cache_file.unlink
13
+ }
14
+ describe "#update_group!" do
15
+ context "when there are three gropus in cache." do
16
+ before{
17
+ @group222 = UnitHosting::Group.new("test-sg-222")
18
+ @cache.transaction { |ps|
19
+ ps["groups"] = [
20
+ UnitHosting::Group.new("test-sg-1"),
21
+ UnitHosting::Group.new("test-sg-2"),
22
+ UnitHosting::Group.new("test-sg-3"),
23
+ @group222
24
+ ].extend(UnitHosting::Groups)
25
+ }
26
+ }
27
+ it "update given group" do
28
+ expect(@group222).to receive(:update)
29
+ @cache.update_group!(@group222)
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,23 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'spec_helper'
3
+ require 'unit-hosting/cli'
4
+
5
+ describe UnitHosting::CLI do
6
+ before {
7
+ @cli = UnitHosting::CLI.new
8
+ }
9
+ describe "#version" do
10
+ it "print version string" do
11
+ expect(capture(:stdout) {
12
+ @cli.version}).to match /\d+\.\d+\.\d+/
13
+ end
14
+ end
15
+ describe "#dispatch" do
16
+ context "foo:bar" do
17
+ it "call @commands.foo_bar" do
18
+ expect(@cli.commands).to receive(:foo_bar).once
19
+ @cli.dispatch("foo:bar",[])
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,214 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'spec_helper'
3
+ require 'unit-hosting/commands'
4
+ describe UnitHosting::Commands do
5
+ before {
6
+ @endpoint = "https://example.net"
7
+ @commands = UnitHosting::Commands.new(@endpoint)
8
+ @commands.keyname = "rspec-unit-hosting-test"
9
+ }
10
+ describe "#login" do
11
+ before{
12
+ @commands.agent.stub(:login).and_return(nil)
13
+ @user1 = { :username =>"test-user-1", :password =>"correct-for-1", :bad_password =>"bad-for-1"}
14
+ expect(Keystorage).to receive(:set).
15
+ with(@commands.keyname,@user1[:username],@user1[:password]).once
16
+ }
17
+ context "put collect username and password." do
18
+ before {
19
+ @commands.agent.stub(:login?).and_return(true)
20
+ }
21
+ context "answer collect username and password" do
22
+ before { }
23
+ it "returns true." do
24
+ @commands.stub(:ask) { |question, &details|
25
+ HighLine::Question.new(question, String, &details)
26
+ case question
27
+ when "Enter user: "
28
+ "test-user-1"
29
+ when "Enter your password: "
30
+ "correct-for-1"
31
+ end
32
+ }
33
+ $stderr.should_receive(:puts).with("login OK").once
34
+ @commands.login
35
+ end
36
+ end
37
+
38
+ end
39
+ context "put bad pair of username and password." do
40
+ before{
41
+ @commands.agent.stub(:login?).and_return(false,true)
42
+ }
43
+ it "asks username and password again." do
44
+ $stderr.should_receive(:puts).with("login OK").once
45
+ $stderr.should_receive(:puts).with("password mismatch").once
46
+ expect(@commands).to receive(:ask).
47
+ with("Enter user: ").and_return(@user1[:username]).twice
48
+ expect(@commands).to receive(:ask).
49
+ with("Enter your password: ").and_return(@user1[:password]).twice
50
+ @commands.login
51
+ end
52
+ end
53
+ end
54
+
55
+ describe "#logout" do
56
+ it "removes Keychain entry." do
57
+ expect(Keystorage).to receive(:delete).with(@commands.keyname).once
58
+ @commands.logout
59
+ end
60
+ end
61
+
62
+ describe "#groups" do
63
+ it "returns groups." do
64
+ expect(@commands.cache).to receive(:groups).with().once
65
+ expect($stdout).to receive(:puts).once
66
+ @commands.groups
67
+ end
68
+ end
69
+
70
+ describe "#group" do
71
+ it "asks group andreturns group." do
72
+ expect(@commands).to receive(:ask_group).once
73
+ @commands.group
74
+ end
75
+ end
76
+ describe "#update" do
77
+ before{
78
+ @cache_file = Tempfile.new('cache')
79
+ @cache_file.close
80
+ @commands.stub(:cache_file).and_return(@cache_file.path)
81
+ @commands.stub(:start).and_return true
82
+ }
83
+ after {
84
+ @cache_file.unlink
85
+ }
86
+ context "when --all is set" do
87
+ before{
88
+ @groups = [].extend(UnitHosting::Groups)
89
+ (1..10).each { |n|
90
+ group = UnitHosting::Group.new("test-sg-#{n}")
91
+ group.key = "dummy-key-#{n}"
92
+ # group.stub(:update).and_return([])
93
+ @groups << group
94
+ }
95
+ @commands.agent.stub(:groups).and_return(@groups)
96
+
97
+ # curl -X POST "https://cloud.unit-hosting.com/xmlrpc"
98
+ xml = <<XML
99
+ <?xml version="1.0" encoding="UTF-8"?>
100
+ <methodResponse>
101
+ <params>
102
+ <param><value><array><data>
103
+ <value><struct>
104
+ <member><name>instance_id</name><value><string>test-vm-1280</string></value></member>
105
+ <member><name>display_name</name><value><string>test-server-1</string></value></member>
106
+ <member><name>api_key</name><value><string>dummy-api-key-00398342190234</string></value></member>
107
+ <member><name>status</name><value><string>halted</string></value></member>
108
+ </struct></value>
109
+ <value><struct>
110
+ <member><name>instance_id</name><value><string>test-vm-1645</string></value></member>
111
+ <member><name>display_name</name><value><string>test-server-2</string></value></member>
112
+ <member><name>api_key</name><value><string/></value></member>
113
+ <member><name>status</name><value><string>halted</string></value></member>
114
+ </struct></value>
115
+ </data></array></value></param>
116
+ </params>
117
+ </methodResponse>
118
+ XML
119
+ stub_request(:post, "https://cloud.unit-hosting.com/xmlrpc").
120
+ to_return(:status =>200, :body => xml, :headers => {:content_type =>'text/xml; charset=utf-8'})
121
+ }
122
+ it "updates all cache" do
123
+ @commands.update(true)
124
+ end
125
+ end
126
+ context "when --all is not set" do
127
+ before {
128
+ @group = UnitHosting::Group.new("test-sg-9")
129
+ @group.key = "dummy-key-9"
130
+ @commands.stub(:ask_group).and_return(@group)
131
+ }
132
+ it "updates cache of specified group" do
133
+ @group.should_receive(:update)
134
+ @commands.update
135
+ end
136
+ end
137
+ end
138
+
139
+ describe "#start" do
140
+ context "when still logged in" do
141
+ before{
142
+ @commands.agent.stub(:login?).and_return(true)
143
+ }
144
+ it "returns true" do
145
+ expect(@commands.send(:start)).to be_true
146
+ end
147
+ end
148
+ context "failed login" do
149
+ before{
150
+ @commands.agent.stub(:login?).and_return(false)
151
+ @commands.agent.stub(:login).and_return()
152
+ expect(@commands).to receive(:login)
153
+ }
154
+ it "raises LoginError exception." do
155
+ expect{
156
+ @commands.send(:start)
157
+ }.to raise_error(UnitHosting::Commands::LoginError)
158
+ end
159
+ end
160
+ context "when not logged in" do
161
+ before{
162
+ @commands.agent.stub(:login?).and_return(false,true)
163
+ }
164
+ context "when there is a user-entry in keystorage" do
165
+ before {
166
+ Keystorage.stub(:list).and_return(["test-user-1"])
167
+ Keystorage.stub(:get).with(@commands.keyname,"test-user-1").and_return("test-password-1")
168
+ }
169
+ it "try to login by using username" do
170
+ expect(@commands.agent).to receive(:login).with("test-user-1","test-password-1").once
171
+ @commands.send(:start)
172
+ end
173
+ end
174
+ context "when there is no user-entry in keystorage" do
175
+ before {
176
+ Keystorage.stub(:list).and_return([])
177
+ }
178
+ it "asks username" do
179
+ expect(@commands).to receive(:login)
180
+ @commands.send(:start)
181
+ end
182
+ end
183
+ #it "returns true" do
184
+ # expect(@commands.send(:start)).to be_true
185
+ #end
186
+ end
187
+ end
188
+ describe "#ask_group" do
189
+ before{
190
+ @groups = ['test-sg-1','test-sg-2','test-sg-3','test-123'].extend(UnitHosting::Groups)
191
+ @commands.stub(:ask) { |question, &details|
192
+ HighLine::Question.new(question, String, &details)
193
+ "test-sg-2"
194
+ }
195
+ }
196
+ context "when group_id is not given" do
197
+ it "asks group_id" do
198
+ groups = [UnitHosting::Group.new('test-sg-1'),
199
+ UnitHosting::Group.new('test-sg-2'),
200
+ UnitHosting::Group.new('test-sg-3')].extend(UnitHosting::Groups)
201
+ expect(capture(:stdout) {
202
+ expect(@commands.send(:ask_group,nil,groups).instance_id).to eq "test-sg-2"
203
+ }).to match /test\-sg\-3/
204
+
205
+ end
206
+ end
207
+ end
208
+ describe "#cache_file" do
209
+ it "returns cache file path" do
210
+ expect(@commands.send(:cache_file,"foo.cache")).to match /foo\.cache$/
211
+ end
212
+ end
213
+
214
+ end
@@ -0,0 +1,64 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'spec_helper'
3
+ require 'unit-hosting/group'
4
+
5
+ describe UnitHosting::Groups do
6
+ before {
7
+ @groups = [
8
+ UnitHosting::Group.new("test-sg-123"),
9
+ UnitHosting::Group.new("test-sg-789"),
10
+ ].extend(UnitHosting::Groups)
11
+ }
12
+ describe "#ids" do
13
+ it "returns array of instance_id" do
14
+ expect(@groups.ids).to eq ["test-sg-123","test-sg-789"]
15
+ end
16
+ end
17
+ describe "#tablize" do
18
+ context "no groups" do
19
+ before {
20
+ @groups = [].extend(UnitHosting::Groups)
21
+ }
22
+ it "returns 'no groups'" do
23
+ expect(@groups.tablize).to match /no groups/
24
+ end
25
+ end
26
+ context "have 2 groups" do
27
+ it "returns table string" do
28
+ expect(@groups.tablize).to match /test-sg-789/
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ describe UnitHosting::Group do
35
+ before {
36
+ @group = UnitHosting::Group.new("test-sg-123")
37
+ }
38
+ describe "#tablize" do
39
+ context "no vms" do
40
+ it "returns 'no vms'" do
41
+ expect(@group.tablize).to match /no vms/
42
+ end
43
+ end
44
+ context "have 2 vms" do
45
+ before{
46
+ @group.vms = [
47
+ {
48
+ "instance_id" => "test-vm-1",
49
+ "status" =>"halted",
50
+ "display_name" =>"test-server-1"
51
+ },
52
+ {
53
+ "instance_id" => "test-vm-2",
54
+ "status" =>"halted",
55
+ "display_name" =>"test-server-2"
56
+ }
57
+ ]
58
+ }
59
+ it "returns table string" do
60
+ expect(@group.tablize).to match /test-server-2/
61
+ end
62
+ end
63
+ end
64
+ end
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: unit-hosting 0.3.1 ruby lib
5
+ # stub: unit-hosting 0.4.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "unit-hosting"
9
- s.version = "0.3.1"
9
+ s.version = "0.4.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Yoshihiro TAKAHARA"]
14
- s.date = "2014-02-02"
14
+ s.date = "2014-02-08"
15
15
  s.description = "This is a command to manage virtual servers on UnitHosting(http://www.unit-hosting.com)."
16
16
  s.email = "y.takahara@gmail.com"
17
17
  s.executables = ["unit-hosting"]
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
  "README.md"
21
21
  ]
22
22
  s.files = [
23
+ ".coveralls.yml",
23
24
  ".document",
24
25
  ".travis.yml",
25
26
  "Gemfile",
@@ -39,8 +40,16 @@ Gem::Specification.new do |s|
39
40
  "lib/unit-hosting/cli.rb",
40
41
  "lib/unit-hosting/commands.rb",
41
42
  "lib/unit-hosting/group.rb",
42
- "test/helper.rb",
43
- "test/test_unit-hosting.rb",
43
+ "spec/spec_helper.rb",
44
+ "spec/unit-hosting/agent_spec.rb",
45
+ "spec/unit-hosting/api/base_spec.rb",
46
+ "spec/unit-hosting/api/vm_group_spec.rb",
47
+ "spec/unit-hosting/api/vm_recipe_spec.rb",
48
+ "spec/unit-hosting/api/vm_spec.rb",
49
+ "spec/unit-hosting/cache_spec.rb",
50
+ "spec/unit-hosting/cli_spec.rb",
51
+ "spec/unit-hosting/commands_spec.rb",
52
+ "spec/unit-hosting/group_spec.rb",
44
53
  "unit-hosting.gemspec"
45
54
  ]
46
55
  s.homepage = "http://github.com/tumf/unit-hosting"
@@ -54,34 +63,58 @@ Gem::Specification.new do |s|
54
63
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
55
64
  s.add_runtime_dependency(%q<mutter>, [">= 0"])
56
65
  s.add_runtime_dependency(%q<keystorage>, ["~> 0.4.13"])
57
- s.add_runtime_dependency(%q<mechanize>, [">= 0"])
58
66
  s.add_runtime_dependency(%q<highline>, ["> 1.6"])
59
67
  s.add_runtime_dependency(%q<progressbar>, [">= 0.9.0"])
60
68
  s.add_runtime_dependency(%q<httpclient>, [">= 2.1.6.1"])
61
69
  s.add_runtime_dependency(%q<command-line-utils>, [">= 0.0.1"])
62
- s.add_development_dependency(%q<bundler>, [">= 0"])
70
+ s.add_runtime_dependency(%q<active_support>, [">= 0"])
71
+ s.add_runtime_dependency(%q<i18n>, [">= 0"])
72
+ s.add_runtime_dependency(%q<nokogiri>, ["~> 1.5.9"])
73
+ s.add_runtime_dependency(%q<mechanize>, ["= 2.6.0"])
63
74
  s.add_development_dependency(%q<jeweler>, [">= 0"])
75
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
76
+ s.add_development_dependency(%q<coveralls>, [">= 0"])
77
+ s.add_development_dependency(%q<bundler>, [">= 0"])
78
+ s.add_development_dependency(%q<rake>, [">= 0"])
79
+ s.add_development_dependency(%q<rspec>, [">= 0"])
80
+ s.add_development_dependency(%q<webmock>, [">= 0"])
64
81
  else
65
82
  s.add_dependency(%q<mutter>, [">= 0"])
66
83
  s.add_dependency(%q<keystorage>, ["~> 0.4.13"])
67
- s.add_dependency(%q<mechanize>, [">= 0"])
68
84
  s.add_dependency(%q<highline>, ["> 1.6"])
69
85
  s.add_dependency(%q<progressbar>, [">= 0.9.0"])
70
86
  s.add_dependency(%q<httpclient>, [">= 2.1.6.1"])
71
87
  s.add_dependency(%q<command-line-utils>, [">= 0.0.1"])
72
- s.add_dependency(%q<bundler>, [">= 0"])
88
+ s.add_dependency(%q<active_support>, [">= 0"])
89
+ s.add_dependency(%q<i18n>, [">= 0"])
90
+ s.add_dependency(%q<nokogiri>, ["~> 1.5.9"])
91
+ s.add_dependency(%q<mechanize>, ["= 2.6.0"])
73
92
  s.add_dependency(%q<jeweler>, [">= 0"])
93
+ s.add_dependency(%q<simplecov>, [">= 0"])
94
+ s.add_dependency(%q<coveralls>, [">= 0"])
95
+ s.add_dependency(%q<bundler>, [">= 0"])
96
+ s.add_dependency(%q<rake>, [">= 0"])
97
+ s.add_dependency(%q<rspec>, [">= 0"])
98
+ s.add_dependency(%q<webmock>, [">= 0"])
74
99
  end
75
100
  else
76
101
  s.add_dependency(%q<mutter>, [">= 0"])
77
102
  s.add_dependency(%q<keystorage>, ["~> 0.4.13"])
78
- s.add_dependency(%q<mechanize>, [">= 0"])
79
103
  s.add_dependency(%q<highline>, ["> 1.6"])
80
104
  s.add_dependency(%q<progressbar>, [">= 0.9.0"])
81
105
  s.add_dependency(%q<httpclient>, [">= 2.1.6.1"])
82
106
  s.add_dependency(%q<command-line-utils>, [">= 0.0.1"])
83
- s.add_dependency(%q<bundler>, [">= 0"])
107
+ s.add_dependency(%q<active_support>, [">= 0"])
108
+ s.add_dependency(%q<i18n>, [">= 0"])
109
+ s.add_dependency(%q<nokogiri>, ["~> 1.5.9"])
110
+ s.add_dependency(%q<mechanize>, ["= 2.6.0"])
84
111
  s.add_dependency(%q<jeweler>, [">= 0"])
112
+ s.add_dependency(%q<simplecov>, [">= 0"])
113
+ s.add_dependency(%q<coveralls>, [">= 0"])
114
+ s.add_dependency(%q<bundler>, [">= 0"])
115
+ s.add_dependency(%q<rake>, [">= 0"])
116
+ s.add_dependency(%q<rspec>, [">= 0"])
117
+ s.add_dependency(%q<webmock>, [">= 0"])
85
118
  end
86
119
  end
87
120
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unit-hosting
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshihiro TAKAHARA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-02 00:00:00.000000000 Z
11
+ date: 2014-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mutter
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.4.13
41
- - !ruby/object:Gem::Dependency
42
- name: mechanize
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: highline
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +94,104 @@ dependencies:
108
94
  - - '>='
109
95
  - !ruby/object:Gem::Version
110
96
  version: 0.0.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: active_support
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: i18n
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: nokogiri
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 1.5.9
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: 1.5.9
139
+ - !ruby/object:Gem::Dependency
140
+ name: mechanize
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 2.6.0
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: 2.6.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: jeweler
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: simplecov
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: coveralls
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
111
195
  - !ruby/object:Gem::Dependency
112
196
  name: bundler
113
197
  requirement: !ruby/object:Gem::Requirement
@@ -123,7 +207,35 @@ dependencies:
123
207
  - !ruby/object:Gem::Version
124
208
  version: '0'
125
209
  - !ruby/object:Gem::Dependency
126
- name: jeweler
210
+ name: rake
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: rspec
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - '>='
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: webmock
127
239
  requirement: !ruby/object:Gem::Requirement
128
240
  requirements:
129
241
  - - '>='
@@ -145,6 +257,7 @@ extra_rdoc_files:
145
257
  - LICENSE.txt
146
258
  - README.md
147
259
  files:
260
+ - .coveralls.yml
148
261
  - .document
149
262
  - .travis.yml
150
263
  - Gemfile
@@ -164,8 +277,16 @@ files:
164
277
  - lib/unit-hosting/cli.rb
165
278
  - lib/unit-hosting/commands.rb
166
279
  - lib/unit-hosting/group.rb
167
- - test/helper.rb
168
- - test/test_unit-hosting.rb
280
+ - spec/spec_helper.rb
281
+ - spec/unit-hosting/agent_spec.rb
282
+ - spec/unit-hosting/api/base_spec.rb
283
+ - spec/unit-hosting/api/vm_group_spec.rb
284
+ - spec/unit-hosting/api/vm_recipe_spec.rb
285
+ - spec/unit-hosting/api/vm_spec.rb
286
+ - spec/unit-hosting/cache_spec.rb
287
+ - spec/unit-hosting/cli_spec.rb
288
+ - spec/unit-hosting/commands_spec.rb
289
+ - spec/unit-hosting/group_spec.rb
169
290
  - unit-hosting.gemspec
170
291
  homepage: http://github.com/tumf/unit-hosting
171
292
  licenses: