summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Price <chris@puppetlabs.com>2012-09-20 11:35:45 -0700
committerChris Price <chris@puppetlabs.com>2012-09-20 11:35:45 -0700
commite527908b7c6ac5d91677229a96d5a97194dc68b7 (patch)
tree363d5bd285f3f03e113b08b1deae5eac45eb98da
parent8d1fdc5c29d70027b0f1859145ced5ebb266cf9c (diff)
downloadpuppet-inifile-e527908b7c6ac5d91677229a96d5a97194dc68b7.tar.gz
puppet-inifile-e527908b7c6ac5d91677229a96d5a97194dc68b7.tar.bz2
Add validation for key_val_separator
For now, the key_val_separator is required to contain exactly one '=' character. This commit simply validates that that is the case.
-rw-r--r--lib/puppet/type/ini_setting.rb6
-rw-r--r--spec/unit/puppet/provider/ini_setting/ruby_spec.rb20
2 files changed, 26 insertions, 0 deletions
diff --git a/lib/puppet/type/ini_setting.rb b/lib/puppet/type/ini_setting.rb
index f1ab490..50b6b38 100644
--- a/lib/puppet/type/ini_setting.rb
+++ b/lib/puppet/type/ini_setting.rb
@@ -35,6 +35,12 @@ Puppet::Type.newtype(:ini_setting) do
'Defaults to " = ", but you could use this to override e.g. whether ' +
'or not the separator should include whitespace.'
defaultto(" = ")
+
+ validate do |value|
+ unless value.scan('=').size == 1
+ raise Puppet::Error, ":key_val_separator must contain exactly one = character."
+ end
+ end
end
end
diff --git a/spec/unit/puppet/provider/ini_setting/ruby_spec.rb b/spec/unit/puppet/provider/ini_setting/ruby_spec.rb
index ac9bb91..20882fd 100644
--- a/spec/unit/puppet/provider/ini_setting/ruby_spec.rb
+++ b/spec/unit/puppet/provider/ini_setting/ruby_spec.rb
@@ -400,6 +400,26 @@ foo=bar
EOS
}
+ it "should fail if the separator doesn't include an equals sign" do
+ expect {
+ Puppet::Type::Ini_setting.new(common_params.merge(
+ :section => 'section2',
+ :setting => 'foo',
+ :value => 'yippee',
+ :key_val_separator => '+'))
+ }.to raise_error Puppet::Error, /must contain exactly one/
+ end
+
+ it "should fail if the separator includes more than one equals sign" do
+ expect {
+ Puppet::Type::Ini_setting.new(common_params.merge(
+ :section => 'section2',
+ :setting => 'foo',
+ :value => 'yippee',
+ :key_val_separator => ' = foo = '))
+ }.to raise_error Puppet::Error, /must contain exactly one/
+ end
+
it "should modify an existing setting" do
resource = Puppet::Type::Ini_setting.new(common_params.merge(
:section => 'section2',