Skip to content

Commit f756598

Browse files
committed
Fix CI with stubs modernization
This make it easier to debug failing unit tests.
1 parent 9edf10b commit f756598

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

spec/unit/lib/facter/docker_spec.rb

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,41 +6,44 @@
66
describe 'Facter::Util::Fact' do
77
before :each do
88
Facter.clear
9+
allow(Facter::Core::Execution).to receive(:which).and_call_original
10+
allow(Facter::Core::Execution).to receive(:execute).and_call_original
11+
912
if Facter.value(:kernel) == 'windows'
1013
docker_command = 'powershell -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -c docker'
11-
Facter::Core::Execution.stubs(:which).with('dhcpcd').returns('C:\Windows\dhcpd.exe')
12-
Facter::Core::Execution.stubs(:which).with('route').returns('C:\Windows\System32\ROUTE.EXE')
13-
Facter::Core::Execution.stubs(:which).with('docker').returns('C:\Program Files\Docker\docker.exe')
14+
allow(Facter::Core::Execution).to receive(:which).with('dhcpcd').and_return('C:\Windows\dhcpd.exe')
15+
allow(Facter::Core::Execution).to receive(:which).with('route').and_return('C:\Windows\System32\ROUTE.EXE')
16+
allow(Facter::Core::Execution).to receive(:which).with('docker').and_return('C:\Program Files\Docker\docker.exe')
1417
else
1518
docker_command = 'docker'
16-
Facter::Core::Execution.stubs(:which).with('route').returns('/usr/bin/route')
17-
Facter::Core::Execution.stubs(:which).with('dhcpcd').returns('/usr/bin/dhcpd')
18-
Facter::Core::Execution.stubs(:which).with('docker').returns('/usr/bin/docker')
19+
allow(Facter::Core::Execution).to receive(:which).with('route').and_return('/usr/bin/route')
20+
allow(Facter::Core::Execution).to receive(:which).with('dhcpcd').and_return('/usr/bin/dhcpd')
21+
allow(Facter::Core::Execution).to receive(:which).with('docker').and_return('/usr/bin/docker')
1922
end
2023
docker_info = File.read(fixtures('facts', 'docker_info'))
21-
Facter::Core::Execution.stubs(:execute).with("#{docker_command} info --format '{{json .}}'", time_limit: 90).returns(docker_info)
24+
allow(Facter::Core::Execution).to receive(:execute).with("#{docker_command} info --format '{{json .}}'", time_limit: 90).and_return(docker_info)
2225
processors = File.read(fixtures('facts', 'processors'))
23-
Facter.fact(:processors).stubs(:value).returns(JSON.parse(processors))
26+
allow(Facter.fact(:processors)).to receive(:value).and_return(JSON.parse(processors))
2427
docker_version = File.read(fixtures('facts', 'docker_version'))
25-
Facter::Core::Execution.stubs(:execute).with("#{docker_command} version --format '{{json .}}'", time_limit: 90).returns(docker_version)
28+
allow(Facter::Core::Execution).to receive(:execute).with("#{docker_command} version --format '{{json .}}'", time_limit: 90).and_return(docker_version)
2629
docker_network_list = File.read(fixtures('facts', 'docker_network_list'))
27-
Facter::Core::Execution.stubs(:execute).with("#{docker_command} network ls | tail -n +2", time_limit: 90).returns(docker_network_list)
30+
allow(Facter::Core::Execution).to receive(:execute).with("#{docker_command} network ls | tail -n +2", time_limit: 90).and_return(docker_network_list)
2831
docker_network_names = []
2932
docker_network_list.each_line { |line| docker_network_names.push line.split[1] }
3033
docker_network_names.each do |network|
3134
inspect = File.read(fixtures('facts', "docker_network_inspect_#{network}"))
32-
Facter::Core::Execution.stubs(:execute).with("#{docker_command} network inspect #{network}", time_limit: 90).returns(inspect)
35+
allow(Facter::Core::Execution).to receive(:execute).with("#{docker_command} network inspect #{network}", time_limit: 90).and_return(inspect)
3336
end
3437
docker_worker_token = File.read(fixtures('facts', 'docker_swarm_worker_token'))
35-
Facter::Core::Execution.stubs(:execute).with("#{docker_command} swarm join-token worker -q", time_limit: 90).returns(docker_worker_token.chomp)
38+
allow(Facter::Core::Execution).to receive(:execute).with("#{docker_command} swarm join-token worker -q", time_limit: 90).and_return(docker_worker_token.chomp)
3639
docker_manager_token = File.read(fixtures('facts', 'docker_swarm_manager_token'))
37-
Facter::Core::Execution.stubs(:execute).with("#{docker_command} swarm join-token manager -q", time_limit: 90).returns(docker_manager_token.chomp)
40+
allow(Facter::Core::Execution).to receive(:execute).with("#{docker_command} swarm join-token manager -q", time_limit: 90).and_return(docker_manager_token.chomp)
3841
end
3942
after(:each) { Facter.clear }
4043

4144
describe 'docker fact with composer network' do
4245
before :each do
43-
Facter.fact(:interfaces).stubs(:value).returns('br-c5810f1e3113,docker0,eth0,lo')
46+
allow(Facter.fact(:interfaces)).to receive(:value).and_return('br-c5810f1e3113,docker0,eth0,lo')
4447
end
4548
it do
4649
fact = File.read(fixtures('facts', 'facts_with_compose'))
@@ -54,7 +57,7 @@
5457

5558
describe 'docker fact without composer network' do
5659
before :each do
57-
Facter.fact(:interfaces).stubs(:value).returns('br-19a6ebf6f5a5,docker0,eth0,lo')
60+
allow(Facter.fact(:interfaces)).to receive(:value).and_return('br-19a6ebf6f5a5,docker0,eth0,lo')
5861
end
5962
it do
6063
fact = File.read(fixtures('facts', 'facts_without_compose')).chomp
@@ -71,8 +74,8 @@
7174
describe 'docker client version' do
7275
before(:each) do
7376
docker_version = File.read(fixtures('facts', 'docker_version'))
74-
Facter.fact(:docker_version).stubs(:value).returns(JSON.parse(docker_version))
75-
Facter.fact(:interfaces).stubs(:value).returns('br-19a6ebf6f5a5,docker0,eth0,lo')
77+
allow(Facter.fact(:docker_version)).to receive(:value).and_return(JSON.parse(docker_version))
78+
allow(Facter.fact(:interfaces)).to receive(:value).and_return('br-19a6ebf6f5a5,docker0,eth0,lo')
7679
end
7780
it do
7881
expect(Facter.fact(:docker_client_version).value).to eq(
@@ -84,8 +87,8 @@
8487
describe 'docker server version' do
8588
before(:each) do
8689
docker_version = File.read(fixtures('facts', 'docker_version'))
87-
Facter.fact(:docker_version).stubs(:value).returns(JSON.parse(docker_version))
88-
Facter.fact(:interfaces).stubs(:value).returns('br-19a6ebf6f5a5,docker0,eth0,lo')
90+
allow(Facter.fact(:docker_version)).to receive(:value).and_return(JSON.parse(docker_version))
91+
allow(Facter.fact(:interfaces)).to receive(:value).and_return('br-19a6ebf6f5a5,docker0,eth0,lo')
8992
end
9093
it do
9194
expect(Facter.fact(:docker_server_version).value).to eq(
@@ -96,7 +99,7 @@
9699

97100
describe 'docker info' do
98101
before :each do
99-
Facter.fact(:interfaces).stubs(:value).returns('br-19a6ebf6f5a5,docker0,eth0,lo')
102+
allow(Facter.fact(:interfaces)).to receive(:value).and_return('br-19a6ebf6f5a5,docker0,eth0,lo')
100103
end
101104
it 'has valid entries' do
102105
expect(Facter.fact(:docker).value).to include(
@@ -107,7 +110,7 @@
107110

108111
describe 'docker swarm worker join-token' do
109112
before :each do
110-
Facter.fact(:interfaces).stubs(:value).returns('br-19a6ebf6f5a5,docker0,eth0,lo')
113+
allow(Facter.fact(:interfaces)).to receive(:value).and_return('br-19a6ebf6f5a5,docker0,eth0,lo')
111114
end
112115
it do
113116
expect(Facter.fact(:docker_worker_join_token).value).to eq(
@@ -118,7 +121,7 @@
118121

119122
describe 'docker swarm manager join-token' do
120123
before :each do
121-
Facter.fact(:interfaces).stubs(:value).returns('br-19a6ebf6f5a5,docker0,eth0,lo')
124+
allow(Facter.fact(:interfaces)).to receive(:value).and_return('br-19a6ebf6f5a5,docker0,eth0,lo')
122125
end
123126
it do
124127
expect(Facter.fact(:docker_manager_join_token).value).to eq(

0 commit comments

Comments
 (0)