beaker-docker 1.3.0 → 1.5.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.
@@ -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