specinfra 1.7.0 → 1.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2b5eb5cdd5654ade31e57548e585ca3f90622a72
4
- data.tar.gz: 4f5fb42d69cd7e1f52a69408f424771eb54b226f
3
+ metadata.gz: e5c2b978aecc51f4b3eeb4606557d80a3f78539d
4
+ data.tar.gz: 911aa8bac641318bcdee6fb1708c00ffb2e729b8
5
5
  SHA512:
6
- metadata.gz: aed5b95b5bcb33e7c17cba8e8fb2c953142e86b63eeed6ee7eb93afa47c510c146b88948ec0e5d0591202767253d4e0f177dd1e49997e7dd002c843e83841f17
7
- data.tar.gz: 3dd99383ec435fcb3bc65749a09b8d603c58693bb817997891b792de2fdad7c8111998749765a1eb32609fbd974ded943658277b4766a2d8da685796ac826406
6
+ metadata.gz: b034ba312e05484ca2585d3312e6ed0a1e305120f634cc331630b67cd964f5b7791ac7c31e1cffe0f48ab100d8a51c3d2909b70d14733acb13bf851ddddf77b6
7
+ data.tar.gz: 50735443098590029652c18dce3b20e6ebb251acfd27320d9853bcfc8274d6ba0344d0bb507440c8af84a7625658028eee612b1774932d4355f0c12c1b369d50
@@ -196,19 +196,24 @@ module SpecInfra
196
196
  end
197
197
  { :family => 'SuSE', :release => release }
198
198
  elsif run_command('ls /etc/debian_version').success?
199
- lsb_release = run_command("lsb_release -i")
199
+ lsb_release = run_command("lsb_release -ir")
200
200
  if lsb_release.success?
201
- distro = $' if lsb_release.stdout =~ /:/
201
+ if lsb_release.stdout =~ /:/
202
+ distro = lsb_release.stdout.split("\n").first.split(':').last
203
+ release = lsb_release.stdout.split("\n").last.split(':').last.strip
204
+ end
202
205
  else
203
206
  lsb_release = run_command("cat /etc/lsb-release")
204
207
  if lsb_release.success?
205
208
  lsb_release.stdout.each_line do |line|
206
- distro = $' if line =~ /^DISTRIB_ID=/
209
+ distro = line.split('=').last if line =~ /^DISTRIB_ID=/
210
+ release = line.split('=').last.strip if line =~ /^DISTRIB_RELEASE=/
207
211
  end
208
212
  end
209
213
  end
210
214
  distro ||= 'Debian'
211
- { :family => distro.strip, :release => nil }
215
+ release ||= nil
216
+ { :family => distro.strip, :release => release }
212
217
  elsif run_command('ls /etc/gentoo-release').success?
213
218
  { :family => 'Gentoo', :release => nil }
214
219
  elsif run_command('ls /usr/lib/setup/Plamo-*').success?
@@ -1,3 +1,3 @@
1
1
  module SpecInfra
2
- VERSION = "1.7.0"
2
+ VERSION = "1.8.0"
3
3
  end
@@ -30,3 +30,61 @@ describe 'build command with path' do
30
30
  end
31
31
  end
32
32
  end
33
+
34
+ describe 'check_os' do
35
+ context 'test ubuntu with lsb_release command' do
36
+ subject { backend.check_os }
37
+ it do
38
+ mock_success_response = double(
39
+ :run_command_response,
40
+ :success? => true,
41
+ :stdout => "Distributor ID:\tUbuntu\nRelease:\t12.04\n"
42
+ )
43
+ mock_failure_response = double :run_command_response, :success? => false
44
+ backend.should_receive(:run_command).at_least(1).times do |args|
45
+ if ['ls /etc/debian_version', 'lsb_release -ir'].include? args
46
+ mock_success_response
47
+ else
48
+ mock_failure_response
49
+ end
50
+ end
51
+ should eq({:family => 'Ubuntu', :release => '12.04'})
52
+ end
53
+ end
54
+
55
+ context 'test ubuntu with /etc/lsb-release' do
56
+ subject { backend.check_os }
57
+ it do
58
+ mock_success_response = double(
59
+ :run_command_response,
60
+ :success? => true,
61
+ :stdout => %Q(DISTRIB_ID=Ubuntu
62
+ DISTRIB_RELEASE=12.04
63
+ DISTRIB_CODENAME=precise
64
+ DISTRIB_DESCRIPTION="Ubuntu 12.04.2 LTS"
65
+ )
66
+ )
67
+ mock_failure_response = double :run_command_response, :success? => false
68
+ backend.should_receive(:run_command).at_least(1).times do |args|
69
+ if ['ls /etc/debian_version', 'cat /etc/lsb-release'].include? args
70
+ mock_success_response
71
+ else
72
+ mock_failure_response
73
+ end
74
+ end
75
+ should eq({:family => 'Ubuntu', :release => '12.04'})
76
+ end
77
+ end
78
+
79
+ context 'test debian (no lsb_release or lsb-release)' do
80
+ subject { backend.check_os }
81
+ it do
82
+ mock_success_response = double :run_command_response, :success? => true
83
+ mock_failure_response = double :run_command_response, :success? => false
84
+ backend.should_receive(:run_command).at_least(1).times do |args|
85
+ args == 'ls /etc/debian_version' ? mock_success_response : mock_failure_response
86
+ end
87
+ should eq({:family => 'Debian', :release => nil})
88
+ end
89
+ end
90
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: specinfra
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gosuke Miyashita
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-30 00:00:00.000000000 Z
11
+ date: 2014-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler