PUPPETLABS_GPG_KEY_LONG_ID = '7F438280EF8D349F'.freeze
PUPPETLABS_LONG_FINGERPRINT = '123456781274D2C8A956789A456789A456789A9A'.freeze
-id_short_warning_pp = <<-MANIFEST
- apt_key { 'puppetlabs':
- id => '#{PUPPETLABS_GPG_KEY_LONG_ID}',
- ensure => 'present',
- source => 'http://apt.puppetlabs.com/herpderp.gpg',
- }
- MANIFEST
-
id_doesnt_match_fingerprint_pp = <<-MANIFEST
- apt_key { '#{PUPPETLABS_LONG_FINGERPRINT}':
- ensure => 'present',
- content => '123456781274D2C8A956789A456789A456789A9B',
- }
- MANIFEST
+ apt_key { '#{PUPPETLABS_LONG_FINGERPRINT}':
+ ensure => 'present',
+ content => '123456781274D2C8A956789A456789A456789A9B',
+ }
+MANIFEST
location_not_specified_fail_pp = <<-MANIFEST
- apt::source { 'puppetlabs':
- ensure => 'present',
- repos => 'main',
- key => {
- id => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
- server => 'hkps.pool.sks-keyservers.net',
- },
- }
- MANIFEST
+ apt::source { 'puppetlabs':
+ ensure => 'present',
+ repos => 'main',
+ key => {
+ id => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
+ server => 'hkps.pool.sks-keyservers.net',
+ },
+ }
+MANIFEST
+
+no_content_param = <<-MANIFEST
+ apt_conf {
+ ensure => 'present',
+ }
+MANIFEST
+
+invalid_ensure = <<-MANIFEST
+ apt_key { '#{PUPPETLABS_LONG_FINGERPRINT}':
+ ensure => 'bourbon',
+ }
+MANIFEST
-describe 'apt', if: (fact('osfamily') == 'Debian' || fact('osfamily') == 'RedHat') && (Gem::Version.new(puppet_version) >= Gem::Version.new('4.10.5')) do
+describe 'localization', if: (fact('osfamily') == 'Debian' || fact('osfamily') == 'RedHat') && (Gem::Version.new(puppet_version) >= Gem::Version.new('4.10.5')) do
before :all do
hosts.each do |host|
on(host, "sed -i \"96i FastGettext.locale='ja'\" /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb")
end
end
- describe 'i18n translations' do
- it 'warns with shortened id' do
- apply_manifest(id_short_warning_pp, catch_failures: true) do |r|
- expect(r.stderr).to match(%r{Ŧħḗ īḓ şħǿŭŀḓ ƀḗ ȧ ƒŭŀŀ ƒīƞɠḗřƥřīƞŧ})
- end
- end
- it 'fails with different id and fingerprint' do
+ describe 'ruby translations' do
+ it 'fails with interpolated string' do
apply_manifest(id_doesnt_match_fingerprint_pp, expect_failures: true) do |r|
- expect(r.stderr).to match(%r{Ŧħḗ īḓ īƞ ẏǿŭř ḿȧƞīƒḗşŧ 123456781274D2C8A956789A456789A456789A9A})
+ expect(r.stderr).to match(%r{を設定できませんでした: マニフェスト123456781274D2C8A956789A456789A456789A9Aに含まれるidと、content/sourceのフィンガープリントが一致しません。idに間違いがないか、content/sourceが正当であるかを確認してください})
end
end
- it 'fails with no location' do
+ it 'fails with simple string' do
apply_manifest(location_not_specified_fail_pp, expect_failures: true) do |r|
- expect(r.stderr).to match(%r{ƈȧƞƞǿŧ ƈřḗȧŧḗ ȧ şǿŭřƈḗ ḗƞŧřẏ ẇīŧħǿŭŧ şƥḗƈīƒẏīƞɠ ȧ ŀǿƈȧŧīǿƞ})
+ expect(r.stderr).to match(%r{の検証中にエラーが生じました。Evaluation Error: a Function Callの検証中にエラーが生じました。場所を指定せずにソースエントリを作成することはできません})
+ end
+ end
+ end
+
+ describe 'puppet translations' do
+ it 'fails with interpolated string' do
+ apply_manifest(invalid_ensure, expect_failures: true) do |r|
+ expect(r.stderr).to match(%r{失敗しました: 無効な値\"bourbon\" 有効な値は})
+ end
+ end
+ it 'fails with simple string' do
+ apply_manifest(no_content_param, expect_failures: true) do |r|
+ expect(r.stderr).to match(%r{この表現は無効です。タイトルなしの'apt_conf'リソースの宣言を試みましたか?})
end
end
end