summaryrefslogtreecommitdiff
path: root/spec/functional
diff options
context:
space:
mode:
authorBryan McLellan <btm@loftninjas.org>2019-04-15 17:30:01 -0400
committerBryan McLellan <btm@loftninjas.org>2019-04-15 20:58:55 -0400
commit7f62eff6d676365c9e1a984728e9b02bbd74d3ae (patch)
tree7fe4975031717ea3dfac77f0789b1d57812d02c7 /spec/functional
parent2fe2f5029df438ff92274b3240df5f5bee10c067 (diff)
downloadchef-7f62eff6d676365c9e1a984728e9b02bbd74d3ae.tar.gz
Limit locale resource to Linux
Platforms that don't use /etc/locale.conf aren't supported Signed-off-by: Bryan McLellan <btm@loftninjas.org>
Diffstat (limited to 'spec/functional')
-rw-r--r--spec/functional/resource/locale_spec.rb109
1 files changed, 64 insertions, 45 deletions
diff --git a/spec/functional/resource/locale_spec.rb b/spec/functional/resource/locale_spec.rb
index 61ef4630bc..83dfc2d007 100644
--- a/spec/functional/resource/locale_spec.rb
+++ b/spec/functional/resource/locale_spec.rb
@@ -18,61 +18,80 @@
require "spec_helper"
-describe Chef::Resource::Locale, :requires_root, :not_supported_on_windows do
-
- let(:node) { Chef::Node.new }
+describe Chef::Resource::Locale, :requires_root do
+ let(:node) do
+ n = Chef::Node.new
+ n.consume_external_attrs(OHAI_SYSTEM.data, {})
+ n
+ end
let(:events) { Chef::EventDispatch::Dispatcher.new }
let(:run_context) { Chef::RunContext.new(node, {}, events) }
let(:resource) { Chef::Resource::Locale.new("fakey_fakerton", run_context) }
- def sets_system_locale(*locales)
- system_locales = File.readlines("/etc/locale.conf")
- expect(system_locales.map(&:strip)).to eq(locales)
- end
+ context "on debian/ubuntu", :debian_family_only do
+ def sets_system_locale(*locales)
+ system_locales = File.readlines("/etc/locale.conf")
+ expect(system_locales.map(&:strip)).to eq(locales)
+ end
- def unsets_system_locale(*locales)
- system_locales = File.readlines("/etc/locale.conf")
- expect(system_locales.map(&:strip)).not_to eq(locales)
- end
+ def unsets_system_locale(*locales)
+ system_locales = File.readlines("/etc/locale.conf")
+ expect(system_locales.map(&:strip)).not_to eq(locales)
+ end
- describe "action: update" do
- context "Sets system variable" do
- it "when LC var is given" do
- resource.lc_env({ "LC_MESSAGES" => "en_US" })
- resource.run_action(:update)
- sets_system_locale("LC_MESSAGES=en_US")
+ describe "action: update" do
+ context "Sets system variable" do
+ it "when LC var is given" do
+ resource.lc_env({ "LC_MESSAGES" => "en_US" })
+ resource.run_action(:update)
+ sets_system_locale("LC_MESSAGES=en_US")
+ end
+ it "when lang is given" do
+ resource.lang("en_US")
+ resource.run_action(:update)
+ sets_system_locale("LANG=en_US")
+ end
+ it "when both lang & LC vars are given" do
+ resource.lang("en_US")
+ resource.lc_env({ "LC_TIME" => "en_IN" })
+ resource.run_action(:update)
+ sets_system_locale("LANG=en_US", "LC_TIME=en_IN")
+ end
end
- it "when lang is given" do
- resource.lang("en_US")
- resource.run_action(:update)
- sets_system_locale("LANG=en_US")
- end
- it "when both lang & LC vars are given" do
- resource.lang("en_US")
- resource.lc_env({ "LC_TIME" => "en_IN" })
- resource.run_action(:update)
- sets_system_locale("LANG=en_US", "LC_TIME=en_IN")
+
+ context "Unsets system variable" do
+ it "when LC var is not given" do
+ resource.lc_env()
+ resource.run_action(:update)
+ unsets_system_locale("LC_MESSAGES=en_US")
+ end
+ it "when lang is not given" do
+ resource.lang()
+ resource.run_action(:update)
+ unsets_system_locale("LANG=en_US")
+ end
+ it "when both lang & LC vars are not given" do
+ resource.lang()
+ resource.lc_env()
+ resource.run_action(:update)
+ unsets_system_locale("LANG=en_US", "LC_TIME=en_IN")
+ sets_system_locale("")
+ end
end
end
+ end
- context "Unsets system variable" do
- it "when LC var is not given" do
- resource.lc_env()
- resource.run_action(:update)
- unsets_system_locale("LC_MESSAGES=en_US")
- end
- it "when lang is not given" do
- resource.lang()
- resource.run_action(:update)
- unsets_system_locale("LANG=en_US")
- end
- it "when both lang & LC vars are not given" do
- resource.lang()
- resource.lc_env()
- resource.run_action(:update)
- unsets_system_locale("LANG=en_US", "LC_TIME=en_IN")
- sets_system_locale("")
- end
+ context "on rhel", :rhel do
+ it "raises an exception due lacking the locale-gen tool" do
+ resource.lang("en_US")
+ expect { resource.run_action(:update) }.to raise_error(Chef::Exceptions::ProviderNotFound)
+ end
+ end
+
+ context "on macos", :macos_only do
+ it "raises an exception due to being an unsupported platform" do
+ resource.lang("en_US")
+ expect { resource.run_action(:update) }.to raise_error(Chef::Exceptions::ProviderNotFound)
end
end
end