beaker-docker 1.3.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -688,7 +688,7 @@ module Beaker
688
688
  'platform' => platform,
689
689
  'image' => 'foobar',
690
690
  })
691
- expect( dockerfile ).to be =~ /ENV container docker/
691
+ expect( dockerfile ).to match(/ENV container docker/)
692
692
  end
693
693
  end
694
694
 
@@ -705,7 +705,7 @@ module Beaker
705
705
  ]
706
706
  })
707
707
 
708
- expect( dockerfile ).to be =~ /RUN special one\nRUN special two\nRUN special three/
708
+ expect( dockerfile ).to match(/RUN special one\nRUN special two\nRUN special three/)
709
709
  end
710
710
  end
711
711
 
@@ -722,7 +722,7 @@ module Beaker
722
722
  ]
723
723
  })
724
724
 
725
- expect( dockerfile ).to be =~ /RUN special one\nRUN special two\nRUN special three/
725
+ expect( dockerfile ).to match(/RUN special one\nRUN special two\nRUN special three/)
726
726
  end
727
727
  end
728
728
 
@@ -735,7 +735,7 @@ module Beaker
735
735
  'docker_image_entrypoint' => '/bin/bash'
736
736
  })
737
737
 
738
- expect( dockerfile ).to be =~ %r{ENTRYPOINT /bin/bash}
738
+ expect( dockerfile ).to match(%r{ENTRYPOINT /bin/bash})
739
739
  end
740
740
  end
741
741
 
@@ -746,7 +746,7 @@ module Beaker
746
746
  'image' => 'foobar',
747
747
  })
748
748
 
749
- expect( dockerfile ).to be =~ /RUN zypper -n in openssh/
749
+ expect( dockerfile ).to match(/zypper -n in openssh/)
750
750
  end
751
751
 
752
752
  (22..39).to_a.each do | fedora_release |
@@ -757,7 +757,7 @@ module Beaker
757
757
  'image' => 'foobar',
758
758
  })
759
759
 
760
- expect( dockerfile ).to be =~ /RUN dnf install -y sudo/
760
+ expect( dockerfile ).to match(/dnf install -y sudo/)
761
761
  end
762
762
  end
763
763
 
@@ -768,9 +768,48 @@ module Beaker
768
768
  'image' => 'foobar',
769
769
  })
770
770
 
771
- expect( dockerfile ).to match(/RUN pacman --sync --refresh --noconfirm archlinux-keyring/)
772
- expect( dockerfile ).to match(/RUN pacman --sync --refresh --noconfirm --sysupgrade/)
773
- expect( dockerfile ).to match(/RUN pacman --sync --noconfirm curl ntp net-tools openssh/)
771
+ expect( dockerfile ).to match(/pacman --sync --refresh --noconfirm archlinux-keyring/)
772
+ expect( dockerfile ).to match(/pacman --sync --refresh --noconfirm --sysupgrade/)
773
+ expect( dockerfile ).to match(/pacman --sync --noconfirm curl ntp net-tools openssh/)
774
+ end
775
+ end
776
+
777
+ describe '#fix_ssh' do
778
+ let(:test_container) { double('container') }
779
+ let(:host) { hosts[0] }
780
+ before :each do
781
+ expect(test_container).to receive(:id).and_return('abcdef')
782
+ end
783
+
784
+ it 'should call exec once when called without host' do
785
+ expect(test_container).to receive(:exec).once.with(
786
+ include(/PermitRootLogin/) &&
787
+ include(/PasswordAuthentication/) &&
788
+ include(/UseDNS/) &&
789
+ include(/MaxAuthTries/)
790
+ )
791
+ docker.send(:fix_ssh, test_container)
792
+ end
793
+
794
+ it 'should exec sshd on alpine' do
795
+ host['platform'] = 'alpine-3.8-x86_64'
796
+ expect(test_container).to receive(:exec).with(array_including('sed'))
797
+ expect(test_container).to receive(:exec).with(%w[/usr/sbin/sshd])
798
+ docker.send(:fix_ssh, test_container, host)
799
+ end
800
+
801
+ it 'should restart ssh service on ubuntu' do
802
+ host['platform'] = 'ubuntu-20.04-x86_64'
803
+ expect(test_container).to receive(:exec).with(array_including('sed'))
804
+ expect(test_container).to receive(:exec).with(%w[service ssh restart])
805
+ docker.send(:fix_ssh, test_container, host)
806
+ end
807
+
808
+ it 'should restart sshd service otherwise' do
809
+ host['platform'] = 'boogeyman-2000-x86_64'
810
+ expect(test_container).to receive(:exec).with(array_including('sed'))
811
+ expect(test_container).to receive(:exec).with(%w[service sshd restart])
812
+ docker.send(:fix_ssh, test_container, host)
774
813
  end
775
814
  end
776
815
  end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
- require 'rspec/its'
1
+ # frozen_string_literal: true
2
+
2
3
  require 'beaker'
3
4
 
4
5
  begin
@@ -6,17 +7,17 @@ begin
6
7
  require 'simplecov-console'
7
8
  require 'codecov'
8
9
  rescue LoadError
10
+ # Do nothing if no required gem installed
9
11
  else
10
12
  SimpleCov.start do
11
13
  track_files 'lib/**/*.rb'
12
14
 
13
15
  add_filter '/spec'
14
-
15
- enable_coverage :branch
16
-
17
16
  # do not track vendored files
18
17
  add_filter '/vendor'
19
18
  add_filter '/.vendor'
19
+
20
+ enable_coverage :branch
20
21
  end
21
22
 
22
23
  SimpleCov.formatters = [
@@ -25,7 +26,7 @@ else
25
26
  ]
26
27
  end
27
28
 
28
- Dir.glob(Dir.pwd + '/lib/beaker/hypervisor/*.rb') {|file| require file}
29
+ Dir['./lib/beaker/hypervisor/*.rb'].sort.each { |file| require file }
29
30
 
30
31
  # setup & require beaker's spec_helper.rb
31
32
  beaker_gem_spec = Gem::Specification.find_by_name('beaker')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beaker-docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vox Pupuli
@@ -11,8 +11,42 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2022-12-18 00:00:00.000000000 Z
14
+ date: 2023-03-24 00:00:00.000000000 Z
15
15
  dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: fakefs
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: '1.3'
23
+ - - "<"
24
+ - !ruby/object:Gem::Version
25
+ version: '3.0'
26
+ type: :development
27
+ prerelease: false
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '1.3'
33
+ - - "<"
34
+ - !ruby/object:Gem::Version
35
+ version: '3.0'
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '13.0'
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '13.0'
16
50
  - !ruby/object:Gem::Dependency
17
51
  name: rspec
18
52
  requirement: !ruby/object:Gem::Requirement
@@ -28,61 +62,75 @@ dependencies:
28
62
  - !ruby/object:Gem::Version
29
63
  version: '3.0'
30
64
  - !ruby/object:Gem::Dependency
31
- name: rspec-its
65
+ name: rubocop
32
66
  requirement: !ruby/object:Gem::Requirement
33
67
  requirements:
34
68
  - - "~>"
35
69
  - !ruby/object:Gem::Version
36
- version: '1.3'
70
+ version: 1.12.0
37
71
  type: :development
38
72
  prerelease: false
39
73
  version_requirements: !ruby/object:Gem::Requirement
40
74
  requirements:
41
75
  - - "~>"
42
76
  - !ruby/object:Gem::Version
43
- version: '1.3'
77
+ version: 1.12.0
44
78
  - !ruby/object:Gem::Dependency
45
- name: fakefs
79
+ name: rubocop-performance
46
80
  requirement: !ruby/object:Gem::Requirement
47
81
  requirements:
48
82
  - - "~>"
49
83
  - !ruby/object:Gem::Version
50
- version: '1.3'
84
+ version: '1.10'
51
85
  type: :development
52
86
  prerelease: false
53
87
  version_requirements: !ruby/object:Gem::Requirement
54
88
  requirements:
55
89
  - - "~>"
56
90
  - !ruby/object:Gem::Version
57
- version: '1.3'
91
+ version: '1.10'
58
92
  - !ruby/object:Gem::Dependency
59
- name: rake
93
+ name: rubocop-rake
60
94
  requirement: !ruby/object:Gem::Requirement
61
95
  requirements:
62
96
  - - "~>"
63
97
  - !ruby/object:Gem::Version
64
- version: '13.0'
98
+ version: '0.2'
65
99
  type: :development
66
100
  prerelease: false
67
101
  version_requirements: !ruby/object:Gem::Requirement
68
102
  requirements:
69
103
  - - "~>"
70
104
  - !ruby/object:Gem::Version
71
- version: '13.0'
105
+ version: '0.2'
72
106
  - !ruby/object:Gem::Dependency
73
- name: stringify-hash
107
+ name: rubocop-rspec
74
108
  requirement: !ruby/object:Gem::Requirement
75
109
  requirements:
76
- - - "~>"
110
+ - - ">="
77
111
  - !ruby/object:Gem::Version
78
- version: 0.0.0
112
+ version: '1.44'
113
+ type: :development
114
+ prerelease: false
115
+ version_requirements: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '1.44'
120
+ - !ruby/object:Gem::Dependency
121
+ name: beaker
122
+ requirement: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '4.34'
79
127
  type: :runtime
80
128
  prerelease: false
81
129
  version_requirements: !ruby/object:Gem::Requirement
82
130
  requirements:
83
- - - "~>"
131
+ - - ">="
84
132
  - !ruby/object:Gem::Version
85
- version: 0.0.0
133
+ version: '4.34'
86
134
  - !ruby/object:Gem::Dependency
87
135
  name: docker-api
88
136
  requirement: !ruby/object:Gem::Requirement
@@ -98,20 +146,20 @@ dependencies:
98
146
  - !ruby/object:Gem::Version
99
147
  version: '2.1'
100
148
  - !ruby/object:Gem::Dependency
101
- name: beaker
149
+ name: stringify-hash
102
150
  requirement: !ruby/object:Gem::Requirement
103
151
  requirements:
104
- - - ">="
152
+ - - "~>"
105
153
  - !ruby/object:Gem::Version
106
- version: '4.34'
154
+ version: 0.0.0
107
155
  type: :runtime
108
156
  prerelease: false
109
157
  version_requirements: !ruby/object:Gem::Requirement
110
158
  requirements:
111
- - - ">="
159
+ - - "~>"
112
160
  - !ruby/object:Gem::Version
113
- version: '4.34'
114
- description: For use for the Beaker acceptance testing tool
161
+ version: 0.0.0
162
+ description: Allows running Beaker tests using Docker
115
163
  email:
116
164
  - voxpupuli@groups.io
117
165
  executables:
@@ -119,14 +167,16 @@ executables:
119
167
  extensions: []
120
168
  extra_rdoc_files: []
121
169
  files:
170
+ - ".editorconfig"
122
171
  - ".github/dependabot.yml"
123
172
  - ".github/workflows/release.yml"
124
173
  - ".github/workflows/test.yml"
125
174
  - ".gitignore"
175
+ - ".rubocop.yml"
176
+ - ".rubocop_todo.yml"
126
177
  - ".simplecov"
127
178
  - CHANGELOG.md
128
179
  - Gemfile
129
- - Gemfile.local
130
180
  - LICENSE
131
181
  - README.md
132
182
  - Rakefile
@@ -135,6 +185,7 @@ files:
135
185
  - beaker-docker.gemspec
136
186
  - bin/beaker-docker
137
187
  - docker.md
188
+ - lib/beaker-docker.rb
138
189
  - lib/beaker-docker/version.rb
139
190
  - lib/beaker/hypervisor/docker.rb
140
191
  - spec/beaker/hypervisor/docker_spec.rb
@@ -151,7 +202,10 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
202
  requirements:
152
203
  - - ">="
153
204
  - !ruby/object:Gem::Version
154
- version: '0'
205
+ version: '2.4'
206
+ - - "<"
207
+ - !ruby/object:Gem::Version
208
+ version: '4'
155
209
  required_rubygems_version: !ruby/object:Gem::Requirement
156
210
  requirements:
157
211
  - - ">="
@@ -161,5 +215,5 @@ requirements: []
161
215
  rubygems_version: 3.2.33
162
216
  signing_key:
163
217
  specification_version: 4
164
- summary: Beaker DSL Extension Helpers!
218
+ summary: Docker hypervisor for Beaker acceptance testing framework
165
219
  test_files: []
data/Gemfile.local DELETED
@@ -1,3 +0,0 @@
1
- group :acceptance_testing do
2
- gem "beaker-rspec"
3
- end