Skip to content

Commit c152b03

Browse files
committed
(maint) Fix i18n acceptance tests
During the change of disable_i18n's default value from false to true there have been reactivated multiple acceptance tests. One of those tests, tests/i18n/modules/puppet_agent.rb, was failing constantly on the first run and passing after. This was due to puppetserver's load of puppet.conf configuration file in memory at the service's startup. This was fixed by ensuring the desired disable_i18n value before restarting the puppetserver service and doing proper test teardown by reverting it to the original/default value. All i18n acceptance tests have been adapted in the same way.
1 parent c3a37a9 commit c152b03

10 files changed

Lines changed: 92 additions & 42 deletions

acceptance/tests/i18n/enable_option_disable_i18n.rb

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
test_name 'Verify that disable_i18n can be set to true and have translations disabled' do
22
confine :except, :platform => /^solaris/ # translation not supported
33

4-
tag 'audit:high',
4+
tag 'audit:medium',
55
'audit:acceptance'
66

77
require 'puppet/acceptance/environment_utils.rb'
@@ -25,8 +25,10 @@
2525
install_i18n_demo_module(master, tmp_environment)
2626
end
2727

28+
disable_i18n_default_master = master.puppet['disable_i18n']
2829
teardown do
2930
step 'resetting the server locale' do
31+
on(master, puppet("config set disable_i18n #{ disable_i18n_default_master }"))
3032
reset_master_system_locale
3133
end
3234
step 'uninstall the module' do
@@ -42,9 +44,15 @@
4244
skip_test("test machine is missing #{agent_language} locale. Skipping") if agent_language.nil?
4345
shell_env_language = { 'LANGUAGE' => agent_language, 'LANG' => agent_language }
4446

47+
disable_i18n_default_agent = agent.puppet['disable_i18n']
48+
teardown do
49+
on(agent, puppet("config set disable_i18n #{ disable_i18n_default_agent }"))
50+
end
51+
4552
step 'enable i18n' do
46-
on(master, puppet("config set disable_i18n false"))
4753
on(agent, puppet("config set disable_i18n false"))
54+
on(master, puppet("config set disable_i18n false"))
55+
reset_master_system_locale
4856
end
4957

5058
step 'expect #{language} translation for a custom type' do
@@ -60,8 +68,9 @@
6068
end
6169

6270
step 'disable i18n' do
63-
on(master, puppet("config set disable_i18n true"))
6471
on(agent, puppet("config set disable_i18n true"))
72+
on(master, puppet("config set disable_i18n true"))
73+
reset_master_system_locale
6574
end
6675

6776
step 'expect no #{language} translation for a custom type' do

acceptance/tests/i18n/modules/puppet_agent.rb

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@
1414
extend Puppet::Acceptance::I18nDemoUtils
1515

1616
language = 'ja_JP'
17-
step "configure server locale to #{language}" do
18-
configure_master_system_locale(language)
19-
end
17+
disable_i18n_default_master = master.puppet['disable_i18n']
2018

2119
step 'enable i18n on master' do
2220
on(master, puppet("config set disable_i18n false"))
2321
end
2422

23+
step "configure server locale to #{language}" do
24+
configure_master_system_locale(language)
25+
end
26+
2527
tmp_environment = mk_tmp_environment_with_teardown(master, File.basename(__FILE__, '.*'))
2628

2729
step 'install a i18ndemo module' do
@@ -30,6 +32,7 @@
3032

3133
teardown do
3234
step 'resetting the server locale' do
35+
on(master, puppet("config set disable_i18n #{ disable_i18n_default_master }"))
3336
reset_master_system_locale
3437
end
3538
step 'uninstall the module' do
@@ -48,7 +51,9 @@
4851
shell_env_language = { 'LANGUAGE' => agent_language, 'LANG' => agent_language }
4952

5053
type_path = agent.tmpdir('provider')
54+
disable_i18n_default_agent = agent.puppet['disable_i18n']
5155
teardown do
56+
on(agent, puppet("config set disable_i18n #{ disable_i18n_default_agent }"))
5257
agent.rm_rf(type_path)
5358
end
5459

acceptance/tests/i18n/modules/puppet_agent_cached_catalog.rb

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,16 @@
1414
extend Puppet::Acceptance::I18nDemoUtils
1515

1616
language = 'ja_JP'
17-
step "configure server locale to #{language}" do
18-
configure_master_system_locale(language)
19-
end
17+
disable_i18n_default_master = master.puppet['disable_i18n']
2018

2119
step 'enable i18n on master' do
2220
on(master, puppet("config set disable_i18n false"))
2321
end
2422

23+
step "configure server locale to #{language}" do
24+
configure_master_system_locale(language)
25+
end
26+
2527
tmp_environment = mk_tmp_environment_with_teardown(master, File.basename(__FILE__, '.*'))
2628

2729
step 'install a i18ndemo module' do
@@ -30,6 +32,7 @@
3032

3133
teardown do
3234
step 'resetting the server locale' do
35+
on(master, puppet("config set disable_i18n #{ disable_i18n_default_master }"))
3336
reset_master_system_locale
3437
end
3538
step 'uninstall the module' do
@@ -48,8 +51,10 @@
4851
shell_env_language = { 'LANGUAGE' => agent_language, 'LANG' => agent_language }
4952

5053
type_path = agent.tmpdir('provider')
54+
disable_i18n_default_agent = agent.puppet['disable_i18n']
5155
teardown do
52-
on(agent, "rm -rf '#{type_path}'")
56+
on(agent, puppet("config set disable_i18n #{ disable_i18n_default_agent }"))
57+
agent.rm_rf(type_path)
5358
end
5459

5560
step 'enable i18n' do

acceptance/tests/i18n/modules/puppet_agent_with_multiple_environments.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
test_name 'C100575: puppet agent with different modules in different environments should translate based on their module' do
22
confine :except, :platform => /^solaris/ # translation not supported
33

4-
tag 'audit:high',
4+
tag 'audit:medium',
55
'audit:acceptance'
66

77
require 'puppet/acceptance/environment_utils.rb'
@@ -23,6 +23,7 @@
2323
full_path_env_2 = File.join('/tmp', tmp_environment_2)
2424
tmp_po_file = master.tmpfile('tmp_po_file')
2525

26+
disable_i18n_default_master = master.puppet['disable_i18n']
2627
step 'enable i18n on master' do
2728
on(master, puppet("config set disable_i18n false"))
2829
end
@@ -45,6 +46,7 @@
4546
uninstall_i18n_demo_module(master)
4647
end
4748
step 'resetting the server locale' do
49+
on(master, puppet("config set disable_i18n #{ disable_i18n_default_master }"))
4850
reset_master_system_locale
4951
end
5052
end
@@ -56,6 +58,11 @@
5658
skip_test("test machine is missing #{agent_language} locale. Skipping") if agent_language.nil?
5759
shell_env_language = { 'LANGUAGE' => agent_language, 'LANG' => agent_language }
5860

61+
disable_i18n_default_agent = agent.puppet['disable_i18n']
62+
teardown do
63+
on(agent, puppet("config set disable_i18n #{ disable_i18n_default_agent }"))
64+
end
65+
5966
step 'enable i18n' do
6067
on(agent, puppet("config set disable_i18n false"))
6168
end

acceptance/tests/i18n/modules/puppet_apply.rb

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
test_name 'C100567: puppet apply of module should translate messages' do
22
confine :except, :platform => /^solaris/ # translation not supported
33

4-
tag 'audit:high',
4+
tag 'audit:medium',
55
'audit:acceptance'
66

77
require 'puppet/acceptance/temp_file_utils'
@@ -35,15 +35,17 @@
3535
install_i18n_demo_module(agent)
3636
end
3737

38-
step 'enable i18n' do
39-
on(agent, puppet("config set disable_i18n false"))
40-
end
41-
38+
disable_i18n_default_agent = agent.puppet['disable_i18n']
4239
teardown do
40+
on(agent, puppet("config set disable_i18n #{ disable_i18n_default_agent }"))
4341
uninstall_i18n_demo_module(agent)
4442
on(agent, "rm -rf '#{type_path}'")
4543
end
4644

45+
step 'enable i18n' do
46+
on(agent, puppet("config set disable_i18n false"))
47+
end
48+
4749
step "Run puppet apply of a module with language #{agent_language} and verify the translations" do
4850
step 'verify custom fact translations' do
4951
on(agent, puppet("apply -e \"class { 'i18ndemo': filename => '#{type_path}' }\"", 'ENV' => shell_env_language)) do |apply_result|

acceptance/tests/i18n/modules/puppet_apply_module_lang.rb

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
confine :except, :platform => /^windows/ # Can't print Finish on an English or Japanese code page
44

5-
tag 'audit:high',
5+
tag 'audit:medium',
66
'audit:acceptance'
77

88
require 'puppet/acceptance/temp_file_utils'
@@ -29,20 +29,22 @@
2929
skip_test("test machine is missing #{agent_language} locale. Skipping") if agent_language.nil?
3030
shell_env_language = { 'LANGUAGE' => agent_language, 'LANG' => agent_language }
3131

32+
type_path = agent.tmpdir('provider')
33+
disable_i18n_default_agent = agent.puppet['disable_i18n']
34+
teardown do
35+
on(agent, puppet("config set disable_i18n #{ disable_i18n_default_agent }"))
36+
uninstall_i18n_demo_module(agent)
37+
on(agent, "rm -rf '#{type_path}'")
38+
end
39+
3240
step 'install a i18ndemo module' do
3341
install_i18n_demo_module(agent)
3442
end
35-
type_path = agent.tmpdir('provider')
3643

3744
step 'enable i18n' do
3845
on(agent, puppet("config set disable_i18n false"))
3946
end
4047

41-
teardown do
42-
uninstall_i18n_demo_module(agent)
43-
on(agent, "rm -rf '#{type_path}'")
44-
end
45-
4648
step "Run puppet apply of a module with language #{agent_language} and verify default english returned" do
4749
step 'verify custom fact message translated and applied catalog message not translatated' do
4850
on(agent, puppet("apply -e \"class { 'i18ndemo': filename => '#{type_path}' }\"", 'ENV' => shell_env_language)) do |apply_result|

acceptance/tests/i18n/modules/puppet_apply_unsupported_lang.rb

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,22 @@
2121
next
2222
end
2323

24-
step 'install a i18ndemo module' do
25-
install_i18n_demo_module(agent)
26-
end
2724
type_path = agent.tmpdir('provider')
28-
25+
disable_i18n_default_agent = agent.puppet['disable_i18n']
2926
teardown do
27+
on(agent, puppet("config set disable_i18n #{ disable_i18n_default_agent }"))
3028
uninstall_i18n_demo_module(agent)
3129
on(agent, "rm -rf '#{type_path}'")
3230
end
3331

32+
step 'enable i18n' do
33+
on(agent, puppet("config set disable_i18n false"))
34+
end
35+
36+
step 'install a i18ndemo module' do
37+
install_i18n_demo_module(agent)
38+
end
39+
3440
step "Run puppet apply of a module with language #{unsupported_language} and verify default english returned" do
3541
step 'verify custom fact messages not translatated' do
3642
on(agent, puppet("apply -e \"class { 'i18ndemo': filename => '#{type_path}' }\"", 'ENV' => shell_env_language)) do |apply_result|

acceptance/tests/i18n/modules/puppet_describe.rb

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
test_name 'C100576: puppet describe with module type translates message' do
22
confine :except, :platform => /^solaris/ # translation not supported
33

4-
tag 'audit:high',
4+
tag 'audit:medium',
55
'audit:acceptance'
66

77
require 'puppet/acceptance/i18n_utils'
@@ -27,6 +27,12 @@
2727
skip_test("test machine is missing #{agent_language} locale. Skipping") if agent_language.nil?
2828
shell_env_language = { 'LANGUAGE' => agent_language, 'LANG' => agent_language }
2929

30+
disable_i18n_default_agent = agent.puppet['disable_i18n']
31+
teardown do
32+
on(agent, puppet("config set disable_i18n #{ disable_i18n_default_agent }"))
33+
uninstall_i18n_demo_module(agent)
34+
end
35+
3036
step 'enable i18n' do
3137
on(agent, puppet("config set disable_i18n false"))
3238
end
@@ -35,10 +41,6 @@
3541
install_i18n_demo_module(agent)
3642
end
3743

38-
teardown do
39-
uninstall_i18n_demo_module(agent)
40-
end
41-
4244
step "Run puppet describe from a module with language #{agent_language} and verify the translations" do
4345
on(agent, puppet('describe i18ndemo_type', 'ENV' => shell_env_language)) do |result|
4446
assert_match(/\w+-i18ndemo type: dirパラメータは、検査するディレクトリパスをとります/, result.stdout, 'missing translation of dir parameter from i18ndemo_type')

acceptance/tests/i18n/modules/puppet_face.rb

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
test_name 'C100573: puppet application/face with module translates messages' do
22
confine :except, :platform => /^solaris/ # translation not supported
33

4-
tag 'audit:high',
4+
tag 'audit:medium',
55
'audit:acceptance'
66

77
require 'puppet/acceptance/i18n_utils'
@@ -27,14 +27,20 @@
2727
skip_test("test machine is missing #{agent_language} locale. Skipping") if agent_language.nil?
2828
shell_env_language = { 'LANGUAGE' => agent_language, 'LANG' => agent_language }
2929

30-
step 'install a i18ndemo module' do
31-
install_i18n_demo_module(agent)
32-
end
33-
30+
disable_i18n_default_agent = agent.puppet['disable_i18n']
3431
teardown do
32+
on(agent, puppet("config set disable_i18n #{ disable_i18n_default_agent }"))
3533
uninstall_i18n_demo_module(agent)
3634
end
3735

36+
step 'enable i18n' do
37+
on(agent, puppet("config set disable_i18n false"))
38+
end
39+
40+
step 'install a i18ndemo module' do
41+
install_i18n_demo_module(agent)
42+
end
43+
3844
step "Run puppet i18ndemo (face/application from a module with language #{agent_language} and verify the translations" do
3945
step 'puppet --help contains i18ndemo summary translation' do
4046
on(agent, puppet('--help', 'ENV' => shell_env_language)) do |result|

acceptance/tests/i18n/modules/puppet_resource.rb

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
test_name 'C100572: puppet resource with module translates messages' do
22
confine :except, :platform => /^solaris/ # translation not supported
33

4-
tag 'audit:high',
4+
tag 'audit:medium',
55
'audit:acceptance'
66

77
require 'puppet/acceptance/i18n_utils'
@@ -27,14 +27,20 @@
2727
skip_test("test machine is missing #{agent_language} locale. Skipping") if agent_language.nil?
2828
shell_env_language = { 'LANGUAGE' => agent_language, 'LANG' => agent_language }
2929

30-
step 'install a i18ndemo module' do
31-
install_i18n_demo_module(agent)
32-
end
33-
30+
disable_i18n_default_agent = agent.puppet['disable_i18n']
3431
teardown do
32+
on(agent, puppet("config set disable_i18n #{ disable_i18n_default_agent }"))
3533
uninstall_i18n_demo_module(agent)
3634
end
3735

36+
step 'enable i18n' do
37+
on(agent, puppet("config set disable_i18n false"))
38+
end
39+
40+
step 'install a i18ndemo module' do
41+
install_i18n_demo_module(agent)
42+
end
43+
3844
step "Run puppet resource for a module with language #{agent_language} and verify the translations" do
3945
step 'puppet resource i18ndemo_type information contains translation' do
4046
on(agent, puppet('resource i18ndemo_type', 'ENV' => shell_env_language), :acceptable_exit_codes => 1) do |result|

0 commit comments

Comments
 (0)