vbox-ng 0.1.3 → 1.0.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.
@@ -1,6 +1,26 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
+ TEST_VM_NAME = "vbox-ng-test-vm"
4
+ TEST_VM_UUID = 'ae340307-f472-4d63-80e7-855fca6808cb'
5
+
6
+ TEST_VM_NAME2 = "vbox-ng-test-vm2"
7
+ TEST_VM_UUID2 = 'ae340307-f472-4d63-80e7-855fca6808cc'
8
+
9
+ # tests with VBoxManage invocation
3
10
  describe "VBOX::VM" do
11
+ before :all do
12
+ vm = VBOX::VM.find TEST_VM_NAME
13
+ vm.destroy!.should(be_true) if vm
14
+
15
+ vm = VBOX::VM.create! :name => TEST_VM_NAME, :uuid => TEST_VM_UUID
16
+ vm.should be_instance_of(VBOX::VM)
17
+ end
18
+
19
+ after :all do
20
+ vm = VBOX::VM.find TEST_VM_NAME
21
+ vm.destroy!.should(be_true) if vm
22
+ end
23
+
4
24
  describe "all()" do
5
25
  it "returns array" do
6
26
  VBOX::VM.all.should be_instance_of(Array)
@@ -17,9 +37,6 @@ describe "VBOX::VM" do
17
37
  end
18
38
  end
19
39
 
20
- TEST_VM_NAME = "d0"
21
- TEST_VM_UUID = 'ae340207-f472-4d63-80e7-855fca6808cb'
22
-
23
40
  [:find, :[]].each do |method|
24
41
  describe method do
25
42
  it "finds VM by name" do
@@ -38,14 +55,16 @@ describe "VBOX::VM" do
38
55
  end
39
56
 
40
57
  it "finds nothing" do
41
- vm = VBOX::VM.send(method, "blah-blah-blah-unexistant-vm-#{rand}-#{rand}-#{rand}")
58
+ vm = VBOX::VM.send(method, "blah-blah-blah-unexistant-vm-139487098347510")
42
59
  vm.should be_nil
43
60
  end
44
61
  end
45
62
  end
46
63
 
47
64
  describe :dir_size do
48
- VBOX::VM.first.dir_size.should > 0
65
+ it "should be > 0" do
66
+ VBOX::VM.first.dir_size.should > 0
67
+ end
49
68
  end
50
69
 
51
70
  %w'start pause resume reset poweroff savestate acpipowerbutton acpisleepbutton destroy clone'.each do |action|
@@ -56,4 +75,81 @@ describe "VBOX::VM" do
56
75
  end
57
76
  end
58
77
  end
78
+
79
+ describe :create do
80
+ before(:all) do
81
+ vm = VBOX::VM.find TEST_VM_NAME2
82
+ vm.destroy!.should(be_true) if vm
83
+ end
84
+
85
+ it "should create VM" do
86
+ vm = VBOX::VM.new :name => TEST_VM_NAME2
87
+ Array(vm.metadata).should be_empty
88
+ vm = vm.create!
89
+ vm.should be_instance_of(VBOX::VM)
90
+ vm.metadata.size.should > 10
91
+ vm.reload_metadata
92
+ vm.name.should == TEST_VM_NAME2
93
+ end
94
+ end
95
+
96
+ describe :set_var do
97
+ it "should set vars" do
98
+ vm = VBOX::VM.find TEST_VM_NAME
99
+ h = { 'acpi' => 'on', 'cpus' => 4, 'memory' => 1024, 'vram' => 16 }
100
+ h.each{ |k,v| vm.set_var k,v }
101
+ vm.save
102
+ vm.reload_metadata
103
+ h.each{ |k,v| vm.metadata[k].to_s.should == v.to_s }
104
+
105
+ h = { 'acpi' => 'off', 'cpus' => 2, 'memory' => 512, 'vram' => 8 }
106
+ h.each{ |k,v| vm.set_var k,v }
107
+ vm.save
108
+ vm.reload_metadata
109
+ h.each{ |k,v| vm.metadata[k].to_s.should == v.to_s }
110
+ end
111
+ end
112
+
113
+ describe :set_vars do
114
+ it "should set vars" do
115
+ vm = VBOX::VM.find TEST_VM_NAME
116
+ h = { 'acpi' => 'on', 'cpus' => 4, 'memory' => 1024, 'vram' => 16 }
117
+ vm.set_vars h
118
+ vm.save
119
+ vm.reload_metadata
120
+ h.each{ |k,v| vm.metadata[k].to_s.should == v.to_s }
121
+
122
+ h = { 'acpi' => 'off', 'cpus' => 2, 'memory' => 512, 'vram' => 8 }
123
+ vm.set_vars h
124
+ vm.save
125
+ vm.reload_metadata
126
+ h.each{ |k,v| vm.metadata[k].to_s.should == v.to_s }
127
+ end
128
+ end
129
+ end
130
+
131
+ # tests w/o VBoxManage invocation
132
+ describe "VBOX::VM" do
133
+
134
+ describe :expand_glob do
135
+ def _glob2arr glob
136
+ r = []
137
+ VBOX::VM.expand_glob(glob){ |x| r << x }
138
+ r
139
+ end
140
+
141
+ {
142
+ 'xxx' => ['xxx'],
143
+ 'xx*' => ['xx*'],
144
+ 'a{1-2}' => ['a1', 'a2'],
145
+ '{0-11}b' => (0..11).map{ |x| "#{x}b" },
146
+ 'a{0-999}b' => (0..999).map{ |x| "a#{x}b" },
147
+ '{1-10}.{1-10}.{1-10}' => (0..999).map{ |x| ("%03i" % x).split('').join('.').gsub('0','10') }
148
+ }.each do |k,v|
149
+ it "should expand #{k.inspect}" do
150
+ _glob2arr(k).sort.should == v.sort
151
+ end
152
+ end
153
+ end
154
+
59
155
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "vbox-ng"
8
- s.version = "0.1.3"
8
+ s.version = "1.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andrey \"Zed\" Zaikin"]
12
- s.date = "2012-12-05"
12
+ s.date = "2012-12-08"
13
13
  s.description = "Create/start/stop/reboot/modify dozens of VirtualBox VMS with one short command."
14
14
  s.email = "zed.0xff@gmail.com"
15
15
  s.executables = ["vbox"]
@@ -33,7 +33,10 @@ Gem::Specification.new do |s|
33
33
  "lib/vbox/cli.rb",
34
34
  "lib/vbox/cmdlineapi.rb",
35
35
  "lib/vbox/vm.rb",
36
+ "spec/cmdlineapi_spec.rb",
36
37
  "spec/spec_helper.rb",
38
+ "spec/support/vboxmanage_simulator.rb",
39
+ "spec/support/vboxmanage_simulator.yml",
37
40
  "spec/vm_spec.rb",
38
41
  "vbox-ng.gemspec"
39
42
  ]
@@ -49,19 +52,22 @@ Gem::Specification.new do |s|
49
52
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
53
  s.add_runtime_dependency(%q<awesome_print>, ["~> 1.1.0"])
51
54
  s.add_development_dependency(%q<rspec>, ["~> 2.12.0"])
52
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
55
+ s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
53
56
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
57
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
54
58
  else
55
59
  s.add_dependency(%q<awesome_print>, ["~> 1.1.0"])
56
60
  s.add_dependency(%q<rspec>, ["~> 2.12.0"])
57
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
61
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
58
62
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
63
+ s.add_dependency(%q<simplecov>, [">= 0"])
59
64
  end
60
65
  else
61
66
  s.add_dependency(%q<awesome_print>, ["~> 1.1.0"])
62
67
  s.add_dependency(%q<rspec>, ["~> 2.12.0"])
63
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
68
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
64
69
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
70
+ s.add_dependency(%q<simplecov>, [">= 0"])
65
71
  end
66
72
  end
67
73
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vbox-ng
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-05 00:00:00.000000000 Z
12
+ date: 2012-12-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: awesome_print
@@ -48,7 +48,7 @@ dependencies:
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - ~>
51
+ - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
53
  version: 1.0.0
54
54
  type: :development
@@ -56,7 +56,7 @@ dependencies:
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - ~>
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.0.0
62
62
  - !ruby/object:Gem::Dependency
@@ -75,6 +75,22 @@ dependencies:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
77
  version: 1.8.4
78
+ - !ruby/object:Gem::Dependency
79
+ name: simplecov
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
78
94
  description: Create/start/stop/reboot/modify dozens of VirtualBox VMS with one short
79
95
  command.
80
96
  email: zed.0xff@gmail.com
@@ -100,7 +116,10 @@ files:
100
116
  - lib/vbox/cli.rb
101
117
  - lib/vbox/cmdlineapi.rb
102
118
  - lib/vbox/vm.rb
119
+ - spec/cmdlineapi_spec.rb
103
120
  - spec/spec_helper.rb
121
+ - spec/support/vboxmanage_simulator.rb
122
+ - spec/support/vboxmanage_simulator.yml
104
123
  - spec/vm_spec.rb
105
124
  - vbox-ng.gemspec
106
125
  homepage: http://github.com/zed-0xff/vbox-ng
@@ -118,7 +137,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
118
137
  version: '0'
119
138
  segments:
120
139
  - 0
121
- hash: -3292609850369803301
140
+ hash: -2700200473455994359
122
141
  required_rubygems_version: !ruby/object:Gem::Requirement
123
142
  none: false
124
143
  requirements: