|
6 | 6 | describe 'Facter::Util::Fact' do |
7 | 7 | before :each do |
8 | 8 | 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 | + |
9 | 12 | if Facter.value(:kernel) == 'windows' |
10 | 13 | 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') |
14 | 17 | else |
15 | 18 | 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') |
19 | 22 | end |
20 | 23 | docker_info = File.read(fixtures('facts', 'docker_info')) |
21 | | - Facter::Core::Execution.stubs(:exec).with("#{docker_command} info --format '{{json .}}'", timeout: 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) |
22 | 25 | 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)) |
24 | 27 | docker_version = File.read(fixtures('facts', 'docker_version')) |
25 | | - Facter::Core::Execution.stubs(:exec).with("#{docker_command} version --format '{{json .}}'", timeout: 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) |
26 | 29 | docker_network_list = File.read(fixtures('facts', 'docker_network_list')) |
27 | | - Facter::Core::Execution.stubs(:exec).with("#{docker_command} network ls | tail -n +2", timeout: 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) |
28 | 31 | docker_network_names = [] |
29 | 32 | docker_network_list.each_line { |line| docker_network_names.push line.split[1] } |
30 | 33 | docker_network_names.each do |network| |
31 | 34 | inspect = File.read(fixtures('facts', "docker_network_inspect_#{network}")) |
32 | | - Facter::Core::Execution.stubs(:exec).with("#{docker_command} network inspect #{network}", timeout: 90).returns(inspect) |
| 35 | + allow(Facter::Core::Execution).to receive(:execute).with("#{docker_command} network inspect #{network}", time_limit: 90).and_return(inspect) |
33 | 36 | end |
34 | 37 | docker_worker_token = File.read(fixtures('facts', 'docker_swarm_worker_token')) |
35 | | - Facter::Util::Resolution.stubs(:exec).with("#{docker_command} swarm join-token worker -q").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) |
36 | 39 | docker_manager_token = File.read(fixtures('facts', 'docker_swarm_manager_token')) |
37 | | - Facter::Util::Resolution.stubs(:exec).with("#{docker_command} swarm join-token manager -q").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) |
38 | 41 | end |
39 | 42 | after(:each) { Facter.clear } |
40 | 43 |
|
41 | 44 | describe 'docker fact with composer network' do |
42 | 45 | 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') |
44 | 47 | end |
45 | 48 | it do |
46 | 49 | fact = File.read(fixtures('facts', 'facts_with_compose')) |
|
54 | 57 |
|
55 | 58 | describe 'docker fact without composer network' do |
56 | 59 | 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') |
58 | 61 | end |
59 | 62 | it do |
60 | 63 | fact = File.read(fixtures('facts', 'facts_without_compose')).chomp |
|
71 | 74 | describe 'docker client version' do |
72 | 75 | before(:each) do |
73 | 76 | 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') |
76 | 79 | end |
77 | 80 | it do |
78 | 81 | expect(Facter.fact(:docker_client_version).value).to eq( |
|
84 | 87 | describe 'docker server version' do |
85 | 88 | before(:each) do |
86 | 89 | 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') |
89 | 92 | end |
90 | 93 | it do |
91 | 94 | expect(Facter.fact(:docker_server_version).value).to eq( |
|
96 | 99 |
|
97 | 100 | describe 'docker info' do |
98 | 101 | 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') |
100 | 103 | end |
101 | 104 | it 'has valid entries' do |
102 | 105 | expect(Facter.fact(:docker).value).to include( |
|
107 | 110 |
|
108 | 111 | describe 'docker swarm worker join-token' do |
109 | 112 | 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') |
111 | 114 | end |
112 | 115 | it do |
113 | 116 | expect(Facter.fact(:docker_worker_join_token).value).to eq( |
|
118 | 121 |
|
119 | 122 | describe 'docker swarm manager join-token' do |
120 | 123 | 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') |
122 | 125 | end |
123 | 126 | it do |
124 | 127 | expect(Facter.fact(:docker_manager_join_token).value).to eq( |
|
0 commit comments